perl 分析mysql binlog
生活随笔
收集整理的这篇文章主要介绍了
perl 分析mysql binlog
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
binlog 日志格式:use `zjzc`/*!*/;
SET TIMESTAMP=1476326343/*!*/;
UPDATE `ProductAccess` pa SET pa.accessType =1 WHERE pa.productSn IN(SET TIMESTAMP=1476326807/*!*/;
update ClientActionTrack setSET TIMESTAMP=1476327571/*!*/;
UPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'[root@zjzc01 binlog]# cat binlog.pl
if ( $#ARGV < 2 ){ print "please input file update|insert table_namee!\n"; exit(-1); };
my $a=$ARGV[0];
my $b=$ARGV[1];
my $c=$ARGV[2];
local $/='/*!*/;';
open (A,"<","$a");while (<A>){if (( $_ =~/$b\s+$c/i ) or ($_ =~/$b\s+`$c`/i) ){print $_;};};[root@zjzc01 binlog]# perl binlog.pl aa UPDATE scan
[root@zjzc01 binlog]#
[root@zjzc01 binlog]# /*!*/;[root@zjzc01 binlog]# cat binlog.pl
if ( $#ARGV < 2 ){ print "please input file update|insert table_namee!\n"; exit(-1); };
my $a=$ARGV[0];
my $b=$ARGV[1];
my $c=$ARGV[2];
local $/='/*!*/;';
open (A,"<","$a");while (<A>){if (( $_ =~/$b\s+$c/i ) or ($_ =~/$b\s+`$c`/i) or ($_ =~/$b\s+`zjzc`.`$c`/i) ){print $_;};};[root@zjzc01 binlog]# perl binlog.pl aa UPDATE scanUPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'[root@zjzc01 binlog]# perl binlog.pl aa UPDATE scanUPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'
/*!*/;
UPDATE `scan` SET `sn`='300' WHERE `sn`='200'[root@zjzc01 binlog]# perl binlog.pl aa UPDATE scanUPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'
/*!*/;
UPDATE `scan` SET `sn`='300' WHERE `sn`='200'
/*!*/;
UPDATE scan SET `sn`='400' WHERE `sn`='300'/*!*/;[root@zjzc01 binlog]# cat binlog.pl
if ( $#ARGV < 2 ){ print "please input file update|insert table_namee!\n"; exit(-1); };
my $a=$ARGV[0];
my $b=$ARGV[1];
my $c=$ARGV[2];
local $/='/*!*/;';
open (A,"<","$a");while (<A>){if (( $_ =~/$b\s+$c/i ) or ($_ =~/$b\s+`$c`/i) or ($_ =~/$b\s+`zjzc`.`$c`/i) or ($_ =~/$b\s+zjzc.$c/i )){print $_;};};[root@zjzc01 binlog]# perl binlog.pl aa UPDATE scanUPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'
/*!*/;
UPDATE `scan` SET `sn`='300' WHERE `sn`='200'
/*!*/;
UPDATE scan SET `sn`='400' WHERE `sn`='300'
/*!*/;
UPDATE zjzc.scan SET `sn`='500' WHERE `sn`='400'/*!*/;[root@zjzc01 binlog]# cat binlog.pl
if ( $#ARGV < 2 ){ print "please input file update|insert table_namee!\n"; exit(-1); };
my $a=$ARGV[0];
my $b=$ARGV[1];
my $c=$ARGV[2];
local $/='/*!*/;';
open (A,"<","$a");while (<A>){if (( $_ =~/$b\s+$c/i ) or ($_ =~/$b\s+`$c`/i) or ($_ =~/$b\s+`zjzc`.`$c`/i) or ($_ =~/$b\s+zjzc.$c/i )){print $_;};};
转载于:https://www.cnblogs.com/zhaoyangjian724/p/6199125.html
总结
以上是生活随笔为你收集整理的perl 分析mysql binlog的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: query判断值是否为空,针对前台提交数
- 下一篇: 误操作数据库的一个方法