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はサーバに負荷をかけるので、本番サーバ内では実行しない方がよいこともある。
コメント