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!


在做删除操作时,一定要务必小心


你可能感兴趣的:(Mysql,Linux/Unix)