linux lsof恢復誤刪除的文件

早上起來被告知昨晚誤刪除了3個mysql的文件,只能恢復了

這是刪除前的文件信息:

wKioL1axa3SyzCq8AAATZMF9_Wc943.png

首先lsof查看進程:

wKioL1axa8Th9xHzAABLZD0uUb4052.png

這裏PID都是一樣的,下面進入proc裏ls -l查看:

# cd /proc/8784/fd/

wKiom1axbDeiUsmAAABEF3Dg4rA544.png

這裏可以看到ibdata1刪除的信息了

接着直接cp複製

#cp 4 /tmp/ibdata1.bak

其餘的2個同理恢復,下面是恢復後的文件:

wKiom1axbJTQQ7cFAAAWgYnvrew121.png

+++++++++++++++++++++++++++++++++++++++++++++

雖然恢復了,但是事情絕對沒有這麼簡單!!!

因爲,在innodb的buffer pool中,有許多dirty page(就是內存中的數據已經被修改,但是沒有寫回文件中),如果直接把文件複製回去,輕則數據丟失,重則ibdata1文件損壞。

我們必須保證所有buffer pool中的數據修改都保存到了硬盤文件上面,然後在恢復文件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章