数据文件物理误误删除整个库目录处理方法

数据文件物理误误删除整个库目录处理方法

 
误删除整个库目录无疑是灾难般的故障、该库下所有对象都将无法访问
## 可以看到连USE命令都无法成功
mysql> use scott;
ERROR 1049 (42000): Unknown database 'scott'
## 通过show databases命令也无法查看


解决方法
对于误删除整个库的数据目录,目前只能通过全备份结合binlog的方式进行恢复,大致恢复步骤如下:
## 通过全备份文件(本例是逻辑全备)还原到临时或测试实例
mysql -P3307 -uroot -proot < all_db_with_data.sql

## 回放binlog(注意从全备文件找到起始位置、并只过滤 scott  库节省时间)
mysqlbinlog -vvv mysql-bin.000007 --start-position=604 --database=scott |mysql -uroot -proot -P3307

## 临时实例执行ftwrl锁
mysql> flush table with read lock;
Query OK, 0 rows affected (0.00 sec)

## 将回放完成的库目录拷贝到故障实例对应目录
cp -rp  /data/mysql_3307/scott .

## 不要忘记最后解锁表 
mysql> unlock tables;

## 故障实例检查,恢复完成
mysql> show databases like 'scott'G
*************************** 1. row ***************************
Database (scott): scott
1 row in set (0.00 sec)

mysql> show tables like 'scott_tab'G
*************************** 1. row ***************************
Tables_in_scott (scott_tab): scott_tab
1 row in set (0.00 sec)

mysql> select * from scott_tabG
 

 
原文地址:https://www.cnblogs.com/l10n/p/13503058.html