web-dev-qa-db-ja.com

レプリケーションリレービンファイルを削除しても安全ですか?

私は約50MBの小さなデータベースを持っています。これは、リモートサーバーに複製するマスターです。リレービンファイルの合計が5GBを超えていることに気づきました。それらを削除しても安全ですか?

15
HyderA

いいえ、リレービンファイルを手動で削除しないでください。あなたができることは、MySQLコマンドを使用してバイナリファイルをパージすることです。 PURGE BINARY LOGSコマンドの詳細については、 MySQL 5.0マニュアル を参照してください。

1
programmer

より良い答えは、リレーログを「削除」できることだと思いますが、mysqlはそれを自動的に管理する必要があります。これを行う1つの方法は、relay_log_purgeの値を確認することです。

Mysqlにそれらを管理させたい場合は、1に設定する必要があります。

set global relay_log_purge=1;

おそらくログをフラッシュする必要があります。

flush logs;

これはバイナリログには影響しません。

20
Rodo

MySQLマニュアル から:

SQLスレッドは、ファイル内のすべてのイベントを実行し、それを必要としなくなった後、各リレーログファイルを自動的に削除します。 SQLスレッドがそれを処理するため、リレーログを削除するための明示的なメカニズムはありません。ただし、FLUSH LOGSはリレーログをローテーションします。これは、SQLスレッドがそれらを削除するタイミングに影響します。

0
the_nuts

たぶん、マスターとスレーブを再同期してみてください。

可能であれば、を実行してスレーブをクリーンアップします。

reset slave

すべてのリレーバイナリログを削除します。

次に、change master toを使用してレプリケーションを再設定します...マスターとスレーブの間に遅延が大きすぎる可能性があります。

0