sql >> Databasteknik >  >> RDS >> Mysql

Hur synkroniserar man Mysql DB om Master och slav har olika databas i fall av Mysql-replikering?

Det här är hela steg-för-steg-proceduren för att återsynkronisera en master-slave replikering från början:

Hos master:

RESET MASTER;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

Och kopiera värdena för resultatet av det sista kommandot någonstans.

Utan att stänga anslutningen till klienten (eftersom det skulle frigöra läslåset) utfärda kommandot för att få en dump av mastern:

mysqldump -u root -p --all-databases > /a/path/mysqldump.sql

Nu kan du släppa låset, även om dumpningen inte har avslutats än. För att göra det, utför följande kommando i MySQL-klienten:

UNLOCK TABLES;

Kopiera nu dumpfilen till slaven med scp eller ditt föredragna verktyg.

Vid slaven:

Öppna en anslutning till mysql och skriv:

STOP SLAVE;

Ladda masterns datadump med detta konsolkommando:

mysql -uroot -p < mysqldump.sql

Synkronisera slav- och masterloggar:

RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98;

Där värdena i ovanstående fält är de du kopierade tidigare.

Skriv till sist:

START SLAVE;

För att kontrollera att allt fungerar igen, efter att ha skrivit:

SHOW SLAVE STATUS;

du borde se:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Det är allt!



  1. SSIS-uppgift för import av inkonsekvent kolumnantal?

  2. Varför kan jag inte använda alias i en count(*) kolumn och referera till det i en having-sats?

  3. ORACLE SQL*Plus handledning

  4. Hur skapar man en SQL-vy med SQLAlchemy?