バイナリログの設定

MySQLはデフォルトの状態ではバイナリログを30日間保持する設定になっており、 ディスクを圧迫する要因となる場合がある。 そのため、バイナリログの保持期間を設定したり削除したりする必要がある。

バイナリログの確認

対象のデータベースにログインする

mysql -u <username> -p <database>

保持期間を確認するにはbinlog_expire_logs_seconds を確認する。

mysql> SHOW global VARIABLES LIKE 'binlog_expire_logs_seconds';
+----------------------------+---------+
| Variable_name              | VALUE   |
+----------------------------+---------+
| binlog_expire_logs_seconds | 2592000 |
+----------------------------+---------+
1 ROW IN SET (0.00 sec)

現在保存されているバイナリログを確認するには以下を実行する

SHOW BINARY logs;

バイナリログの保持時間を設定

秒数で指定する必要がある。7日にする場合は $3600*24*7=604800$を設定する。

mysql> SET global binlog_expire_logs_seconds = 604800;

expire_logs_days パラメータと binlog_expire_logs_seconds は同時に設定できない。 両方設定されている場合はbinlog_expire_logs_seconds が優先される。

バイナリログの削除

構文

qurge [master|binary] logs [to 'log_name' | before <datetime_expire>]

900番以前のログを削除するには

purge BINARY logs TO 'binlog.000900';