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点,最好用这个去解析):
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
binlog2sql.tar.gz(1.68MB)
推荐阅读