600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MySQL数据恢复工具binlog2sql

MySQL数据恢复工具binlog2sql

时间:2019-01-26 02:21:59

相关推荐

MySQL数据恢复工具binlog2sql

binlog2sql是一个开源的Python开发的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,以便做数据恢复。

主要功能:

将Binlog解析为SQL语句将Binlog解析为回滚的SQL语句开源地址:

/danfengcao/binlog2sql

支持的版本:

Python 2.7, 3.4+MySQL 5.6, 5.7外部依赖包:

下载源码,打开源码目录中的requirements.txt文件,即可看到依赖的外部包,如下:

PyMySQL==0.7.11wheel==0.29.0mysql-replication==0.13通过执行如下命令,安装外部依赖包。

shell> pip install -r requirements.txt

MySQL Server的配置:

MySQL的配置,必须满足以下要求,才能正常使用binlog2sql工具。开启binlog,binlog格式必须为ROW,且binlog_row_image必须为full。

binlog2sql参数选项:

mysql连接选项,与mysql客户端的选项一致

-h host-P port-u user-p password解析模式

--stop-never 持续解析binlog。可选。默认False,同步至执行命令时最新的binlog位置。-K, --no-primary-key 对INSERT语句去除主键。可选。默认False-B, --flashback 生成回滚SQL,可解析大文件,不受内存限制。可选。默认False。与stop-never或no-primary-key不能同时添加。--back-interval -B模式下,每打印一千行回滚SQL,加一句SLEEP多少秒,如不想加SLEEP,请设为0。可选。默认1.0。解析范围控制

--start-file 起始解析文件,只需文件名,无需全路径 。必须。--start-position/--start-pos 起始解析位置。可选。默认为start-file的起始位置。--stop-file/--end-file 终止解析文件。可选。默认为start-file同一个文件。若解析模式为stop-never,此选项失效。--stop-position/--end-pos 终止解析位置。可选。默认为stop-file的最末位置;若解析模式为stop-never,此选项失效。--start-datetime 起始解析时间,格式\%Y-%m-%d %H:%M:%S。可选。默认不过滤。--stop-datetime 终止解析时间,格式\%Y-%m-%d %H:%M:%S。可选。默认不过滤。对象过滤

-d, --databases 只解析目标db的sql,多个库用空格隔开,如-d db1 db2。可选。默认为空。-t, --tables 只解析目标table的sql,多张表用空格隔开,如-t tbl1 tbl2。可选。默认为空。--only-dml 只解析dml,忽略ddl。可选。默认False。--sql-type 只解析指定类型,支持INSERT, UPDATE, DELETE。多个类型用空格隔开,如--sql-type INSERT DELETE。可选。默认为增删改都解析。用了此参数但没填任何类型,则三者都不解析。使用案例:

案例一:解析binlog,生成正向的sql语句。

在没有加 --only-dml 参数的情况下,会连ddl语句也解析出来,加上 --only-dml 参数,看到只解析dml语句。

案例二:解析binlog,生成回滚的sql语句。

回滚sql是正向sql的反转,insert 100, insert 1, 反转后,变为 delete 1, delete 100。

总结:

binlog2sql 安装使用方便,源码文件不多,也不大,但是功能非常强大。需要注意的是,在使用binlog2sql时,mysql server必须开启,离线模式下不能解析。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。