こんばんは。情弱です。
show binlog eventsって知ってましたか?おれは今日知りました。簡単に言うとバイナリログに記録された更新系クエリとかポジションを参照するための構文です。バイナリログの中身を調査したい場合、今まではmysqlbinlogでテキストファイルに戻してから調査していたんですが、なんかもっと便利なのねーかなー?って思ってたらこんなの見つけた↓。


SHOW BINLOG EVENTS 
     [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]

ためしに適当に実行してみました。

1
2
3
4
5
6
7
8
9
10
11
12
mysql > show binlog events in 'mysql-bin.000018' limit 100, 5;

+------------------+-------+------------+-----------+-------------+--------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-------+------------+-----------+-------------+--------------------------------+
| mysql-bin.000018 | 12478 | Query | 1234567 | 12537 | BEGIN |
| mysql-bin.000018 | 12537 | Query | 1234567 | 12823 | use `XXXXXX`; INSERT INTO xxxx |
| mysql-bin.000018 | 12823 | Xid | 1234567 | 12850 | COMMIT /* xid=10759423 */ |
| mysql-bin.000018 | 12850 | Query | 1234567 | 12909 | BEGIN |
| mysql-bin.000018 | 12909 | Query | 1234567 | 13197 | use `XXXXXX`; INSERT INTO xxxx |
+------------------+-------+------------+-----------+-------------+--------------------------------+
5 rows in set (0.00 sec)

mysqlbinlogよりもこっちのがスッキリ整形されてて見やすいよねえ。しかしながらこのコマンドで参照できるのは当然MySQLサーバ自身が保持しているバイナリログ、具体的にはSHOW BINARY LOGSコマンドでリスト一覧に出てくるものだと思われる。なので使い分けは必要。また一つ勉強になりました。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Set your Twitter account name in your settings to use the TwitterBar Section.