mysql的一次誤rm -rf 刪除恢復

今天研發報測試環境數據庫空間不夠,發現被mysql binlog佔滿了,於是對mysql的binlog進行刪除,由於操作太快把當前正在用的binlog給刪除了,刪除後,立即保護現場,沒有對數據庫做任何操作,於是開始了恢復。

首先通過

lsof |grep delete查看被刪除,但還未釋放的文件,通過這裏可以看到進程的id和被刪除的文件

mysqld     2124     mysql    5u      REG              253,0         0     917509 /tmp/ibn6E1Uu (deleted)
mysqld     2124     mysql    6u      REG              253,0         0     917510 /tmp/ib1ckty4 (deleted)
mysqld     2124     mysql    7u      REG              253,0         0     917511 /tmp/ibwDAVbE (deleted)
mysqld     2124     mysql    8u      REG              253,0         0     917512 /tmp/ibACGrMN (deleted)
mysqld     2124     mysql   33u      REG              253,0         0     917513 /tmp/ibGmQgQn (deleted)
mysqld     2124     mysql   37w      REG              253,0  20668242     263015 /var/lib/mysql/mysql-bin.000042 (deleted)

到proc目錄進程裏面查找該文件

ll /proc/2124/fd|grep 0042


[root@etl mysql]# ll /proc/2124/fd |grep 42
l-wx------. 1 root root 64 8月  25 13:35 37 -> /var/lib/mysql/mysql-bin.000042 (deleted)
lrwx------. 1 root root 64 8月  25 13:35 42 -> /var/lib/mysql/mysql/db.MYD

將文件拷貝回去

cp /proc/2124/fd/37 /var/lib/mysql/mysql-bin.000042

更改文件權限

chown -R mysql:mysql /var/lib/mysql/mysql-bin.000042

重啓數據庫

[root@etl mysql]# /etc/init.d/mysql restart
Shutting down MySQL.... SUCCESS!

Starting MySQL.. SUCCESS!


在做刪除操作時,一定要務必小心


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