暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分析、解析MySQL binlog相关脚本

原创 伊伊相印 2022-12-14
799

解析binlog查看,先看下统计中,这个删除在不在这个binlog中,确认确实是在这个binlog日志中

=====================根据binlog统计ddl dml
mysqlbinlog --no-defaults --base64-output=decode-rows -v -v relay.000010 | awk ‘/###/{if($0~/UPDATE|INSERT|DELETE/)count[2""2" "NF]++}END{for(i in count)print i,"\t",count[i]}’|column -t|sort -k3nr

mysqlbinlog --no-defaults --base64-output=decode-rows -v -v binlog.000007 --start-datetime=“2022-08-29 18:50:00” --stop-datetime=“2022-08-29 19:07:00”

======================也可以根据这个解析出sql来确认出具体pos位置

[root@VM-0-9-centos binlog]# mysqlbinlog --start-position=1709 --stop-position=1740 -v mysql-bin.000013
mysqlbinlog -v mysql-bin.000013 > /tmp/sql

=====================将delete_row event 改成write_row event (回滚)
mysqlbinlog --base64-output=DECODE-ROWS -vv mysql-bin.000013 | sed -n ‘/###/p’ | sed ‘s/### //g;s//*./,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;’ |sed -r 's/(@17.),/\1;/g’ | sed ‘s/@[1-9]=//g’ | sed ‘s/@[1-1][0-7]=//g’

#mysqlbinlog --no-defaults --base64-output=decode-rows -v -v binlog.000487 --start-datetime=“2022-08-29 18:50:00” --stop-datetime=“2022-08-29 19:07:00” | awk ‘/###/{if($0~/UPDATE|INSERT|DELETE/)count[2""2" "NF]++}END{for(i in count)print i,"\t",count[i]}’|column -t|sort -k3nr
UPDATE gorm.t_dev_list 79
INSERT gorm.t_online_log 40
INSERT dash.frpslog 10
UPDATE dash.frps 10

查看位置:select @@log_bin_basename;
查看是否开启:select @@log_bin;

二进制内置查看命令:
查看当前有几个日志文件,一般mysql只用最新的日志文件:show binary logs;
查看当前在用的日志文件:show master status;
手动触发滚动日志:flush logs;
查看事件内容:show binlog events in ‘myql-bin.000002’; (当前在用的),使用频率较高

配合linux命令行使用:
mysql -uroot -p123456 -e “show binlog events in ‘mysql-bin.000002’” |grep DROP

还可以对其进行进一步过滤,比如:
grep -B0 -A27 -w ‘DELETE FROM kdb.t_diag_reportinfo’ mydiag.sql >diagreportinfo.sql
B即before,A即after,意思是取目标行前后多少行

临时关闭binlog记录:
set sql_log_bin=0;
source /tmp/bin.sql
set sql_log_bin=1;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论