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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top