PURGE {MASTER | BINARY} LOGS TO 'log_name
' PURGE {MASTER | BINARY} LOGS BEFORE 'date
'
ログ インデックス内で指定されたログや日付の前にリストされている全てのバイナリ ログを削除します。与えられたログが最初になるように、ログ インデックス ファイル内に記録されたリストからもログが削除されます。
例:
PURGE MASTER LOGS TO 'mysql-bin.010'; PURGE MASTER LOGS BEFORE '2003-04-02 22:46:26';
BEFORE
異型の
date
引数は
'YYYY-MM-DD hh:mm:ss'
フォーマットになり得ます。MASTER
と BINARY
は同義語です。
このステートメントは、スレーブが複製中に起動しても安全です。それらを停止させる必要はありません。現在削除しようとしているログの1つを読み込んでいる、アクティブ スレーブを持っていれば、このステートメントは何もせず、エラーで失敗します。しかし、もしスレーブが休止状態で、まだ読み込まれていないログの1つを消去してしまったら、そのスレーブはその後複製が不可能になります。
ログを安全に消去するには、次の手順に従ってください。
各スレーブ
サーバ上で、どのログがそれを読み込んでいるのか確認する為に
SHOW SLAVE STATUS
を利用してください。
SHOW BINARY LOGS
を利用してマスタ サーバ上でバイナリ
ログのリストを手に入れてください。
全てのスレーブの中で一番最初のログを確認してください。.これがターゲット ログです。もし全てのスレーブが最新であれば、これがリスト上の最後のログになります。
削除しようとしている全てのログのバックアップを作成してください。(このステップは任意ですが、常に推奨されている物です。)
ターゲット ログを含まず、そこまでの全てのログを消去してください。
指定した日数後に(項4.2.3. 「システム変数」
を参照)バイナリ ログを自動的に無効にする
expire_logs_days
システム変数も設定できます。もし複製を利用しているなら、ご利用のスレーブがマスタよりも遅れるであろう最大日数よりも低く変数を設定しなければいけません。