mysql資料delete後的資料恢復
阿新 • • 發佈:2020-07-17
誤刪除了一個訂單,訂單號為:D200711008, 現根據binlog對該訂單資料進行恢復。
1. 檢視binlog日誌, 取最新的一個mysql-bin.000635
show binary logs;
2. 匯出刪除日期範圍內的binlog日誌
mysqlbinlog -uhairdonkey -padmin123 -P3306 -h192.168.1.234 --start-datetime="2020-07-17 11:50:00" --stop-datetime="2020-07-17 12:10:00" --read-from-remote-server -vv mysql-bin.000635 > row.sql
3. 通過vim命令查詢到訂單號的文字內容
把該文字複製下來,存放到檔案 a.txt
4. 使用命令把binlog指令碼轉換為insert語句
cat a.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT I NTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@[1-9]=//g' | sed ' s/@[1-1][0-7]=//g'
轉換後再進行編輯,去除一些轉換沒處理號的欄位, 執行insert語句即可。
完畢~~