たとえば
- 間違ってデータ一括で消しちゃったとか
- 間違って一括で更新しちゃったとか
- 間違えてテーブルをtruncateしちゃったとか
等のヒューマンエラーの際に役に立ったりする
ちなみに、いくつかメモ程度に書いたものですが、何かやらかす前にバックアップ(バイナリログとdumpファイル)がキチンと取られていることが大前提なので、そのあたりは注意
コマンドサンプル
2012-06-11 02:10:00 から 2012-06-12 10:30:00 のデータをリカバリするSQLファイルを生成する
mysqlbinlog --start-datetime="2012-06-11 02:10:00" --stop-datetime="2012-06-12 10:30:00" mysql-bin.*1 > recovery.sql
2012-06-11 02:10:00 から最後のログまで、schema1のスキーマ限定でリカバリするSQLファイルを生成する
mysqlbinlog --database=schema1 --start-datetime="2012-06-11 02:10:00" --to-last-log mysql-bin.*1 > recovery.sql
ほかにもいっぱいオプションがあるのですが、細かい話は、オンラインリファレンスを読んでいただくとして・・