web-dev-qa-db-ja.com

mysql-binファイルを削除しても安全ですか?

私はmysqlでMMレプリケーションを行っており、不要なファイルを削除するためにボックス内の空きスペースを絞りたいのですが、mysql-bin内のこれらの/var/db/mysql/ファイルに出くわしましたmysql-bin.000123mysql-bin.000223などのファイルが数百あります。 show master statusshow slave statusを実行すると、特定の位置でいくつかのmysql-binファイルが使用されますが、他のすべてのbinファイルはleftoversであり、今後は使用されません。この場合、レプリケーションが現在指しているものを除いて、これらのmysql-binファイルをすべて削除しても安全ですか?

削除しても安全な場合、私ができることは何ですか自動的に使用されなくなったファイルを削除しますか?

100
user18530

OSで削除しないでください。

Mysqldにそれを実行させる必要があります。 mysqldによる管理方法は次のとおりです。

ファイルmysql-bin.[index]は、mysqldが生成して自動ローテーションしたすべてのバイナリログのリストを保持します。ビンログをmysql-bin.[index]と組み合わせて消去するメカニズムは次のとおりです。

PURGE BINARY LOGS TO 'binlogname';
PURGE BINARY LOGS BEFORE 'datetimestamp';

これらは、指定したbinlogまたはタイムスタンプの前のすべてのバイナリログをクリアします。

たとえば、実行すると

PURGE BINARY LOGS TO 'mysql-bin.000223';

これにより、mysql-bin.000223の前にすべてのバイナリログが消去されます。

走れば

PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 3 DAY) + INTERVAL 0 SECOND;

これにより、3日前の午前0時までにすべてのバイナリログが消去されます。

Binlogを自動的に回転させて3日間保持したい場合は、次のように設定します。

mysql> SET GLOBAL expire_logs_days = 3;

次に、これを/etc/my.cnfに追加します

[mysqld]
expire_logs_days=3

mysqldはそれらのログを削除します

スレーブステータス\ Gを表示

これは重要です。 SHOW SLAVE STATUS\Gを実行すると、マスターからの2つのバイナリログが表示されます。

  • Master_Log_File
  • Relay_Master_Log_File

レプリケーションの遅延がほとんどないか、まったくない場合、これらは通常同じ値です。レプリケーションラグが多い場合、これらの値は異なります。単純にするために、Relay_Master_Log_Fileを選択し、マスターに戻って実行します。

PURGE BINARY LOGS TO 'Whatever Relay_Master_Log_File Is';

これにより、レプリケーションが中断されることはありません。

148
RolandoMySQLDBA

これは実際にバックアップ戦略に依存します。バイナリログを保持する主な理由の1つは、データベースを「特定の時点」に復元することです。データベースがクラッシュして復元が必要な場合は、最新の完全バックアップを復元してから、完全バックアップの位置からバイナリログを再生します。

したがって、毎日完全バックアップを実行し、7日間のバイナリログがある場合、過去4〜6日間のバイナリログを削除できる可能性があります。 expire_logs_days設定を使用して、何日分のバイナリログを保持するかを制御できます。

保持したい最も古いログを最初に確認することで、不要なバイナリログを削除できます。

ls -lh /path/to/binary/logs/mysql-bin.0*

そしてmysqlで:

mysql> PURGE BINARY LOGS TO 'mysql-bin.XXXXX';
22
Derek Downey

これを試して:

RESET MASTER;

ドキュメント が言ったように:

RESET MASTERを使用すると、バイナリログファイルとそれらに関連するバイナリログインデックスファイルを削除して、マスターをバイナリログが開始される前の状態に戻すことができます。

これにより、関連するすべてのバイナリログファイルが削除されますが、必要なものではない可能性があります。

6
Xiaofeng