Haitao Jiang <[EMAIL PROTECTED]> wrote:

> Thanks so much for the reply! So, if I understand correctly, to swap
> the table like I described, I should do:
> 
> LOCK TABLES A write,A2 write;
> FLUSH TABLES;
> rename table A to A1;
> rename table A2 to A;
> UNLOCK TABLES;
> 
> Right? If there is no write to either A or A2, then there is no need
> to lock the table, right?

You can't rename locked tables. RENAME is atomic anyway so you can safely use
it without lock. But your software should be aware of a possible race condition
that happens between two RENAME TABLEs. 


> Thanks!
> 
> On Mon, 09 Aug 2004 19:21:39 +0300, Egor Egorov <[EMAIL PROTECTED]> wrote:
>> Haitao Jiang <[EMAIL PROTECTED]> wrote:
>> 
>> > Case 1: I have a table A under a running MySQL 4.1.3b server. If I
>> > replace A.MYD and A.MYI files without stop and start the server, will
>> > data gets corrupted?
>> 
>> It depends on many factors. Honestly, there are lots of cases where you will
>> get correct data and nothing wrong will happen. But you have to be an
>> experience Unix developer to understand Unix internals in order to dance like
>> that. :)
>> 
>> So the general answer is: don't, it's too dangerous.
>> 
>> > Case 2: I rename A to A1, and A2 to A, assume A, A2 have the same
>> > schema but different data/index. Is it bad? Will data gets corrupted?
>> > I tied this one, it seems ok.
>> 
>> Yes, you're right, it just *SEEMS* ok. :)
>> 
>> If you really need to replace table files, use FLUSH TABLES, LOCK TABLES:
>> 
>> http://dev.mysql.com/doc/mysql/en/FLUSH.html
>> http://dev.mysql.com/doc/mysql/en/LOCK_TABLES.html
>> 
>> --
>> For technical support contracts, goto https://order.mysql.com/?ref=ensita
>> This email is sponsored by Ensita.net http://www.ensita.net/
>>   __  ___     ___ ____  __
>>  /  |/  /_ __/ __/ __ \/ /    Egor Egorov
>> / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
>> /_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
>>       <___/   www.mysql.com
>> 
>> 
>> --
>> MySQL General Mailing List
>> For list archives: http://lists.mysql.com/mysql
>> To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
>> 
>>
> 





-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Egor Egorov
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
       <___/   www.mysql.com




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to