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 set
- SET 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 scan
- UPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'
- [root@zjzc01 binlog]# perl binlog.pl aa UPDATE scan
- UPDATE `zjzc`.`scan` SET `sn`='200' WHERE `sn`='100'
- /*!*/;
- UPDATE `scan` SET `sn`='300' WHERE `sn`='200'
- [root@zjzc01 binlog]# perl binlog.pl aa UPDATE scan
- UPDATE `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 scan
- UPDATE `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 $_;
- };
- };
perl 分析mysql binlog的更多相关文章
- 使用python 模仿mybinlog 命令 二进制分析mysql binlog
出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...
- python写的分析mysql binlog日志工具
因为数据库增删改突然暴增,需要查询是那些表的操作特别频繁,写了一个用来分析bin-log的小工具,找出增删改查的表,并按照操作次数降序排列,以下是代码: 1 2 3 4 5 6 7 8 9 10 11 ...
- 腾讯工程师带你深入解析 MySQL binlog
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 本文由 腾讯云数据库内核团队 发布在云+社区 1.概述 binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的red ...
- Mysql Binlog 三种格式介绍及分析
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...
- 基于binlog来分析mysql的行记录修改情况(python脚本分析)
最近写完mysql flashback,突然发现还有有这种使用场景:有些情况下,可能会统计在某个时间段内,MySQL修改了多少数据量?发生了多少事务?主要是哪些表格发生变动?变动的数量是怎 ...
- Mysql Binlog三种格式介绍及分析【转】
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...
- MySQL Binlog三种格式介绍及分析
Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化,减 ...
- MySQL Binlog Mixed模式记录成Row格式
背景: 一个简单的主从结构,主的binlog format是Mixed模式,在执行一条简单的导入语句时,通过mysqlbinlog导出发现记录的Binlog全部变成了Row的格式(明明设置的是Mixe ...
- Mysql Binlog日志详解
一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在 ...
随机推荐
- Windows下Postgre SQL数据库通过Slony-I 实现数据库双机同步备份
一. 我们要实现的环境是windows xp.windows2003上安装Postgre SQL数据库,实现目的是两台数据库服务器进行数据库同步,即数据库同步更新.删除.插入等对数据库的操作. 二. ...
- linux和windows同步数据 cwrsync client to rsync server
linux和windows同步数据,rsync server cwrsync client linux server一般系统都自带rsync,如果没有就挂载系统盘自己安装一下,安装挺简单的不用我再多 ...
- 给iOS开发者的GCD用户手册
Grand Central Dispatch,或者GCD,是一个极其强大的工具.它给你一些底层的组件,像队列和信号量,让你可以通过一些有趣的方式来获得有用的多线程效果.可惜的是,这个基于C的API是一 ...
- Java基础知识强化之集合框架笔记06:Collection集合存储自定义对象并遍历的案例
1.练习:用集合存储5个学生对象,并把学生对象进行遍历. 分析: (1)创建学生类(2)创建集合对象(3)创建学生对象(4)把学生添加到集合(5)把集合转成数组(6)遍历数组 2. 代码示例: Stu ...
- yii phpexcel <转>
原文详情参见 这里 1.下载phpexcel,将压缩包中的classes复制到protected/extensions下并修改为PHPExcel. 2.修改YII配置文件config/main.php ...
- POJ 2653 Pick-up sticks (判断线段相交)
Pick-up sticks Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 10330 Accepted: 3833 D ...
- (转)dedecms [field:array runphp='yes']标签使用技巧
field支持用array获取任意字段的值:(支持标记:文章内容模板的 {dede:field name=’array’ /}.arclist.arclistsg.loop.sql 标签) 我们平时常 ...
- myeclipse 'no default proposals' when use 'alt + /'.
solution: Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced in th ...
- UIImageView添加边框和阴影
- (void)viewDidLoad { [super viewDidLoad]; //添加显示 UIImage *image = [UIImage imageNamed:@"0_wang ...
- ASP.NET菜鸟之路之Response小例子
背景 我是一个ASP.NET菜鸟,暂时开始学习ASP.NET,在此记录下我个人敲的代码,没有多少参考价值,请看到的盆友们为我点个赞支持我一下,多谢了. Response.Write Redirect ...