mysqlbinlogについて覚え書き

1月 10, 2010

mysqlbinlogは、MySQLでバイナリログをテキストで参照するためのユーティリティ。
単にバイナリログの中身を確認したい時は、以下のように。

# mysqlbinlog -D bin-log.000012


バイナリログをテキストにしてからmysqlクライアントに渡すには、例えば以下のようにする。
バイナリログには実行したSQL文その他が記録されているので、リカバリに利用することができる。

# mysqlbinlog bin-log.000012 | mysql -u root -pxxxxxx


以下でも。

# mysqlbinlog -D -u root -pxxxxxxx /backup/mybin-log.000006 > /backup/recover.sql
# mysql -u root -pxxxxxxx < /backup/recover.sql


my.cnfにおいてバイナリログファイルの出力先を省略した場合、MySQLのデータベースディレクトリ
以下に、「ホスト名-bin.ログ番号」という名前でログファイルが作成される。
ログ番号の採番はFLUSH LOGSかインスタンス再起動で再度割り当てられる。
disable-log-bin(または-D)は、バイナリログ出力を無効にするオプション。
通常、バイナリログ適用時にはバイナリログは作成しない。この時に生成される
バイナリログは通常必要ないからだ。
my.cnfのlog-binパラメータを一時的に無効にしておけばオプションをつけなくても
生成されなくなるわけだが、、、戻すのを忘れてしまいそうでコワイ。

ちなみに「バイナリログの適用」ってそもそも何なのかというと。
とりあえず「バイナリログをmysqlbinlogコマンドでSQL文に変換し、それを実行すること」
と捉えておく。

主な出典
「現場で使えるMySQL」松信嘉範著/翔泳社


Categories: MySQL