回転したMySQLバイナリログを削除しても安全ですか?
-
24-10-2019 - |
質問
バイナリロギングがアクティブなMySQLサーバーを持っています。 1日にログファイルが「回転」されると、IE MySQLはそれに書き込みを停止し、新しいログファイルを作成します。たとえば、私は現在、これらのファイルを/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
Mybinlog.000006は成長しています。
mybinlog.000004とmybinlog.000005を使用して、それらをジップアップして別のサーバーに転送できますか、それとも以前に何か他のことをする必要がありますか?
mybinlog.indexに保存されている情報は何ですか?最新のバイナリログに関する情報のみ?
アップデート: mybinlog.indexファイルを更新するパージバイナリログでログを削除できることを理解しています。ただし、削除する前にログを別のコンピューターに転送する必要があります(バックアップが別のマシンで有効であるかどうかをテストします)。転送サイズを縮小するために、ファイルをbzip2にしたいと思います。ログファイルがもう「そこ」ではない場合、バイナリログをパージするにはどうなりますか?
解決 2
私はついにmysqlのウェブサイトで答えを見つけました。誰かがこの情報を必要とする場合に備えて:
MySQL 5.0.60の前に、バイナリログをパージしてバイナリログをパージして、.Indexファイルにリストされているバイナリログファイルが他の手段によってシステムから削除された場合、同じように動作しませんでした(どちらも正しく動作しませんでした) (LinuxでRMを使用するなど)。 MySQL 5.0.60から始めて、このような場合、ステートメントの両方のバリアントがエラーで失敗します。 (バグ#18199、バグ#18453)そのようなエラーを処理するには、.indexファイル(単純なテキストファイル)を手動で編集して、実際に存在するバイナリログファイルのみをリストし、パージバイナリログを再度実行します失敗した声明。
これは、.indexファイルを手動で編集する必要があるため、すべてが問題になります。興味深いのは、.indexファイルが通常のテキストファイルであることです。今まで気づかなかった。
他のヒント
古いバイナリログを削除できます。それらを直接削除する代わりに、mysql-statementを使用する方が安全です PURGE BINARY LOGS
また、あなたを更新します mybinlog.index
ファイル。ファイル名がバイナリロギングに使用されているこのファイルストア、参照
http://dev.mysql.com/doc/refman/5.0/en/purge-binary-logs.html
さらに、古いバイナリログを自動的に削除するようにMySQL-Serverを構成できます。変数を設定します max_binlog_size
と expire_logs_days
適切な値へのサーバー構成で。
ibdata
と ib_logfile
ファイルは、バイナリロギングとは何の関係もありません。 InnoDBストレージエンジンで使用されます。それらが成長していないように見えるという事実に誤解されないでください。サーバーにInnodbテーブルがある場合、これらのファイルは重要であり、それらを削除するとデータが失われる可能性があります。 Innodbの詳細については、ドキュメント:
http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html
mysql> PURGE BINARY LOGS BEFORE NOW() - INTERVAL 3 DAY;
3日前にすべてのビンファイルを削除してください!
また
PURGE MASTER LOGS BEFORE '2010-10-08 00:00:00';
mysql-bin.indexは通常、すべての.binファイルを運びます。いくつかのファイルを削除した場合、plsは.indexを編集して、利用可能なすべてのファイルを反映しています。すべての.binファイルを削除した場合、.indexファイルを空に削除します。これはあなたの問題を解決します。