1. 程式人生 > >【MySQL】mysqlbinlog_flashback工具使用

【MySQL】mysqlbinlog_flashback工具使用

sql class 壓縮 恢復 test 參數 mas 查看 說明

簡介:

mysqlbinlog_back.py 是在線讀取row格式的mysqld的binlog,然後生成反向的sql語句的工具。
一般用於數據恢復的目的。 所謂反向的sql語句就是如果是insert,則反向的sql為delete。
如果delete,反向的sql是insert,如果是update, 反向的sql還是update,但是update的值是原來的值。

這個項目需要安裝依賴

yum install python-pip
pip install pymysql

官方地址:https://github.com/58daojia-dba/mysqlbinlog_flashback

使用限制:

  • 1.mysql binlog必須是row格式的。
  • 2.反向生成的表必須有主鍵。
  • 3.日誌必須在主庫存在
  • 4.反向生成的mysql數據類型列出在下面。沒有列出的類型沒有經過嚴格的測試,也許有問題
  • 5.支持的類型
    允許解析的字段類型,不在裏面的會報錯
    ALLOW_TYPE={ "varchar":True, "char":True, "datetime":True, "date":True, "time":True, "timestamp":True, "bigint":True, "mediumint":True, "smallint":True, "tinyint":True, "int":True, "smallint":True, "decimal":True, "float":True, "double":True, "longtext":True, "tinytext":True, "text":True, "mediumtext":True }

工具安裝:
可在GitHub上下載安裝包
直接解壓縮即可 解壓後進入目錄如下:
技術分享圖片

工具使用:

# 查看下參數使用說明
python mysqlbinlog_back.py --help  
# 回滾某個表
python mysqlbinlog_back.py --host="192.168.1.60" --port=3306 --username="root" --password="yourpassword" --schema=test --tables="test_tb" -S "mysql-bin.000009"

回滾完成後會在mysqlbinlog_flashback-master/log目錄下生成回滾語句

之後執行以下語句在數據庫中進行回滾

mysql -uroot -pyourpassword --default-character-set=utf8mb4 test < flashback_test_20170912_170610.sql

【MySQL】mysqlbinlog_flashback工具使用