mysql 誤刪除資料恢復(binlog)

2021-09-17 02:59:49 字數 1531 閱讀 1631

恢復前提 :mysql有開啟日誌記錄

恢復概覽:1、通過mysql二進位制日誌檔案生成sql,整個庫恢復需把刪除的sql語句去掉,執行sql

2、部分恢復同樣生成sql檔案,過濾sql檔案,複製sql後去掉不需要的sql語句,執行sql

生成sql檔案方法:

通過mysqlbinlog工具 一般在/mysql/bin下面

執行命令: 

mysqlbinlog --no-defaults --base64-output=decode-rows -v --start-datetime="2018-12-14 10:30:00" --stop-datetime="2019-04-08 10:50:00" --database=資料庫名/data/mysql/data/mysql-bin.000004 > a1.sql

ps: start-datetime~stop-datetime 是誤操作時間段

ps: /data/mysql/data/mysql-bin.000018 日誌檔案

然後執行

find / -name mysql-bin.000018找到路徑mysql-bin開頭的可能有多個

cat a1.sql 後可看到操作的sql

拿到end_log_pos2442766

以它為結束點 執行:

mysqlbinlog --no-defaults -d 資料庫名 --stop-position=2442766 /data/mysql/data/mysql-bin.000018>>back.sql

得到所有執行過的sql 語句

全量恢復執行:去掉back.sql 不需要執行的sql

篩選恢復: 

more back.sql |grep -e 'insert into `phonetag`|update phonetag|delete from phonetag' -a5   

ps:引數a5向下獲取5行b5向上獲取5行

複製篩選後的sql執行。

總結:

新建資料表能不採用自增id就不採用,恢復資料時執行過的sql大多根據id來過濾,日誌新增語句不會帶上id。

mysql 誤刪除資料恢復

第一步 保證mysql已經開啟binlog 值必須為on 開啟binlog方法 第二步 檢視binlog存放日誌檔案目錄 第三步 檢視binlog row image 值必須為full 修改 binlog row image 第四步 檢視binlog模式 必須為行級模式row 修改模式方法 第五步 ...

恢復誤刪除資料

用log explorer試一下!下面是對該軟體的介紹 解壓縮密碼 www.heibai.net 序號產生器產生的是註冊碼,是兩個 用解壓縮密碼解開後,壓縮包裡也有乙個序號產生器的 開啟log explorer file attach log file 選擇伺服器和登陸方式 connect 選擇資料...

誤刪除資料恢復(flashback)

flashback query flashback drop flashback table用法總結 1.flashback query 閃回到15分鐘前 select from orders as of timestamp systimestamp interval 15 minute where...