私は約50MBの小さなデータベースを持っています。これは、リモートサーバーに複製するマスターです。リレービンファイルの合計が5GBを超えていることに気づきました。それらを削除しても安全ですか?
いいえ、リレービンファイルを手動で削除しないでください。あなたができることは、MySQLコマンドを使用してバイナリファイルをパージすることです。 PURGE BINARY LOGS
コマンドの詳細については、 MySQL 5.0マニュアル を参照してください。
より良い答えは、リレーログを「削除」できることだと思いますが、mysqlはそれを自動的に管理する必要があります。これを行う1つの方法は、relay_log_purgeの値を確認することです。
Mysqlにそれらを管理させたい場合は、1に設定する必要があります。
set global relay_log_purge=1;
おそらくログをフラッシュする必要があります。
flush logs;
これはバイナリログには影響しません。
MySQLマニュアル から:
SQLスレッドは、ファイル内のすべてのイベントを実行し、それを必要としなくなった後、各リレーログファイルを自動的に削除します。 SQLスレッドがそれを処理するため、リレーログを削除するための明示的なメカニズムはありません。ただし、FLUSH LOGSはリレーログをローテーションします。これは、SQLスレッドがそれらを削除するタイミングに影響します。
たぶん、マスターとスレーブを再同期してみてください。
可能であれば、を実行してスレーブをクリーンアップします。
reset slave
すべてのリレーバイナリログを削除します。
次に、change master to
を使用してレプリケーションを再設定します...マスターとスレーブの間に遅延が大きすぎる可能性があります。