在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件。下面模拟恢复过程。
(一)环境
OS版本:redhat 6.6
数据库版本:Oracle 11.2.0.1
(二)恢复操作
首先,模拟误删除数据库的数据文件。这里删除表空间TBS04下面的数据文件tbs04.bdf:
删除后查看DBWN进程,进程号为3032
经过确认,文件已经恢复到指定目录
先将13号文件离线
对其进行恢复操作,通过归档日志进行恢复
将13号文件联机上线
改变数据库到open状态
完成恢复。
需要注意的是:
1.数据文件被删除后,数据库一定不能被关闭,否则句柄释放了,就无法使用这种方法进行恢复;