使用開源工具binlog2sql恢復MySQL誤刪數據

MySQL使用binlog恢復誤刪數據

參考原文: https://github.com/danfengcao/binlog2sql.gitpython

  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. 查詢數據是否恢復
相關文章
相關標籤/搜索