MySQL のバイナリログの削除方法

MySQL をマスタ/スレーブ構成で運用していると、バイナリログがハードディスク容量を圧迫してくるのでその削除手順をメモ。

1.レプリケーションの進行状態を確認

スレーブ側がどこまでバイナリログを読み込んでいるか確認する。Master_Log_File に表示されているファイル(mysql-bin.006223)まで読み込まれている。つまり、その直前のファイルまでは削除しても問題ないと言うことになる。

mysql> show slave status \G
Master_Log_File: mysql-bin.006223

2.マスタ側のバイナリログ一覧を確認

マスタ側のバイナリログ一覧を確認する。レプリケーションが正常かつ順調に行われている場合、1のMaster_Log_File と同じものになっているはずである。

mysql> show master logs;
| mysql-bin.005987 | 104957654 |
| mysql-bin.005988 | 104949424 |
<略>
| mysql-bin.006222 | 105051618 |
| mysql-bin.006223 | 22691624 |
+------------------+-----------+

3.バイナリログを削除

1で確認したバイナリログの直前まで削除する。以下のように、mysql-bin.006223 を指定すると、その直前までのバイナリログを削除してくれる。

mysql> purge master logs to 'mysql-bin.006223';

おしまい。