内容简介: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。可选。默认为增删改都解析。用了此参数但没填任何类型,则三者都不解析。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ProcessOn 数据恢复
- MySQL -- 数据恢复
- MySQL用全库备份数据恢复单表数据
- Redis数据持久化、数据备份、数据的故障恢复
- MySQL数据恢复新姿势
- EVA4400存储虚拟机+数据库数据恢复成功案例
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Parsing Techniques
Dick Grune、Ceriel J.H. Jacobs / Springer / 2010-2-12 / USD 109.00
This second edition of Grune and Jacobs' brilliant work presents new developments and discoveries that have been made in the field. Parsing, also referred to as syntax analysis, has been and continues......一起来看看 《Parsing Techniques》 这本书的介绍吧!