1. Traditionelle Binlog-Master-Slave-Replikation, Fehlerberichterstattungsmethode überspringen mysql> Slave stoppen; mysql> setze globalen sql_slave_skip_counter = 1; mysql> Slave starten; mysql> Slave-Status anzeigen \G 2. GTID-Master-Slave-Replikation, Fehlerberichtsmethode überspringen mysql> stop slave; #Schalten Sie zuerst die Slave-Replikation aus; mysql> Master ändern in ...ausgelassen... #Master-Slave-Replikation konfigurieren; mysql> show slave status\G #Den Master-Slave-Status anzeigen; Es wurde ein Fehler gefunden: mysql> Slave-Status anzeigen\G *************************** 1. Reihe *************************** Slave_IO_State: Wartet darauf, dass der Master ein Ereignis sendet Master_Host: 172.19.195.212 Master_User: Master-Slave Master_Port: 3306 Verbindungswiederholung: 60 Master_Log_File:mysql-bin.000021 Read_Master_Log_Pos: 194 Relay-Log-Datei: nginx-003-relay-bin.000048 Relay_Log_Pos: 454 Relay_Master_Log_File: mysql-bin.000016 Slave_IO_Running: Ja Slave_SQL_Running: Nein Replicate_Do_DB: Replikat_Ignorieren_DB: Tabelle_replizieren: Tabelle_Ignorieren_replizieren: Wild_Do_Tabelle replizieren: Tabelle_Wild_Ignore_replizieren: Last_Errno: 1007 Last_Error: Fehler „Datenbank ‚Code‘ kann nicht erstellt werden; Datenbank existiert“ bei Abfrage. Standarddatenbank: ‚Code‘. Abfrage: ‚Datenbankcode erstellen‘ Skip_Counter: 0 Exec_Master_Log_Pos: 8769118 Relay_Log_Space: 3500 Until_Condition: Keine Bis_Log_Datei: Bis_Log_Pos: 0 Master_SSL_Allowed: Nein Master_SSL_CA_Datei: Master_SSL_CA_Pfad: Master_SSL_Zertifikat: Master_SSL_Chiffre: Master_SSL_Schlüssel: Seconds_Behind_Master: NULL Master_SSL_Verify_Server_Cert: Nein Last_IO_Errno: 0 Letzter_E/A-Fehler: Last_SQL_Errno: 1007 Last_SQL_Error: Fehler „Datenbank ‚Code‘ kann nicht erstellt werden; Datenbank existiert“ bei Abfrage. Standarddatenbank: ‚Code‘. Abfrage: ‚Datenbankcode erstellen‘ Server-IDs replizieren_ignorieren: Master_Server_Id: 100 Master_UUID: fea89052-11ef-11eb-b241-00163e00a190 Master_Info_Datei: /usr/local/mysql/data/master.info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Master_Retry_Count: 86400 Master_Bind: Zeitstempel des letzten IO-Fehlers: Letzter SQL-Fehlerzeitstempel: 201022 09:31:29 Master_SSL_Crl: Master_SSL_Crlpfad: Abgerufen_Gtid_Set: fea89052-11ef-11eb-b241-00163e00a190:8-5617 Ausgeführtes_Gtid_Set: a56c9b04-11f1-11eb-a855-00163e128853:1-11224, fea89052-11ef-11eb-b241-00163e00a190:1-5614 Auto_Position: 1 DB replizieren_neu schreiben: Kanalname: Master_TLS_Version: 1 Zeile im Satz (0,01 Sek.) Sie können sehen, dass Slave_SQL_Running NEIN ist, was bedeutet, dass ein Problem beim Abrufen des Binärprotokolls vorliegt. Lösung: 1. Wenn Sie sich über Ihre vorherigen Vorgänge im Klaren sind, können Sie die Bibliothek löschen, die den Konflikt verursacht hat. --- Verwenden Sie die Fehlernummer Last_SQL_Errno, um den spezifischen Fehler abzufragen transactionmysql> select * from performance_schema.replication_applier_status_by_worker where LAST_ERROR_NUMBER=1007\G *************************** 1. Reihe *************************** KANALNAME: WORKER_ID: 0 THREAD_ID: NULL SERVICE_STATE: AUS LETZTE_GESEHENE_TRANSAKTION: fea89052-11ef-11eb-b241-00163e00a190:5615 LAST_ERROR_NUMBER: 1007 LAST_ERROR_MESSAGE: Fehler „Datenbank ‚Code‘ kann nicht erstellt werden; Datenbank existiert“ bei Abfrage. Standarddatenbank: ‚Code‘. Abfrage: ‚Datenbankcode erstellen‘ LAST_ERROR_TIMESTAMP: 2020-10-22 09:31:29 1 Zeile im Satz (0,00 Sek.) mysql> Slave stoppen; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) --- Überspringen Sie die Transaktion, in der ein Fehler gefunden wurde (der Wert von LAST_SEEN_TRANSACTION). mysql> setze @@session.gtid_next='fea89052-11ef-11eb-b241-00163e00a190:5615'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> beginnen; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) --- Senden Sie eine leere Transaktion, da nach dem Festlegen von gtid_next der Lebenszyklus von gtid beginnt und durch explizites Senden einer Transaktion beendet werden muss. mysql> festschreiben; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) --- Zurück zum Automatikmodus; mysql> setze @@session.gtid_next=automatisch; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> Slave starten; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) Durch die obigen Schritte wird die Transaktion mit dem GTID-Fehler übersprungen. Wenn nach dem Starten des Slaves immer noch ein Fehler auftritt, überspringen Sie ihn weiterhin gemäß diesem Schritt.
Oben finden Sie Einzelheiten zum Überspringen von Fehlern bei der MySQL-Master-Slave-Replikation. Weitere Informationen zum Überspringen von MySQL-Fehlern finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: JavaScript zum Erzielen eines einfachen Drag-Effekts
Inhaltsverzeichnis 1. Gemeinsam genutzte und exkl...
1. Grammatik Standort [=|~|~*|^~|@] /uri/ { ... }...
Der Originalcode lautet: <div Klasse = "K...
1. JS-Prinzip der asynchronen Ausführung Wir wiss...
CSS-Operationen CSS $("").css(name|pro|...
Inhaltsverzeichnis Projekthintergrund Start Erste...
Wie definiert man komplexe Komponenten (Klassenko...
Im vorherigen Artikel haben wir drei gängige Meth...
MySQL-Tuning: Detaillierte Erläuterung und prakti...
Tutorial zum Herunterladen und Installieren von M...
Die Beziehung zwischen Javascript und DOM ist seh...
Ein nahtloses Karussell ist ein sehr häufiger Eff...
Chatbots können viel manuelle Arbeit sparen und i...
Beim Surfen im Internet stoßen wir nicht oft auf ...
Der Unterschied zwischen „Ersetzen durch“ und „Ei...