前の記事:«
次の記事: »

メモエントリ。
 
MySQLのバイナリログをSQLのトレース目的で使ったのでメモ。
 

MySQLのバイナリログ取得設定

MySQLのバイナリログをとっておけば色々出来る、その辺は公式やら書籍が詳しいので割愛。
 

取りあえず設定。
my.cnfを編集、[mysqld] のセクションに取りあえず3行入れよう、ディレクトリはmysqlユーザが読み書きできるところならどこでもいい、この例では yum でのデフォルトのdataディレクトリだ。
[mysqld]
・・・
log-bin=/var/lib/mysql/binary
expire_logs_days = 14
max_binlog_size=200M

"log-bin"だけでも良いけど、放っておくとどこまでもログが残る、1ファイル200MB制限・14日間保存と
ファイル容量を制限するのは、ログ抽出の際に不便だから。
 
 
これで MySQL を再起動すれば、"/var/lib/mysql/binary.index","/var/lib/mysql/binary.000001" ファイルが作成されている。
(※起動に失敗したらmy.cnfで指定しているエラーログを見ると大体分かる。)
 
バイナリログはこっち、 "/var/lib/mysql/binary.000001" ローテーションするごとに数字が増える。
 
 

バイナリログから更新系ログを抽出

バイナリログの設定が終わったので本題。
 

バイナリログには、データベースの基本機能、 CRUD のうちReadを除くCUDが記録されている。
これを mysqlbinlog コマンドでテキストデータ(=実行時のSQLクエリ)に戻せるのでやってみよう。
 

テスト用DBの作成と削除

とりあえずDBを作って消した。

#mysqladmin create test001 -p
#mysqladmin drop test001 -p

mysqladmin とかいう妙なコマンドを使ったが、実際どういうSQL文が実行されたのかこれではよく分からない。
が、実行結果がバイナリログに記録されているので安心。
 

変換したバイナリログを眺める

mysqlbinlog コマンドにバイナリログファイルを渡してみる、

# mysqlbinlog binary.000001

 

上記実行後、出力の一部が下記。

#081110 12:33:26 server id 1 end_log_pos 104655065 Query thread_id=1071 exec_time=0 error_code=0
SET TIMESTAMP=1226288006/*!*/;
SET @@session.foreign_key_checks=1, @@session.unique_checks=1/*!*/;
SET @@session.sql_mode=0/*!*/;
create database `test001`/*!*/;
# at 104655065
#081110 12:39:45 server id 1 end_log_pos 104655154 Query thread_id=1076 exec_time=0 error_code=0
SET TIMESTAMP=1226288385/*!*/;
drop database `test001`/*!*/;

 

ばっちり記録されている。
本来はフルバックアップからの差分とかでの利用が想定されているみたいだけど、WEBアプリ制作時のデバッグとか、わけのわからんアプリが何かしているので調査とか、そういう局面でも役に立つ。

前の記事:«
次の記事: »

この投稿に関連した記事

.
add to hatena hatena.comment (4) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 4

トラックバック

このブログ記事に対するトラックバックURL:

この記事へのコメント

コメントはまだありません。

Comment feed

この記事へのトラックバック

トラックバックはまだありません。

コメントする ※管理者が確認してから表示されます

Comments links could be nofollow free.

他のサイト

■OSC関西@神戸
資料公開中

はてなの別館
・犬の話
・家の話
・政治の話

※注意

I
KOBE×
BUSINESS.

これは個人ブログです、内容についてアイクラフト(株)は責任を負いません。
にほんブログ村 IT技術ブログへSawanoblogのフィード
人気ブログランキングへ
この日記のはてなブックマーク数
はてなRSSに追加
Googleに追加
My Yahoo!に追加
livedoor Readerに追加
goo RSSリーダーに追加
フィードメーター - SawanoBlog.
MCP
MCTS
CCNA

ミニブログとか

あわせて読みたいブログパーツ
  • 第7回 Kobe Love Port みなとまつり 行ってきました
    メリケンパークの東端付近から


    通勤中に参考書を読む、裁って3つの冴えたやり方
    写真:3冊の本


    WindowsServer2008でパフォーマンスカウンタログをCSVで保存
    画像:ログファイルができている


    Windows XP Mode があればNameLandもWindows7(x64)で使える
    画像:XP Mode


    Excel2000,2003で描いた図を画像としてクリップボードにコピー
    画像:図の範囲を選択


    ValuePress!(バリュープレス) を使ってみよう
    画像:2月10日時点バナー
  • Amazon用