binlog2sql数据恢复利器!

栏目: 数据库 · 发布时间: 5年前

内容简介:binlog2sql数据恢复利器!特别适合没有备份,只有binlog的情况下进行数据恢复操作,能生成标准解析SQL,亦可生产对应的逆向回滚SQL,而且比之传统的mysqlbinlog更具可读性,本文侧重点针对Python2.6.6、2.7.6两种环境进行数据恢复,侧重使用流程、使用注意点记录说明,以便日后使用查阅Python version2.6.6、2.7.6

binlog2 sql 数据恢复利器!特别适合没有备份,只有binlog的情况下进行数据恢复操作,能生成标准解析SQL,亦可生产对应的逆向回滚SQL,而且比之传统的mysqlbinlog更具可读性,本文侧重点针对 Python 2.6.6、2.7.6两种环境进行数据恢复,侧重使用流程、使用注意点记录说明,以便日后使用查阅

已验证环境如下

Python version

2.6.6、2.7.6

MySQL version

5.6.16-log

使用前MySQL Server必须设置的参数
[mysqld]
server_id = 2 【不一定是2,但必须设置】
log_bin = /home/data/mysql3306/mysql-bin
max_binlog_size = 1G【可不写,默认1G】
binlog_format = row
binlog_row_image = full【可不写,默认full格式】

使用限制说明

MySQL Server必须开启,离线模式下不能解析

解析速度不如mysqlbinlog

支持DML回滚,不支持DDL回滚

回滚所需最小权限用户

mysql> grant select,replication slave,replication client on *.* to flashbackuser@'127.0.0.1' identified by 'flashback@123';

Python 2.6.6环境配置

[root@backup ~]# cd /usr/local/

[root@backup local]#tar xf binlog2sql.tar.gz

[root@backup local]# cd binlog2sql/binlog2sql_dependencies/

[root@backup binlog2sql_dependencies]# tar xf setuptools-0.6c11.tar.gz

[root@backup binlog2sql_dependencies]# cd setuptools-0.6c11

[root@backup setuptools-0.6c11]# python setup.py install

[root@backup setuptools-0.6c11]# cd ..

[root@backup binlog2sql_dependencies]# tar xf pip-9.0.1.tar.gz

[root@backup binlog2sql_dependencies]# cd pip-9.0.1

[root@backup pip-9.0.1]# python setup.py install

[root@backup pip-9.0.1]# cd ..

[root@backup binlog2sql_dependencies]# pip install *.whl mysql-replication-0.9.tar.gz

[root@backup binlog2sql_dependencies]# pip list

基本用法:

[root@backup ~]# cd /home/data/mysql3306/

必须在数据目录下

[root@backup mysql3306]# python /usr/local/binlog2sql/binlog2sql/binlog2sql.py --help  

用法说明

解析出标准SQL

[root@backup mysql3306]# python /usr/local/binlog2sql/binlog2sql/binlog2sql.py -uflashbackuser -pflashback@123 -h127.0.0.1 -dbailidb -tbl_admin --start-file='mysql-bin.000003' > bl_admin.sql

解析出回滚SQL

[root@backup mysql3306]# python /usr/local/binlog2sql/binlog2sql/binlog2sql.py --flashback -uflashbackuser -pflashback@123 -h127.0.0.1 -dbailidb -tbl_admin --start-file='mysql-bin.000003' > fb_bl_admin.sql

支持解析标准DDL

[root@backup mysql3306]# python /usr/local/binlog2sql/binlog2sql/binlog2sql.py -uflashbackuser -pflashback@123 -h127.0.0.1 -dbailidb -tbl_admin --start-file='mysql-bin.000003' > bl_admin_ddl.sql

不支持回滚DDL

[root@backup mysql3306]# python /usr/local/binlog2sql/binlog2sql/binlog2sql.py --flashback -uflashbackuser -pflashback@123 -h127.0.0.1 -dbailidb -tbl_admin --start-file='mysql-bin.000003' > fb_bl_admin_ddl.sql

Python2.7.6环境配置

[root@backup ~]# cd /usr/local/
[root@backup local]# tar xf Python-2.7.6.tar
[root@backup local]# cd Python-2.7.6/
[root@backup Python-2.7.6]# ./configure --prefix=/usr/local/python2
[root@backup Python-2.7.6]# echo $?
[root@backup Python-2.7.6]# make && make install
[root@backup Python-2.7.6]# cd /usr/local/binlog2sql/binlog2sql_dependencies/
[root@backup binlog2sql_dependencies]# cd setuptools-0.6c11
[root@backup setuptools-0.6c11]# /usr/local/python2/bin/python2 setup.py install
[root@backup setuptools-0.6c11]# cd ../
[root@backup binlog2sql_dependencies]# cd pip-9.0.1
[root@backup pip-9.0.1]# /usr/local/python2/bin/python2 setup.py install
[root@backup pip-9.0.1]# /usr/local/python2/bin/pip --version
[root@backup pip-9.0.1]# cd ../
[root@backup binlog2sql_dependencies]# /usr/local/python2/bin/pip install *.whl mysql-replication-0.9.tar.gz
[root@backup binlog2sql_dependencies]# /usr/local/python2/bin/pip list
[root@backup mysql3306]# vim /root/.bashrc
alias python2='/usr/local/python2/bin/python2'
[root@backup mysql3306]# source /root/.bashrc

基本用法:
解析出标准SQL:
[root@backup mysql3306]#python2 /usr/local/binlog2sql/binlog2sql/binlog2sql.py -uflashbackuser -pflashback@123 -h127.0.0.1 -dbailidb -tbl_admin --start-file='mysql-bin.000003' > bl_admin.sql

解析出回滚SQL:
[root@backup mysql3306]# python2 /usr/local/binlog2sql/binlog2sql/binlog2sql.py --flashback -uflashbackuser -pflashback@123 -h127.0.0.1 -dbailidb -tbl_admin --start-file='mysql-bin.000003' > fb_bl_admin.sql

参数说明

[root@backup ~]# python /usr/local/binlog2sql/binlog2sql/binlog2sql.py --help

usage: binlog2sql.py

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。可选。默认为增删改都解析。用了此参数但没填任何类型,则三者都不解析。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创新

创新

理查德·福斯特 / 王宇锋 / 中信出版社 / 2008-10 / 32.00元

《创新:进攻者的优势》内容简介:为什么一流企业突然间将它们的市场拱手让与新的竞争者?要避免这样的命运,需要无情地抛弃那些过去使它们成功的技能和产品,那么究竟哪些企业能够做到这一点呢?企业如果总是墨守成规、因循守旧,那么长期下去,必然无法以市场的速度及规模进行革新或创造价值。这样的企业会像得州仪器、施乐等市场领先者一样,被一些资源较少、技术较差、市场支配力较弱的竞争对手超越,而这些所谓进攻者的优势,......一起来看看 《创新》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试