SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

mysqlのバイナリログを見る

mysqlが生成するバイナリログ「XXXXXX-bin.nnnn」の中身をテキストで表示するには以下のようにする。

mysqlbinlog hoge-bin.000007 > /tmp/log.txt

vi /tmp/log.txt

なお、SELECTなどデータが変更されない命令は記載されておらず、INSERTやUPDATE、DELETEなど更新系SQLが記載されています。

表示例

# at 12092234
#060812 18:30:04 server id 1  log_pos 12092234  Query  thread_id=1703854       exec_time= 0     error_code=0
SET TIMESTAMP=1155375004;
insert into mst_brand (brand_code, category_1, category_2, item_num) values('00031', '100', '40', '8');

ログが大きすぎる場合は、tailなどでログの一部を取得して使うといいでしょう。

下の例はログの最後10万行を取得しています。

tail /tmp/log.txt -n100000 > /tmp/log2.txt
vi /tmp/log2.txt

mysqlbinlogでバイナリログからテキストログを生成するとかなりの大きさになることがあります。

そのような場合、「–start-datetime」と「–stop-datetime」を使うことにより特定の時間帯のログのみ抜き出すことができます。

使用例

mysqlbinlog hoge-bin.003265 --start-datetime="2009-02-03 15:50:00" --stop-datetime="2009-02-03 16:00:00" > /tmp/3265.log

注意

mysqlbinlogはサーバに負荷をかけるので、本番サーバ内では実行しない方がよいこともある。

関連するメモ

コメント