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


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

查看所有标签

猜你喜欢:

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

黑客秘笈

黑客秘笈

[美]彼得·基姆 / 徐文博、成明遥 / 人民邮电出版社 / 2015-7-1 / 45.00

所谓的渗透测试,就是借助各种漏洞扫描工具,通过模拟黑客的攻击方法,来对网络安全进行评估。 本书采用大量真实案例和集邮帮助的建议讲解了在渗透测试期间会面临的一些障碍,以及相应的解决方法。本书共分为10章,其内容涵盖了本书所涉的攻击机器/工具的安装配置,网络扫描,漏洞利用,人工地查找和搜索Web应用程序的漏洞,攻陷系统后如何获取更重要的信息,社工方面的技巧,物理访问攻击,规避杀毒软件的方法,破解......一起来看看 《黑客秘笈》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具