Linux环境下利用句柄恢复Oracle误删除的数据文件

前端之家收集整理的这篇文章主要介绍了Linux环境下利用句柄恢复Oracle误删除的数据文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

 在误删除Oracle的数据文件后,如果未关闭数据库文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件。下面模拟恢复过程。@H_403_1@

(一)环境@H_403_1@

OS版本:redhat 6.6@H_403_1@

@H_403_1@@H_403_1@

数据库版本:Oracle 11.2.0.1@H_403_1@

@H_403_1@@H_403_1@

 @H_403_1@

(二)恢复操作@H_403_1@

首先,模拟误删除数据库的数据文件。这里删除表空间TBS04下面的数据文件tbs04.bdf:@H_403_1@

@H_403_1@@H_403_1@

这个时候绝对不能关闭数据库,一旦关闭数据库,则无法恢复。@H_403_1@

删除后查看DBWN进程,进程号为3032@H_403_1@

@H_403_1@@H_403_1@

进入这个进程的目录,可以看到我们删除文件@H_403_1@

@H_403_1@@H_403_1@

只需要将删除文件复制回去即可@H_403_1@

 

@H_403_1@@H_403_1@

经过确认,文件已经恢复到指定目录@H_403_1@

@H_403_1@@H_403_1@

此时,重启数据库,发现数据文件不一致,需要执行数据文件恢复@H_403_1@

@H_403_1@@H_403_1@

先将13号文件离线@H_403_1@

@H_403_1@@H_403_1@

对其进行恢复操作,通过归档日志进行恢复@H_403_1@

@H_403_1@@H_403_1@

将13号文件联机上线@H_403_1@

@H_403_1@@H_403_1@

改变数据库到open状态@H_403_1@

@H_403_1@@H_403_1@

完成恢复。@H_403_1@

 @H_403_1@

需要注意的是:@H_403_1@

1.数据文件删除后,数据库一定不能被关闭,否则句柄释放了,就无法使用这种方法进行恢复;@H_403_1@

2.也可用lgwr进程来做数据文件、在线重做日志文件@H_403_1@

 @H_403_1@

猜你在找的Oracle相关文章