您的位置:首页 > 其它

归档模式下无备份数据文件损坏的完全恢复-2

2013-10-07 11:30 387 查看
数据文件在无备份的情况下恢复
如果控制文件,联机重做日志文件都没有损坏,而只是数据文件损坏,并且没有备份哟,但是归档日志必须存在,则可以完全恢复。

启动实验

create tablespace test2
datafile 'D:\oracle\product\10.2.0\oradata\TEST\test2.dbf' size 50m;

create user muwei identified by muwei default tablespace test2;
grant dba to muwei;
conn muwei/muwei

create table muwei(id number, name varchar2(20));

begin
for i in 1..100 loop
insert into muwei values(i,'小牟');
end loop;
end;
/

commit;
现在我没有对该数据文件进行任何形式的备份,现在我关闭数据库,模拟删掉的数据文件
alter system flush buffer_cache; --清掉buffer cache中的数据

shutdown immediate;
然后我去把test2.dbf这个数据文件给它删了,我手动删哈,我直接点。
startup;
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 8: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEST2.DBF'

现在演示如何恢复没有备份的数据文件
alter database datafile 8 offline;
alter database create datafile 'D:\oracle\product\10.2.0\oradata\TEST\test2.dbf'; --这儿特别注意哈,需要重新创建表

空间
alter database datafile 8 online;
recover datafile 8;
完成介质恢复。
alter database open;
conn muwei/muwei;
select count(*) from muwei;
COUNT(*)
---------
100
大功告成

显然这儿没有备份的介质恢复的过程就是将归档日志或者当前重做日志中的数据应用到数据文件中去,切记成功恢复的关键是启动了

数据库的归档模式,并且自该表空间创建后,所有插入的数据被重做日志或者归档日志保护,最终通过recover指令完全恢复。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐