Categories
Linux

MySQL Replikation reset

Es gibt viele Gründe warum die MySQL-Replikation aus dem Tritt geraten kann. Folgende Schritte helfen mir meistens die Slaves wieder zu aktivieren bzw. einen weiteren Slave in die Replikation einzuhängen.

Auf dem Master wird zunächst ein Dump der Datenbank(en) gezogen, danach dürfen keine Änderungen an der Datenbank mehr erfolgen!:

mysqldump --add-drop-table -u user -p testdb > testdb.sql

Auf dem Master listet folgendes Kommando die aktuelle Binlog-Position auf:

mysql> SHOW MASTER STATUS;
+------------------+-----------+--------------+------------------+
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000002 | 329362302 |              |                  |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)

Auf dem Slave wird dann die Replikation mit den jetzt bekannten Informationen neu gestartet:

mysql> SLAVE STOP;
Query OK, 0 rows affected (0.00 sec)

mysql> CHANGE MASTER TO MASTER_HOST='master-hostname', MASTER_USER='user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=329362302;
Query OK, 0 rows affected (0.05 sec)

mysql> SLAVE START;
Query OK, 0 rows affected (0.00 sec)

Danach wird der vorher gezogene Dump wieder eingespielt:

mysql -u user -p < testdb.sql

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.