mysql誤刪除InnoDB資料檔案恢復

2021-09-03 09:59:29 字數 1245 閱讀 8029

錯誤重現:

使用rm -f ib*刪除資料檔案和重做日誌檔案。 

這時mysql

程序還存在,

mysql

還能正常使用。

檔案恢復:

1:查詢

mysqld

的程序號。

# netstat -ntpl | grep mysqld

tcp    0  0 0.0.0.0:3306   0.0.0.0:*      listen   12147/mysqld

2:利用程序號查詢如下檔案。

# ll /proc/12147/fd | egrep 'ib_|ibdata'

lrwx------ 1 root root 64 jun 18 09:23 10 -> /mydata/ib_logfile1 (deleted)

lrwx------ 1 root root 64 jun 18 09:23 4 -> /mydata/ibdata1 (deleted)

lrwx------ 1 root root 64 jun 18 09:23 9 -> /mydata/ib_logfile0 (deleted)

3:新增鎖,使資料庫沒有寫入操作。

sql> flush tables with read lock;
4:輸入以下命令,讓髒頁盡快刷入到磁碟。

sql> set global innodb_max_dirty_pages_pct=0;
5:檢視innodb狀態資訊,確認髒頁已經刷入磁碟,比對如下數值:

6:確認完後,就可以進行恢復操作了,把之前記錄的刪除檔案複製到原來目錄下。

# cd /proc/12147/fd 

# cp 10 /mydata/ib_logfile1

# cp 4 /mydata/ibdata1

# cp 9 /mydata/ib_logfile0

7:重啟mysqld服務既可。

mysql誤刪除InnoDB資料檔案恢復

錯誤重現 使用rm f ib 刪除資料檔案和重做日誌檔案。這時mysql 程序還存在,mysql 還能正常使用。檔案恢復 1 查詢 mysqld 的程序號。12 netstat ntpl grep mysqld tcp 0 0 0.0.0.0 3306 0.0.0.0 listen 12147 my...

mysql 誤刪除資料恢復

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

mysql誤刪 mysql資料庫誤刪除後怎麼辦?

在日常運維工作中,對於資料庫的備份是至關重要的!資料庫對於 的重要性使得我們對 mysql 資料庫的管理不容有失!然而是人總難免會犯錯誤,說不定哪天大腦短路了,誤操作把資料庫給刪除了,怎麼辦?下面,就 mysql 資料庫誤刪除後的恢復方案進行說明。一 工作場景 mysql資料庫每晚12 00自動完全...