Ich habe eine MySQL-Datenbank mit 1 TB, die ich sichern und neu laden möchte. Die meisten Daten befinden sich in einer Tabelle. Viele Daten wurden gelöscht, daher bin ich mir ziemlich sicher, dass die Gesamtgröße kleiner ist, wenn ich sie mit MySQL speichere, die Datenbank neu erstelle und sie dann neu lade.
Ich speichere die Daten mit diesem Befehl:
mysqldump -uroot -pXXX mydb | gzip -c > data.sql.gz
Ich bekomme diesen Fehler
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `MY_TABLE` at row: 596089342
Ich habe viele Variationen ausprobiert, darunter das Erhöhen der Paketgröße, das Durchführen einer einzelnen Übersetzung und das Übergehen von TCP / IP anstelle des lokalen Sockets.
mysqldump -uroot -pXXX -h 127.0.0.1 --max-allowed-packet=1024M --single-transaction mydb | gzip -c > data.sql.gz
Schließlich habe ich sogar den Befehl nach / dev / null ausgeführt, um sicherzustellen, dass es sich nicht um gzip handelt. Alle Permutationen erzeugen den gleichen Fehler.
mysqldump -uroot -pXXX -h 127.0.0.1 mydb > /dev/null
Hier sind einige Einstellungen in my.cnf
max_allowed_packet = 1G
interactive_timeout = 600
wait_timeout = 600
net_read_timeout=600
net_write_timeout=600
connect_timeout=600
Eine andere seltsame Sache ist, dass der Dump immer an derselben Stelle anhält. Ungefähr 6 GB komprimierte Daten und ungefähr derselbe Datensatz. Wenn ich ls -l mache, ist die Dateigröße immer identisch.
Ich bin ratlos. Anregungen für die nächsten Schritte?
Für die Aufzeichnung ist dies MySQL 5.1.58, das unter Ubuntu 11.10 ausgeführt wird
WERDEN
interactive_timeout
undwait_timeout
auf die Standardwerte oder eine benannte Pipe.Antworten:
Am Ende sieht es so aus, als hätte ich eine Datenbeschädigung. Ich hatte zwei Bände (EC2 ebs) kopiert, die mit LVM verknüpft waren. Möglicherweise habe ich das Volume beim Erstellen der Kopie nicht ordnungsgemäß eingefroren, und ich vermute, dass sie nicht ordnungsgemäß synchronisiert wurden. Ich habe mit meinen ursprünglichen Volumes begonnen, die Prozedur erneut ausgeführt, das xfs-Volume sorgfältig eingefroren, bevor ich den EC2-Snapshot erstellt habe, und dann die Kopien auf meinen neuen Server geladen, und es hat einwandfrei funktioniert.
quelle
Haben Sie versucht, die Socket-Datei zu verwenden, um die TCP / IP-Schicht zu umgehen, z
quelle
Ich habe den gleichen Fehler erhalten, der Server hatte keinen RAM mehr zur Verfügung und keinen Swap. Mysqldump aß den ganzen RAM, also verringerte ich die speicherbezogenen Parameter in my.ini wie funktioniert
quelle