Skip to content

gitmasa/mysqlbinlogex

Repository files navigation

・mysqlbinlogexについて

 mysqlのバイナリログは、以下の問題があります。(俺的に・・)

 ・すぐサイズが大きくなるため、1つのDBのログを追うために、相当時間がかかる。
 ・mysqlbinlogコマンドから出るデータは、1行になっていないため、grepとかしづらい。
 ・バイナリデータ突っ込んだりしている場合は、文字化けて、続きが読めなくなったりする。
 ・mysqlbinlogコマンドも、1Gクラスのログだと、とにかく遅い。
 ・ログを追ったり調査するだけの人間からすると、無意味なログが多すぎる。


 そのため、やっつけですが、以下の仕様で、バイナリログを閲覧するアプリを作ってみました。

 ・高速化のため、バイナリログを直接読み込む
 ・ログはgrepとか行いやすいように、「1行1クエリ」にする。(クエリ内改行は、スペース置換)
 ・クエリは、utf8mb4文字列以外であれば「?」に置換して、化けないようにする。
 ・DB(スキーマ)ごとにログをフォルダに振り分けて保存してくれる。
 ・時間フィルタとかも使いたい。

 
 上記の内容を実現したため、リードオンリーなログになりますが、ログを掘る必要のある方には、
 非常に有用なのではないかと思い、今後進化させていきたいので、公開しました。
 
 是非、バグや機能追加等のプルリクエストをお待ちしています。


==================================================

とても簡単な使用方法:

mysqlbinlogex:
 -i : (必須)入力ファイル指定。mysqlのバイナリログ。5.5系と5.6系でチェック済(crc32対応)
 -o : (任意)出力先フォルダ。指定しなかったら、stdoutに書き出し。指定した場合は以下の動作。
    1.「指定されたフォルダ名」の下に、「データベース名称」のフォルダを作成。
    2.(指定されたフォルダ名)/(データベース名称)の中に、「(入力ファイル名).txt」というログファイルを書き出し。
    3.同一ファイル名がある場合は、上書き。
 -d : (任意)データベース名称フィルタ指定。指定されたDBに対して動作したログのみを表示。
 -s : (任意)表示開始日時フィルタ指定。対応フォーマットは、以下。hh:ii:ssを省略時は00:00:00
   'YY/mm/dd hh:ii:ss', 'YYYY/mm/dd hh:ii:ss', 'YY-mm-dd hh:ii:ss', 'YYYY-mm-dd hh:ii:ss'
   'YY/mm/dd_hh:ii:ss', 'YYYY/mm/dd_hh:ii:ss', 'YY-mm-dd_hh:ii:ss', 'YYYY-mm-dd_hh:ii:ss'
   'YY/mm/dd', 'YYYY/mm/dd', 'YY-mm-dd', 'YYYY-mm-dd'
 -e : (任意)表示終了日時フィルタ指定。対応フォーマットは、以下。hh:ii:ssを省略時は00:00:00
 -h : 簡単なヘルプ。

mysqltxtlog:
 *** このコマンドは、mysqlbinlogexにて吐き出されたテキストログファイルをフィルタリング閲覧するのに使います。
 *** 上のコマンドだけで、事足りるのですが、-oを指定してログ分割を自動的に行わせている場合、各分割ログを日時フィルタ
 *** して見たい、という要望があったのでついでに作りました。
 -i : (必須)入力ファイル指定。mysqlbinlogexにて吐き出されたテキストログ。
 -d : (任意)データベース名称フィルタ指定。指定されたDBに対して動作したログのみを表示。
 -s : (任意)表示開始日時フィルタ指定。対応フォーマットは、以下。hh:ii:ssを省略時は00:00:00
   'YY/mm/dd hh:ii:ss', 'YYYY/mm/dd hh:ii:ss', 'YY-mm-dd hh:ii:ss', 'YYYY-mm-dd hh:ii:ss'
   'YY/mm/dd_hh:ii:ss', 'YYYY/mm/dd_hh:ii:ss', 'YY-mm-dd_hh:ii:ss', 'YYYY-mm-dd_hh:ii:ss'
   'YY/mm/dd', 'YYYY/mm/dd', 'YY-mm-dd', 'YYYY-mm-dd'
 -e : (任意)表示終了日時フィルタ指定。対応フォーマットは、以下。hh:ii:ssを省略時は00:00:00
 -h : 簡単なヘルプ。

==================================================

現在の検証OS:Cent5系、RHEL5系(ほぼ一緒か・・)



About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published