MySQL文件后_MySQL误删除文件后,如何恢复
MySQL在運行中,如果誤刪除數據文件,只有服務進程沒有退出,那么就有辦法將其恢復。
首先介紹Linux下lsof:他可以顯示打開的文件和網絡連接。
其次/proc目錄包含了反映內核和進程樹的各種文件。/proc/504目錄包含的是PID是504的進程信息。通過ps命令查看進程的進程ID。兩者結合可以將刪除的文件恢復。
1、表文件:
[rdb@localhost yzs]$ ll
total 120
-rw-rw---- 1 rdb rdb ?8584 Sep ?2 19:43 t2.frm
-rw-rw---- 1 rdb rdb 98304 Oct ?6 20:45 t2.ibd
2、將t2.ibd文件刪除
[rdb@localhost yzs]$ rm -rf t2.ibd
3、通過lsof命令查看打開t2.ibd的進程號,可以看到是38,并且有(deleted)標記,表示已刪除
[root@localhost fd]# lsof | grep t2.ibd
mysqld ? ? 5004 ? ? ? rdb ? 38uW ? ? REG ? ? ? ?8,2 ? ?98304 ? ? 654903 /home/rdb/data/yzs/t2.ibd (deleted)
4、恢復,38是設備描述符fd
[root@localhost fd]# cp 38 /home/rdb/data/yzs/t2.ibd
5、文件已恢復
mysql> select *from t2;
+----+------+
| id | id2 ?|
+----+------+
| ?1 | ? ?1 |
| ?2 | ? ?2 |
| ?3 | ? ?3 |
| ?4 | ? ?4 |
| ?6 | ? ?6 |
| ?7 | ? ?7 |
+----+------+
6 rows in set (0.00 sec)
注:
如果不知道進程ID,可以通過下面命令查看被刪除的信息,然后找到對應刪除的文件,執行第4步:
[root@localhost fd]# lsof -nP |grep '(deleted)'
mysqld ? ? 5004 ? ? ? rdb ? 38uW ? ? REG ? ? ? ?8,2 ? ?98304 ? ? 654903 /home/rdb/data/yzs/t2.ibd (deleted)
總結
以上是生活随笔為你收集整理的MySQL文件后_MySQL误删除文件后,如何恢复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript中带有示例的Math
- 下一篇: kafka偏移量保存到mysql里_【队