Beheben von Datenbankkonflikten bei der MySQL-Replikation
Bei einem MySQL-Replikationssetup kann es zu einer Diskrepanz zwischen dem Datenbankinhalt des Master- und Slave-Servers kommen wenn der Slave für längere Zeit getrennt und dann wieder angeschlossen wird. Um die Datenbanken in solchen Situationen neu zu synchronisieren, können die folgenden Schritte unternommen werden:
Am Master-Server:
- Setzen Sie den Master zurück, indem Sie RESET MASTER ausführen ;.
- Sperren Sie die Tabellen für Lesevorgänge mit FLUSH TABLES WITH READ LOCK;.
- Erhalten Sie den aktuellen Replikationsstatus des Masters mit SHOW MASTER STATUS;. Kopieren Sie die für Master_Log_File und Master_Log_Pos zurückgegebenen Werte.
- Exportieren Sie die gesamte Datenbank vom Master in eine Dump-Datei mit mysqldump -u root -p --all-databases > /path/mysqldump.sql.
Auf dem Slave-Server:
- Stoppen Sie den Replikationsprozess des Slaves mit STOP SLAVE;.
- Importieren Sie den Datenbank-Dump des Masters in den Slave mit mysql -uroot -p < mysqldump.sql.
- Setzen Sie die Replikationskonfiguration des Slaves zurück, indem Sie RESET SLAVE; ausführen.
- Aktualisieren Sie die Replikationskonfiguration des Slaves so, dass sie mit der aktuellen Position des Masters übereinstimmt, indem Sie CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001 verwenden ', MASTER_LOG_POS=98;. Ersetzen Sie „mysql-bin.000001“ und „98“ durch die Werte, die Sie mit dem Befehl SHOW MASTER STATUS erhalten haben, der auf dem Master-Server ausgeführt wurde.
- Starten Sie den Replikationsprozess des Slaves erneut mit START SLAVE;.
Überprüfung:
Um die erfolgreiche Synchronisierung zu bestätigen, führen Sie SHOW SLAVE STATUS aus; auf dem Slave-Server. Die Ausgabe sollte sowohl Slave_IO_Running als auch Slave_SQL_Running als Ja anzeigen.
Das obige ist der detaillierte Inhalt vonWie synchronisiert man die MySQL-Replikation nach einer Slave-Trennung neu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn