MySQL

説明 [#k11817c7]

mysqldumpや物理ファイルバックアップでロールバックする以外に、ロールフォワードする場合は下記バイナリログの出力設定が必要です。

設定内容 [#bc3106f7]

 # vi /etc/my.cnf
 ---
 [mysqld]
 log-bin=mysql-bin
 expire_logs_days = 7
 ---
 期限は運用に併せて。
 # /etc/init.d/mysqld restart

バイナリログの期限変更(再起動不要) [#h6eb8151]

MySQLの公式サイトにもオンライン変更yesとなっているので、setで変更可能です。

 # mysql -u root -p
 mysql> SET GLOBAL expire_logs_days = 5;
 Query OK, 0 rows affected (0.06 sec)
 
 mysql> SHOW GLOBAL VARIABLES like 'expire_logs_days';
 +------------------+-------+
 | Variable_name    | Value | 
 +------------------+-------+
 | expire_logs_days | 5     |
 +------------------+-------+
 1 row in set (0.00 sec)

参考URL:http://d.hatena.ne.jp/omiyan/20110128/p1

mysqldump時にバイナリログをローテーションする [#w51f19f6]

 --flush-logsオプションをつけることでローテーションされます。
 # mysqldump -u root -p --flush-logs --single-transaction --order-by-primary --events -A > mysqldump.all.sql

バイナリログを有効にしている場合のmysqldumpオプション [#f66344e0]

 --master-data=2を追加することで、CHANGE MASTER TOはコメントアウトにしつつ、バイナリログのポジションをdumpに記載することができます。