Mysql Binlog疾速遍歷搜刮記載及binlog數據檢查的辦法。本站提示廣大學習愛好者:(Mysql Binlog疾速遍歷搜刮記載及binlog數據檢查的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql Binlog疾速遍歷搜刮記載及binlog數據檢查的辦法正文
目的,開辟人員說有個數據莫明其妙添加了,然則不曉得是從哪裡添加的,並且運用功效外面不該該添加如許的數據,為了查清晰起源,所以我就預備去binlog外面找了,然則binlog有好幾個月的數,我如許一個個mysqlbinlog下去,也不是方法,所以想到預備用劇本輪回來操作。
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