使用开源工具binlog2sql恢复MySQL误删数据

原创
2019/12/05 16:28
阅读数 658

MySQL使用binlog恢复误删数据

参考原文: https://github.com/danfengcao/binlog2sql.git

  1. 确认数据库开启了binlog 注意: 如果没有开启binlog,也没有预先生成回滚SQL,那真的无法快速回滚了。对存放重要业务数据的MySQL,强烈建议开启binlog
# vim /etc/my.cnf

[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
  1. 安装大众点评开源工具binlog2sql。binlog2sql是一款简单易用的binlog解析工具,其中一个功能就是生成回滚SQL,需要python环境
# git clone https://github.com/danfengcao/binlog2sql.git
# cd binlog2sql
# pip install -r requirements.txt
  1. 登录mysql,查看目前的binlog文件
> SHOW BINARY LOGS;
> SHOW MASTER LOGS;
> SHOW MASTER STATUS;
  1. 最新的binlog文件是mysql-bin.00000x,并定位误操作SQL的binlog位置 注意:-h数据库服务器地址, -P端口, -u用户名, -p'密码', -d数据库, -t表, --start-file='binlog日志文件'
# python binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uroot -p'123456' -dc_test -tc_dict_info --start-file='mysql-bin.000004'
  1. 生成回滚sql,检查并执行sql
# python binlog2sql/binlog2sql.py -h127.0.0.1 -P3306 -uroot -p'123456' -dc_test -tc_dict_info --start-file='mysql-bin.000004' --start-pos=16723 --end-pos=17734 -B
  1. 查询数据是否恢复
展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部