mysql delete表后數據恢復


誤操作刪除了一整個表 tb_user_info, 恢復步驟如下:

1. 查找最新的binlog文件名:

show master  status;

從阿里雲備份日志下載mysql-bin.001612文件(或者使用mysqlbinlog命令遠程導出)

 

2. 把binlog轉換成sql文件

mysqlbinlog --start-datetime="2021-12-28 10:30:00" --stop-datetime="2021-12-28 10:40:00" --no-defaults -v mysql-bin.001612  > /tmp/binlog_2021-12-28.sql

 

3. 使用命令把binlog delete格式的腳本轉換為標准的insert

cat binlog_2021-12-28.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > 2021-12-28.sql

 

4. vim編輯2021-12-28.sql.sql文件, 定位關鍵字“tb_user_info”的最開始的位置(:set nu顯示行號)的行數和最結尾(?tb_user_info倒查)的行數

 

 

使用grep命令截取文件指定行內容

 sed -n '491900,2511455p' 2021-12-28.sql > result.sql

 

5. 執行result.sql文件, 完成insert操作, 恢復數據。

 

===========完===========

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM