binlog2sql安装及恢复数据(个人整理)原创
金蝶云社区-薛孟洋
薛孟洋
45人赞赏了该文章 976次浏览 未经作者许可,禁止转载编辑于2020年11月26日 11:03:56

https://github.com/danfengcao/binlog2sql


安装教程:

上传binlog2sql.tar.gz到/home

# cd /home

# tar xvf binlog2sql.tar.gz

# cd binlog2sql/binlog2sql_dependencies/

# tar xvf setuptools-0.6c11.tar.gz

# cd setuptools-0.6c11

# python setup.py install

# cd ..

# tar xvf pip-9.0.1.tar.gz

# cd pip-9.0.1

# python setup.py install

# cd ..

# pip install *.whl mysql-replication-0.9.tar.gz

 

恢复数据:

数据删除后及时刷新binlog

mysql> flush logs;

mysql> show binlog events in 'mysql_bin_39999.000062';

 

binlog中test_sys库中t_sec_user_u表执行过那些SQL语句:

python /home/binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -unext -pKingdee@2020 -d test_sys -t t_sec_user_u --start-file mysql_bin_39999.000062 > /tmp/1.sql

 

--start-file 起始解析文件。必须。

--stop-file/--end-file 末尾解析文件。可选。默认为start-file同一个文件

 

python /home/binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -unext -pKingdee@2020 -d test_sys -t t_sec_user_u --start-file=mysql_bin_39999.000062  --start-datetime="2020-11-26 9:00:00" --stop-datetime="2020-11-26 10:00:00"  > /tmp/2.sql

 

--start-datetime 从哪个时间点的binlog开始解析,格式必须为datetime,如'2016-11-11 11:11:11'。可选。默认不过滤。

--stop-datetime 到哪个时间点的binlog停止解析,格式必须为datetime,如'2016-11-11 11:11:11'。可选。默认不过滤。

 

python /home/binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -unext -pKingdee@2020 -d test_sys -t t_sec_user_u --start-file=mysql_bin_39999.000062 --start-position=133130 --stop-position=1683306 > /tmp/3.sql

 

--start-position/--start-pos start-file的起始解析位置。可选。默认为start-file的起始位置。

--stop-position/--end-pos stop-file的末尾解析位置。可选。默认为stop-file的最末位置。

 

说明:

/home/binlog2sql/binlog2sql/binlog2sql.py:路径

test_sys:数据库名

t_sec_user_u:表名

mysql_bin_39999.000062 binlog日志名(路径:/kingdee/kingdee/mysqldata/logs/bin_log)

/tmp/1.sql   生成的sql文件

 

test_sys库中t_sec_user_u表生成反向SQL(上一步中生成的1.sql文件中有pos点,最好用这个去解析):

1.png

python /home/binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -unext -pKingdee@2020 -d test_sys -t t_sec_user_u --start-file mysql_bin_39999.000062 -B  > /tmp/restore1.sql

 

python /home/binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.1 -unext -pKingdee@2020 -d test_sys -t t_sec_user_u --start-file mysql_bin_39999.000062 --start-position=77278 --stop-position=77566 -B > /tmp/restore1.sql

 

恢复数据:

mysql  -unext -pKingdee@2020 -h127.0.0.1 </tmp/restore1.sql

2.png


赞 45