Re: Converting latin1 to UTF-8 without downtime via replication?
Posted by: Rick James
Date: July 04, 2011 09:20AM

Might work...

1. STOP SLAVE SQLTHREAD; (may as well leave the IOTHREAD running)
2. One ALTER per table, with as many changes as needed for the column(s).
3. START SLAVE;
4. Wait for catchup.
5. Failover.
6. deal with all the other slaves.

What "mode" of Replication are you using?
SBR (Statement Based Replication) -- The INSERT statements are sent, without knowing or caring what charset is used by the columns that it will go into. So, having a different charset (on tables/columns) on the Slave than the Master should work.
RBR -- This may fail. (But I am not sure.)

Clients should not be harmed by the change -- A client announces what encoding its bytes are in; the table columns are declared as to what encoding they store; the communication between the two does any transliteration needed.

Note: you must ALTER each column; you cannot simply change the system or database _default_ CHARACTER SET.

(I know nothing about "UseOldUFT8Behavior", so I cannot address that, specifically.)

See my doc on ways to verify the encoding, etc.:
http://mysql.rjweb.org/doc.php/charcoll

Options: ReplyQuote


Subject
Views
Written By
Posted
Re: Converting latin1 to UTF-8 without downtime via replication?
3058
July 04, 2011 09:20AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.