MySQL 5.1.x | InnoDB |ウィンドウズ
Mysqlデータディレクトリがbinログでいっぱいになり始めています。
現在、Windows mysqlサーバーで次の設定を構成しています。
[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=25
Expire_logs_days設定をexpire_logs_days=10
に変更して、mysqlサービスをバウンスすることを計画しています。この変更を行ってからすぐに、古いビンログが明らかになることが期待できますか。
これは、毎晩スケジュールされたタスクの一部としてのみ行われますか?それともこれは即時である必要がありますか?
Mysqlの起動時にすぐに処理されます。
Mysqlの再起動を待つ必要はありません。
最初に、expire_logs_days
を/etc/my.cnfで10に設定します
[mysqld]
log-bin
server-id=1
binlog-do-db=foodb1
binlog-do-db=foodb2
expire_logs_days=10
次に、mysqlにログインしてこれを実行します。
PURGE BINARY LOGS BEFORE (date(now()) + interval 0 second - interval 10 day);
クエリの日付と時刻に注意してください
mysql> select date(now()) + interval 0 second - interval 10 day;
+---------------------------------------------------+
| date(now()) + interval 0 second - interval 10 day |
+---------------------------------------------------+
| 2012-12-11 00:00:00 |
+---------------------------------------------------+
1 row in set (0.00 sec)
mysql>
したがって、 PURGE BINARY LOGS コマンドは、日付スタンプが2012-12-11 00:00:00
より前の日付であるすべてのバイナリログを削除します。
最後に、このコマンドを実行します
SET GLOBAL expire_logs_days = 10;
それでおしまい。 expire_logs_days のインストールに再起動は必要ありません。
レプリケーションパラメータについては、はい再起動が必要です。