从MySQL binlog解析出数据变化的原始SQL。根据不同选项,你可以获取分析之后的数据,帮助定位数据修改的时间和变化值。
- 无需连接日志的数据库,仅仅下载日志文件就能够初级分析。
- 根据不同的数据库名称和数据表名字来分析剥离你所需要的数据。
- 从binlog解析出可读的数据,帮助定位,定点分析数据。
正常维护。 需要本机或者服务器安装MYSQL。
- 已测试环境
- Python 2.7, 3.4+
- MySQL 5.6, 5.7
解析出标准SQL
shell> python queryanalyse.py -td=数据库名字 -tt=数据表名字 -path=下载日志文件目录 -f=分析日志名称 -of=输出文件名
shell> python queryanalyse.py -td=bd -tt=table -path=/mysqllog/ -f=mysql-bin.000268 -of=268.txt
输出:
*******************************************
************ 初始化数据 *****************
****** 开始处理binlog日志信息 ***********
******** 开始分析并输出文件 **************
*********** 清理无用文件 ****************
*********** 数据分析完成 ****************
*******************************************
******************************************************************************
**** 总条数为 18070
**** 输出路径 /mysqllog/268.txt
******************************************************************************
日志文件结果:
start time:2018-08-02 10:28:08
Database.Table: db.table
### INSERT INTO `db`.`table`
### SET
### @1=278493
### @2=10448
### @3=10449
对象过滤
usage: python [script's path] [option]
ALL options need to assign:
-path : 读取日志文件和写入日志文件的路径 必须有
-f : 读取文件的名字 binlog 日志文件 必须有
-of : 写入文件 满足条件分析后的数据 如果没有默认名字 读取文件名.log
-td : 数据库的名称
-tt : 表的名称
- 纯Python开发,安装与使用都很简单
- 代码容易改造,可以支持更多个性化解析
欢迎提问题提需求,欢迎pull requests!