Mysql Binlog検索レコードおよびbinlogデータの表示方法
3091 ワード
ターゲット、開発者はデータが何の意味もなく追加されたと言っていますが、どこから追加されたのか分かりません.また、アプリケーション機能にこのようなデータを追加すべきではありません.ソースを調べるためにbinlogの中に探しに行くつもりですが、binlogには何ヶ月もの数があります.私のようにmysqlbinlogを1つずつ下りても、仕方がありません.だからスクリプトループで操作するつもりです.
1,binlogディレクトリに行ってすべてのbinlogを一時ディレクトリ/tmp/bl/にコピーする
2、スクリプトを書く遍歴
3、検索スクリプトを実行し、結果を表示する
見てください./bl/z_grep_single.logサイズは0で、現在の2ヶ月binlogログには、この値が記録されていないことは明らかです.2ヶ月前に入力したデータのはずなので、履歴バックアップ記録のバックアップ記録を検索するしかありません.
MySQLのbinlogデータの表示方法
binlog紹介
binlog、すなわちバイナリログは、データベース上のすべての変更を記録する.
データベースを変更するSQL文の実行が終了すると、binlogの末尾にレコードが書き込まれ、文解析器に文の実行が完了することを通知します.
binlog形式
文に基づいて、updateなどのすべての文がライブラリから正常に実行されることは保証されません.limit 1;
ローに基づいて、変更ごとにbinlogのローとして記述する.特に複雑なupdateまたはdelete操作を実行する場合、行ベースのフォーマットが有利である.
mysqlにログインしてbinlogを表示
最初のbinlogファイルの内容のみ表示
指定したbinlogファイルの内容を表示
現在書き込み中のbinlogファイルの表示
binlogファイルリストの取得
mysqlbinlogツールで表示する
注意:
現在書き込み中のbinlogファイルを表示しないでください
追加しない--forceパラメータによる強制アクセス
binlogフォーマットが行モードの場合は-vvパラメータを追加します
ローカル表示
開始/終了時間ベース
pos値に基づく
リモートビュー
開始/終了時間を指定し、結果をローカルt.binlogファイルにリダイレクトする.
1,binlogディレクトリに行ってすべてのbinlogを一時ディレクトリ/tmp/bl/にコピーする
cp /home/data/mysql/binlog/mysql-bin.* /tmp/bl
2、スクリプトを書く遍歴
[root@wgq_idc_dbm_3_61 tmp]# vim find_guolichao.sh
#!/bin/bash
cd /tmp/bl
#
for path in `ls . |grep mysql-bin.0`
do
# , mysqlbinlog
echo "" >> z_grep.log
echo "begin ..."
echo $path >> z_grep.log
# AD_ADVERTISEMENT AD_LINK ad_init_user , z_grep.log
/usr/local/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v |grep AD_ADVERTISEMENT |grep AD_LINK |grep ad_init_user >> z_grep.log
# , , , z_grep_single.log , z_grep.log mysqlbinlog 。
/usr/local/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v |grep AD_ADVERTISEMENT |grep AD_LINK |grep ad_init_user >> z_grep_single.log
echo "end." >>z_grep.log
done
3、検索スクリプトを実行し、結果を表示する
[root@wgq_idc_dbm_3_61 tmp]# bash -x find_guolichao.sh
[root@wgq_idc_dbm_3_61 tmp]# ll ./bl/z_grep*
-rw-r--r--. 1 root root 33534 1 27 15:59 ./bl/z_grep.log
-rw-r--r--. 1 root root 0 1 27 15:59 ./bl/z_grep_single.log
[root@wgq_idc_dbm_3_61 tmp]#
見てください./bl/z_grep_single.logサイズは0で、現在の2ヶ月binlogログには、この値が記録されていないことは明らかです.2ヶ月前に入力したデータのはずなので、履歴バックアップ記録のバックアップ記録を検索するしかありません.
MySQLのbinlogデータの表示方法
binlog紹介
binlog、すなわちバイナリログは、データベース上のすべての変更を記録する.
データベースを変更するSQL文の実行が終了すると、binlogの末尾にレコードが書き込まれ、文解析器に文の実行が完了することを通知します.
binlog形式
文に基づいて、updateなどのすべての文がライブラリから正常に実行されることは保証されません.limit 1;
ローに基づいて、変更ごとにbinlogのローとして記述する.特に複雑なupdateまたはdelete操作を実行する場合、行ベースのフォーマットが有利である.
mysqlにログインしてbinlogを表示
最初のbinlogファイルの内容のみ表示
show binlog events;
指定したbinlogファイルの内容を表示
show binlog events in 'mysql-bin.000002';
現在書き込み中のbinlogファイルの表示
show master status\G
binlogファイルリストの取得
show binary logs;
mysqlbinlogツールで表示する
注意:
現在書き込み中のbinlogファイルを表示しないでください
追加しない--forceパラメータによる強制アクセス
binlogフォーマットが行モードの場合は-vvパラメータを追加します
ローカル表示
開始/終了時間ベース
mysqlbinlog --start-datetime='2013-09-10 00:00:00' --stop-datetime='2013-09-10 01:01:01' -d
pos値に基づく
mysqlbinlog --start-postion=107 --stop-position=1000 -d
リモートビュー
開始/終了時間を指定し、結果をローカルt.binlogファイルにリダイレクトする.
mysqlbinlog -u username -p password -hl-db1.dba.beta.cn6.qunar.com -P3306 \
--read-from-remote-server --start-datetime='2013-09-10 23:00:00' --stop-datetime='2013-09-10 23:30:00' mysql-bin.000001 > t.binlog