Heim > Datenbank > MySQL-Tutorial > Hauptteil

Analyse des MySQL-Master-Slave-Synchronisierungsproblems

PHP中文网
Freigeben: 2018-05-10 17:14:37
Original
2210 Leute haben es durchsucht

Cluster-Bibliotheksstatus anzeigen, Slave-Status anzeigenG

Ursprünglicher Tipp aus der Bibliothek: Last_Error: Coordinator wurde gestoppt, weil bei den Workern Fehler aufgetreten sind. Der letzte Fehler war: Worker 1 konnte nicht ausgeführt werden Transaktion „864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408“ im Master-Protokoll mysql-bin.000010, end_log_pos 920578920. Weitere Details zu diesem oder anderen Fehlern, falls vorhanden, finden Sie im Fehlerprotokoll und/oder in der Tabelle performance_schema.replication_applier_status_by_worker.

1. Befolgen Sie die Anweisungen von Congku, um den Grund zu finden, und geben Sie den Befehl

select * from performance_schema.replication_applier_status_by_worker\G
Nach dem Login kopieren

ein, um

<🎜 zu erhalten >

Diese Transaktion fand in der Tabelle r_com_patent statt und die Tabelle wurde gefunden, aber ich weiß nicht, in welchem ​​Datensatz.

2. Was geschah, als ich zur Hauptbibliothek ging, um die Binärdatei zu finden? Geben Sie den Befehl

Mysqlbinlog --no-defaults –v –v --base64-output=decode-rows /usr/local/mysql/data/master-bin.000010 | grep –A ‘10’ 920578920
Nach dem Login kopieren


ein, um den Datensatz endgültig zu finden.

Die Hauptbibliothek hat die Tabelle r_com_patent aktualisiert, aber die Clusterbibliothek kann den aktualisierten Datensatz nicht finden.

Konkret ändert die Hauptdatenbank den Datensatz mit patent_id 45 in der Tabelle r_com_patent und das Feld cid von NULL auf 3253026. Der Datensatz mit patent_id 45 in der Cluster-Datenbanktabelle r_com_patent hat ursprünglich das Feld cid 3253026. Die Replikation Der Mechanismus muss den Datensatz mit patent_id 45 und der ID NULL in der Datenbanktabelle r_com_patent finden, daher wurde er nicht gefunden. . .

3. Lösung

1) Sehen Sie sich den Datensatz im Master an.

Select * from r_com_patent where patent_id = 45;
Nach dem Login kopieren
2) Suchen Sie auf dem Slave nach dem aktualisierten Datensatz. Er sollte nicht vorhanden sein.

  Select * from r_com_patent where patent_id = 45;
Nach dem Login kopieren
3) Geben Sie die verlorenen Daten auf dem Slave ein oder ändern Sie sie. ​

  Insert into r_com_patent values(3253026,45);
Nach dem Login kopieren
4) Überspringen Sie die fehlergemeldete Transaktion auf dem Slave.

Stop slave;
Set @@SESSION.GTID_NEXT=’ 864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408’
Begin;
Commit;
Set @@SESSION.GTID_NEXT = AUTOMATIC;
Start slave;
Nach dem Login kopieren
Anschließend noch einmal prüfen

Show slave status\G
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAnalyse des MySQL-Master-Slave-Synchronisierungsproblems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage