Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zeichensätze in der MySQL-Replikation

Die Replikation zwischen Servern, bei denen die Parameter global character_set_% und collation% unterschiedlich sind, wird nicht unterstützt.

http://dev.mysql.com/doc /refman/5.6/en/replication-features-charset.html

-- on both servers check the output of...
SHOW VARIABLES LIKE 'char%';
SHOW VARIABLES LIKE 'collat%';

Die Replikation kann nicht nur fehlschlagen, wenn Sätze und Sortierungen unterschiedlich sind, sondern auch zu unterschiedlichen Sortierreihenfolgen und Zeichenverlusten während der Konvertierung von Sätzen/Sortierungen führen. Die Sortierreihenfolge kann sich auf Dinge wie Einfügen/Aktualisieren auswirken, wenn die anweisungsbasierte Replikation verwendet wird.

Am besten konfigurieren Sie den neuen Server so, dass er dieselben Sätze und Sortierungen wie der alte Server verwendet. Dadurch wird sichergestellt, dass die Replikation ordnungsgemäß funktioniert. Sie sollten auch sicherstellen, dass Datenbank, Tabellen und Spalten alle die gleichen Sortierungen zwischen Master und Slave haben. Sobald Sie auf den neuen Server migriert sind, können Sie Set &Collation mit Tools wie 5.6 Online Schema Change oder pt-Online-Schema-Change aus dem Percona Toolkit ändern.

Ich empfehle auch, perconas pt-table-checksum auszuführen, um sicherzustellen, dass Ihre Tabellen während der Replikation oder des anfänglichen Exports/Imports nicht auseinandergegangen sind.

Weitere Informationen zu den Auswirkungen von Unterschieden finden Sie hier:

Für alle, die Amazon RDS verwenden, denken Sie daran, dass die standardmäßigen mysql 5.6-Einstellungen gemischt utf8 (mb3) und latin1 (für Server und Datenbank) verwenden. Sie sollten diese mit einer benutzerdefinierten Parametergruppe überschreiben, wenn die Replikation von Nicht-RDS zu/von RDS (übereinstimmende Quell-/Zielserver) erfolgt.