La replica master-master di MySQL è un sistema ormai collaudato e funziona abbastanza bene. Ci possono eprò essere eventi *catastrofici* che invalidano uno dei due DB e sorge la necessità di rimettere in piedi la replica a partire dai dati presenti in uno dei DB.
Vediamo come procedere con una decina di step. Chiamiamo GS il server il server con i dati corretti e BS il server con i dati “rovinati”. Ipotizziamo che il DB da rimettere in replica si chiami CMS.
- Innanzitutto assicuriamoci che BS non stia ricevendo ancora query di INSERT/UPDATE/DELETE, ETC.
- BS: dalla console mysql, digitare
STOP SLAVE;in modo da fermare la replica; - GS: eseguiamo tre passi dalla console mysql:
- digitiamo
STOP SLAVE;per fermare la replica anche su GS; - digitiamo
FLUSH TABLES WITH READ LOCK;per bloccare gli aggiornamenti sul DB; - digitiamo
SHOW MASTER STATUS;e prendere nota dei valori dei campi File (es mysql-bin.xxxxxx) e Position (es yyyyyy);
- digitiamo
- GS: senza chiudere la console mysql, aprire una nuova shell e fare un dump del DB:
mysqldump -K --single-transaction --routinescms | gzip -9 >cms.sql.gz - GS: dalla console mysql, sblocchiamo il DB digitando
UNLOCK TABLES; - BS: importiamo il file di dump:
zcat cms.sql.gz | mysql cms - BS: dalla console mysql risincronizziamo la replica digitando
CHANGE MASTER TO master_log_file='mysql-bin.xxxxxx', master_log_pos=yyyyyy;(dove xxxxxx e yy devono essere i valori recuperati al punto 3.C; - BS: dalla console mysql riavviamo la replica digitando
START SLAVE;e verifichiamo che funzioni con unSHOW SLAVE STATUS; - BS: recuperiamo i dettagli anche del master su questo nodo con
SHOW MASTER STATUS;e prendiamo nota dei campi File (es mysql-bin.zzzzzz) e Position (es wwwwww); - GS: risincronizziamo la replica anche sul primo nodo, digitando dalla console mysql
CHANGE MASTER TO master_log_file='mysql-bin.zzzzzz', master_log_pos=wwwwww; - GS: riavviamo la replica anche sul primo nodo, digitando dalla console mysql
START SLAVE;
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta