mysql-删库不跑路之lsof

问题描述:今天一个同学过来求救,idb文件被误删除了,想要找dba恢复

解决思路:实例在没有重启的状况下可以根据lsof恢复,这也是linux常用文件恢复的方法

恢复步骤(网络上有较多解决思路,这里简单记录,便于下次使用):

1、ps -ef|grep mysqld 找到mysql对应的进程号,这个时候访问出问题最好给mysql加个全局的锁(flush tables with read lock;)

2、lsof|grep deleted|grep *.ibd 看下这个文件还有木有

3、找到这个对应的文件拷贝回去 

根据进程号找到目录

cd  /proc/123940/fd   (ps:123940就是ps -ef|grep mysqld 查到的进程号)

这个时候执行ll会出现文件号指向不同的文件,找到想要恢复的文件cp回去

cp /proc/123940/fd/70 > /data/mysql/data/xxx.ibd

4、修改文件权限到mysql,重启即可

你可能感兴趣的:(mysql,Linux)