Wenn der Slave bei der Replikation Fehler anzeigt (mysql> SHOW SLAVE STATUS;) und die zu verarbeitende Datenmenge zu gross ist, dann geht es oftmals schneller, die Replikation neu zu starten. Voraussetzung: Es muss eine funktionierende Replikation bestehen (Replikations-User und Einstellungen in my.conf vorhanden, root user).
*** SLAVE:
#> mysql mysql> STOP SLAVE;
*** MASTER:
#> mysql mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; -- Filename und Position merken mysql> UNLOCK TABLES; mysql>quit; #> mysqldump typo3dev > /root/typo3dev.sql #> scp /root/typo3dev.sql root@slave.server:/root/typo3dev.sql
Hier werden die Tabllen gesperrt und die derzeitige Replikations-Position gemerkt (Filename und Position, die später im Slave benötigt werden).
zB:
mysql> SHOW MASTER STATUS; +-------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | mysqld-bin.000410 | 9769379 | | mysql,test | +-------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
File wird für MASTER_LOG_FILE benötigt und Position für MASTER_LOG_POS.
Nach dem Merken der Position unbedingt die Tabellen entsperren.
*** SLAVE:
mysql> DROP DATABASE typo3dev; mysql> CREATE DATABASE typo3dev; mysql> quit; #> cat /root/typo3dev.sql | mysql typo3dev -u root -p #> mysql mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000410', MASTER_LOG_POS=9769379; mysql> START SLAVE;
Für den Fall, dass auf dem Master noch alte Binary Files sind (im Beispiel vor „mysqld-bin.000410“) können diese mit folgendem Befehl aus dem Index und von der Platte gelöscht werden:
mysql> PURGE BINARY LOGS TO 'mysqld-bin.000410';