您好,登錄后才能下訂單哦!
下文主要給大家帶來使用mysqlbinlog_flashback工具的詳細步驟,希望這些內容能夠帶給大家實際用處,這也是我編輯使用mysqlbinlog_flashback工具的詳細步驟這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。
一、下載安裝
# wget https://github.com/58daojia-dba/mysqlbinlog_flashback/archive/master.zip
工具相關使用參數:
[root@ops-db-test01 mysqlbinlog_flashback-master]# python mysqlbinlog_back.py --help ===log will also write to .//mysqlbinlog_flashback.log=== Usage: python mysqlbinlog_back.py [options] sample1:python mysqlbinlog_back.py --host="127.0.0.1" --username="root" --port=43306 --password="" --schema=test --table="test5" sample2:python mysqlbinlog_back.py --host="127.0.0.1" --username="root" --port=43306 --password="" --schema=test --table="test5,test6" --binlog_end_time="2016-11-05 11:27:13" --binlog_start_file_name="mysql-bin.000024" --binlog_start_file_position=4 --binlog_start_time="2016-11-04 11:27:13" --skip_delete --skip_insert --add_schema_name sample3:python mysqlbinlog_back.py --host="127.0.0.1" --username="root" --port=43306 --password="" --schema=test --table="test5,test6" --binlog_start_file_name="mysql-bin.000022" Options: -h, --help show this help message and exit -H HOST, --host=HOST mandatory,mysql hostname -P PORT, --port=PORT mysql port,default 3306 -u USERNAME, --username=USERNAME mandatory,username -p PASSWORD, --password=PASSWORD password -s SCHEMA, --schema=SCHEMA mandatory,mysql schema -t TABLES, --tables=TABLES mandatory,mysql tables,suport multiple tables,use comma as separator -N BINLOG_END_TIME, --binlog_end_time=BINLOG_END_TIME binlog end time,format yyyy-mm-dd hh34:mi:ss,default is current time -S BINLOG_START_FILE_NAME, --binlog_start_file_name=BINLOG_START_FILE_NAME binlog start file name,default is current logfile of db -L BINLOG_START_FILE_POSITION, --binlog_start_file_position=BINLOG_START_FILE_POSITION binlog start file name -E BINLOG_START_TIME, --binlog_start_time=BINLOG_START_TIME binlog start time,format yyyy-mm-dd hh34:mi:ss -l OUTPUT_FILE_PATH, --output_file_path=OUTPUT_FILE_PATH file path that sql generated,,default ./log -I, --skip_insert skip insert(WriteRowsEvent) event -U, --skip_update skip update(UpdateRowsEvent) event -D, --skip_delete skip delete(DeleteRowsEvent) event -a, --add_schema_name add schema name for flashback sql -v, --version version info
二、模擬誤操作情況
1、批量刪除操作
delete未加where條件,全表刪除,此時表還有寫入操作。
# python mysqlbinlog_back.py --host="localhost" --username="" --port=3306 --password="" --schema=cy --table="obd_wave" --binlog_start_file_name="mysqlbinlog.000002" --binlog_start_time="2017-08-02 20:10:00"
log目錄下生成三個文件
# ll -sh 13M -rw-r--r-- 1 root root 13M Aug 2 20:38 flashback_cy_20170802_203747.sql //反向sql 4.0K -rw-r--r-- 1 root root 2.6K Aug 2 20:38 save_data_create_table_cy_20170802_203747.sql 29M -rw-r--r-- 1 root root 29M Aug 2 20:38 save_data_dml_cy_20170802_203747.sql
找到刪除開始和結束的位置。
執行命令
# python mysqlbinlog_back.py --host="localhost" --username="" --port=3306 --password="" --schema=cy --table="obd_wave" --binlog_start_file_name="mysqlbinlog.000002" --binlog_start_time="2017-08-02 20:10:00" --binlog_start_file_position=9664085
手動刪除,誤操作之后的反向sql的內容。
--缺點:只能指定開始的位置,不能指定結束的位置及時間。
對于以上關于使用mysqlbinlog_flashback工具的詳細步驟,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。