このPURGE BINARY LOGS
ステートメントは、指定されたログファイル名またはタイムスタンプの前に、ログインデックスファイルにリストされているすべてのバイナリログファイルを削除します。削除されたログファイルもインデックスファイルに記録されたリストから削除されるため、指定されたログファイルがリストの最初になります。
mysql-bin.000019
コマンドを使用するまでバイナリログを削除したことを願っています
PURGE BINARY LOGS TO 'mysql-bin.000019';
すべてのログを消去する必要がある場合は、次のようにします
PURGE BINARY LOGS TO 'mysql-bin.000025';
これにより、までのバイナリログが削除されmysql-bin.000025
ます。
更新
あなたが試すことができます
RESET MASTER;
RESET MASTER
インデックスファイルにリストされているすべてのバイナリログファイルを削除し、バイナリログインデックスファイルを空にリセットして、新しいバイナリログファイルを作成します
の影響はRESET MASTER
、2つの主な点でPURGE BINARY LOGS の影響とは異なります。
RESET MASTER
インデックスファイルにリストされているすべてのバイナリログファイルを削除し、数字のサフィックスが.000001の空のバイナリログファイルを1つだけ残しますが、番号はPURGE BINARY LOGSによってリセットされません。
RESET MASTER
レプリケーションスレーブの実行中に使用することは意図されていませんでした。挙動RESET MASTER
に対し、スレーブが実行中に使用される場合は、未定義の(したがって、サポートされていない)であるPURGE BINARY LOGS
レプリケーションスレーブが実行中に安全に使用することができます。
RolandoMySQLDBAによる警告
RESET MASTER
スレーブを接続して実行している場合、各スレーブのIOスレッドはすぐにその場所を失います。したがって、レプリケーションが壊れており、すべてのスレーブのデータを再び同期するために時間を費やす必要があります。レプリケーションの整合性を損なうことなく、マスターからバイナリログを安全に削除する場合は、次のようにします。
SHOW SLAVE STATUS\G
各スレーブで実行します。
- に注意してください
Relay_Master_Log_File
。これは、最新のステートメントがスレーブで正常に実行されたバイナリログです。
- のすべての表示から、最も古いものを
SHOW SLAVE STATUS\G
特定しますRelay_Master_Log_File
(たとえば、「mysql-bin.00123」)。
- あなたは実行することができます
PURGE BINARY LOGS TO 'mysql-bin.00123';
スレーブはその場所を失うことはありません。
全体的な効果は?これにより、現時点ですべてのスレーブで実行されていないステートメントのマスターにバイナリログが残ります。