第一步:保證mysql已經開啟binlog(值必須為on)
開啟binlog方法第二步:檢視binlog存放日誌檔案目錄
第三步:檢視binlog_row_image(值必須為full)
修改 binlog_row_image第四步:檢視binlog模式(必須為行級模式row)
修改模式方法第五步:安裝myflash(只支援mysql5.6和5.7)
git clone
cd myflash/
yum install glib2*
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogparseglib.c -o binary/flashback
第六步:測試資料
刪除id為4的資料第七步:生成回滾資料檔案
cd myflash/binary
./flashback --start-datetime='2021-01-05 12:40:00' --stop-datetime='2021-01-05 12:41:00' --sqltypes='delete' --binlogfilenames=/www/server/data/mysql-bin.000005
第八步:恢復到資料庫
/www/server/mysql/bin/mysqlbinlog binlog_output_base.flashback |mysql -uroot -p
具體命令
1.databasenames
指定需要回滾的資料庫名。多個資料庫可以用「,」隔開。如果不指定該引數,相當於指定了所有資料庫。
2.tablenames
指定需要回滾的表名。多個表可以用「,」隔開。如果不指定該引數,相當於指定了所有表。
3.start-position
指定回滾開始的位置。如不指定,從檔案的開始處回滾。請指定正確的有效的位置,否則無法回滾
4.stop-position
指定回滾結束的位置。如不指定,回滾到檔案結尾。請指定正確的有效的位置,否則無法回滾
5.start-datetime
指定回滾的開始時間。注意格式必須是 %y-%m-%d %h:%m:%s。 如不指定,則不限定時間
6.stop-datetime
指定回滾的結束時間。注意格式必須是 %y-%m-%d %h:%m:%s。 如不指定,則不限定時間
7.sqltypes
指定需要回滾的sql型別。目前支援的過濾型別是insert, update ,delete。多個型別可以用「,」隔開。
8.maxsplitsize
一旦指定該引數,對檔案進行固定尺寸的分割(單位為m),過濾條件有效,但不進行回滾操作。該引數主要用來將大的binlog檔案切割,防止單次應用的binlog尺寸過大,對線上造成壓力
9.binlogfilenames
指定需要回滾的binlog檔案,目前只支援單個檔案,後續會增加多個檔案支援
10.outbinlogfilenamebase
指定輸出的binlog檔案字首,如不指定,則預設為binlog_output_base.flashback
11.loglevel
僅供開發者使用,預設級別為error級別。在生產環境中不要修改這個級別,否則輸出過多
12.include-gtids
指定需要回滾的gtid,支援gtid的單個和範圍兩種形式。
13.exclude-gtids
指定不需要回滾的gtid,用法同include-gtids
參考文章
恢復誤刪除資料
用log explorer試一下!下面是對該軟體的介紹 解壓縮密碼 www.heibai.net 序號產生器產生的是註冊碼,是兩個 用解壓縮密碼解開後,壓縮包裡也有乙個序號產生器的 開啟log explorer file attach log file 選擇伺服器和登陸方式 connect 選擇資料...
mysql 誤刪除資料恢復(binlog)
恢復前提 mysql有開啟日誌記錄 恢復概覽 1 通過mysql二進位制日誌檔案生成sql,整個庫恢復需把刪除的sql語句去掉,執行sql 2 部分恢復同樣生成sql檔案,過濾sql檔案,複製sql後去掉不需要的sql語句,執行sql 生成sql檔案方法 通過mysqlbinlog工具 一般在 my...
誤刪除資料恢復(flashback)
flashback query flashback drop flashback table用法總結 1.flashback query 閃回到15分鐘前 select from orders as of timestamp systimestamp interval 15 minute where...