Fehler beim Import von MySQL-Daten mit Fehler 1839

8383
JAVAC

Ich habe ein Master-Slave-Setup von MySQL mit konfigurierter GTID. Ich habe die Datensicherung des Masters zurückgenommen und in den einzelnen Testserver importiert. Es kann nicht importiert werden als

FEHLER 1839 (HY000) in Zeile 24: @@ GLOBAL.GTID_PURGED kann nur eingestellt werden, wenn @@ GLOBAL.GTID_MODE = ON mit --set-gtid-cleanged = OFF und AUTO versucht wurde, aber kein Glück.

7

1 Antwort auf die Frage

15
banyek

Wenn Sie einen laufen lassen

SHOW MASTER STATUS\G 

Sie werden so etwas sehen:

mysql> show master status\G *************************** 1. row *************************** File: mysql-bin.000299 Position: 780437462 Binlog_Do_DB: Binlog_Ignore_DB: Executed_Gtid_Set: 075d81d6-8d7f-11e3-9d88-b4b52f517ce4:1-616637650, e907792a-8417-11e3-a037-b4b52f51dbf8:1-25385296642 1 row in set (0.00 sec) 

Da die GTID aktiviert ist, haben alle Server ihre eigene uuid und es gibt Transaktionen. Ich nehme an, Sie haben den Dump mit mysqldump erstellt, und wenn Sie sich den Anfang dieser Datei ansehen, werden Sie etwas ähnliches wie dieses finden:

-- -- GTID state at the beginning of the backup  --  SET @@GLOBAL.GTID_PURGED='075d81d6-8d7f-11e3-9d88-b4b52f517ce4:1-616648986, e907792a-8417-11e3-a037-b4b52f51dbf8:1-25385296642'; 

Dies ist der Befehl, der nicht ausgeführt werden kann.

Sie haben folgende Möglichkeiten:

  • Entfernen Sie diesen Befehl aus der mysql-Dump-Datei. Löschen Sie es einfach. Alle Einfügungen werden auf dem Slave als lokale Transaktionen angezeigt

  • Wenn Sie dies verhindern möchten, können Sie auch Master auf Slave zurücksetzen

    mysql> RESET MASTER;

    Dieser Befehl bereinigt die Variable 'Executed_Gtid_Set' auf dem Slave, sodass Sie die Dumpfile direkt importieren können und die zuvor erwähnte Variable set_global_gtid_purged aktiv wird

  • Wenn Sie den mysqldump erstellen, können Sie den GTID-Setup-Teil überspringen

    --set-gtid-purged = OFF

Parameter für mysqldump.

HINWEIS:

Wenn sich die GTID-Untermenge auf Master zwischen Master und Slave unterscheidet (wenn Sie dies in einem Replikationssetup verwenden möchten), dann funktioniert die Replikation nicht. Ich empfehle einen binären Dump und Restore, da die GTID des Slaves genau auf den Master eingestellt ist.

Bei der GTID treten viele neue Probleme auf, aber das Replikatsetup wird konsistenter. Es lohnt sich damit zu arbeiten.

Ich versuche, diesen ganzen MySQL-Server auf eine neue Server-Maschine zu migrieren. Ich habe den MySQL-Server auf einer neuen Maschine installiert und versucht, Dump zu importieren. Dies ist, wo ich dieses Problem bekomme JAVAC vor 9 Jahren 0
Und der Server hat eine eigene GTID. (Siehe 'SHOW MASTER STATUS'.) Wenn es sich um einen brandneuen Server handelt und derzeit keine Slaves verwendet werden, würde ich die GTID-Daten aus dem Speicherauszug entfernen und alle Daten importieren. Danach würde ich einen 'RESET MASTER' ausgeben, der die GTID-Sequenz zurücksetzt und Sie können neu beginnen. banyek vor 9 Jahren 1
GTID aus Dump-SQL-Datei entfernt hat für mich funktioniert JAVAC vor 9 Jahren 1