Ist es sicher, rotierte MySQL -Binärprotokolle zu löschen?
-
24-10-2019 - |
Frage
Ich habe einen MySQL -Server mit Binärprotokollierung aktiv. Sobald die Datei zum Tagesprotokollen "gedreht" ist, scheint der IE MySQL nicht mehr daran zu schreiben, und erstellt und neue Protokolldatei. Zum Beispiel habe ich diese Dateien derzeit in/var/lib/mysql
-rw-rw---- 1 mysql mysql 10485760 Jun 7 09:26 ibdata1
-rw-rw---- 1 mysql mysql 5242880 Jun 7 09:26 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 Jun 2 15:20 ib_logfile1
-rw-rw---- 1 mysql mysql 1916844 Jun 6 09:20 mybinlog.000004
-rw-rw---- 1 mysql mysql 61112500 Jun 7 09:26 mybinlog.000005
-rw-rw---- 1 mysql mysql 15609789 Jun 7 13:57 mybinlog.000006
-rw-rw---- 1 mysql mysql 54 Jun 7 09:26 mybinlog.index
und MyBinLog.000006 wächst.
Kann ich einfach MyBinLog.000004 und MyBinLog.000005 einnehmen, sie aufziehen und auf einen anderen Server übertragen, oder ich muss vorher etwas anderes tun?
Welche Informationen werden in mybinlog.index gespeichert? Nur die Informationen zum neuesten Binärprotokoll?
AKTUALISIEREN: Ich verstehe, dass ich die Protokolle mit Binärprotokollen löschen kann, die die Datei myBinLog.index aktualisieren. Ich muss jedoch Protokolle auf einen anderen Computer übertragen, bevor ich sie löschen (ich teste, wenn die Sicherung auf einem anderen Computer gültig ist). Um die Übertragungsgröße zu reduzieren, möchte ich die Dateien bZIP2. Was werden Binärprotokolle in Spülprotokollen tun, wenn Protokolldateien nicht mehr "da" sind?
Lösung 2
Ich habe die Antwort auf der MySQL -Website endlich gefunden. Falls jemand diese Informationen braucht:
Vor MySQL 5.0.60 verhalten sich Binärprotokolle zu und reinigten Binärprotokolle zuvor nicht auf die gleiche Weise (und keiner benahm sich korrekt verhalten), als binäre Protokolldateien, die in der .Index -Datei aufgeführt waren (wie die Verwendung von RM unter Linux). Beginnend mit MySQL 5.0.60 fehlen beide Varianten der Anweisung in solchen Fällen mit einem Fehler. (Fehler#18199, Fehler#18453) Um solche Fehler zu behandeln, bearbeiten Sie die .Index -Datei (eine einfache Textdatei) manuell, um sicherzustellen Aussage, die fehlgeschlagen ist.
Dies bedeutet, dass ich die .Index -Datei manuell bearbeiten sollte und alles wird in Ordnung sein. Interessant ist, dass .Index -Datei eine reguläre Textdatei ist. Ich habe das bis jetzt noch nicht einmal bemerkt.
Andere Tipps
Sie können alte binäre Protokolle löschen. Anstatt sie direkt zu löschen, ist es sicherer, die MySQL-Statement zu verwenden PURGE BINARY LOGS
Das aktualisiert auch Ihre mybinlog.index
Datei. Diese Datei speichert, welche Dateinamen für die binäre Protokollierung verwendet wurden, siehe
http://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html
Darüber hinaus können Sie Ihren MySQL-Server so konfigurieren, dass alte binäre Protokolle automatisch gelöscht werden. Stellen Sie die Variablen ein max_binlog_size
und expire_logs_days
in Ihrer Serverkonfiguration zu entsprechenden Werten.
Das ibdata
und ib_logfile
Dateien haben nichts mit binärer Protokollierung zu tun. Sie werden von der InnoDB Storage Engine verwendet. Machen Sie sich nicht an die Tatsache verwechselt, dass sie nicht zu wachsen scheinen: Wenn Sie InnoDB-Tabellen auf Ihrem Server haben, sind diese Dateien wichtig und das Löschen kann zu einem Datenverlust führen. Sie können mehr über InnoDB in den Dokumenten lesen:
http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html
mysql> PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY;
Löschen Sie alle Bin -Dateien vor 3 Tagen!
oder
PURGE MASTER LOGS BEFORE '2010-10-08 00:00:00';
Mysql-bin.index trägt normalerweise alle .bin-Dateien. Wenn Sie einige Dateien entfernt haben, bearbeiten Sie den .Index, um die verfügbaren Dateien zu reflektieren. Wenn Sie alle .bin -Dateien entfernt haben, entfernen Sie leer die .Index -Datei. Dies wird Ihr Problem lösen.