ITPub博客

首页 > 数据库 > Oracle > Oracle手工完全恢复案例(归档模式)

Oracle手工完全恢复案例(归档模式)

Oracle 作者:哇哈哈789 时间:2014-07-31 10:50:00 0 删除 编辑
在做案例之前,先查看v$archived_log记录,发现太多了,考虑清除这些归档然后生成一些再做实验。


在操作系统上删除这些归档并不会在控制文件中有记录,所以查看v$archived_log时还会有记录,考虑用RMAN来删除:


RMAN>delete archivelogall;


之后再查看v$archived_log发现还有记录。google了下怎么解决,有三种方法。


相关阅读: Oracle手工恢复案例(非归档模式) http://www.linuxidc.com/Linux/2013-06/86718.htm


1.重建控制文件,例如 backup controlfileto trace后重建该控制文件,但要求有数据文件均存在。


2.设置control_file_record_keep_time=0 然后等待记录被重用,这样很不好。


3.使用包来清理,注意不要在生产库上这么做


PROCEDURE resetCfileSection(record_typeINbinary_integer);


– This procedure attemptsto reset the circular controlfilesection.


– Input parameters:


– record_type


– The circular record type whose controlfile sectionisto be reset.


execute sys.dbms_backup_restore.resetCfileSection(11); ==> 清理v$ARCHIVED_LOG对应的记录


execute sys.dbms_backup_restore.resetCfileSection(28); ==>清理v$rman_status对应的记录


手工完全恢复


案例一:media fuilure 丢失数据文件,其他文件不丢失


模拟环境:


首先做一个冷备。


查看当前日志状态


select group#,sequence#,archived,statusfrom v$log;


GROUP# SEQUENCE# ARC STATUS


----------------------- ----------------


1 4 NO CURRENT


2 2 YES INACTIVE


3 3 YES INACTIVE


查看归档日志


select name,sequence#from v$archived_log;


NAME SEQUENCE#


------------------------------------------------------------------------------------------


/u01/fast_recovery_area/MIKE/archivelog/2013_06_28/o1_mf_1_1_8wtf58m4_.arc 1


/u01/fast_recovery_area/MIKE/archivelog/2013_06_28/o1_mf_1_2_8wtf59cw_.arc 2


/u01/fast_recovery_area/MIKE/archivelog/2013_06_28/o1_mf_1_3_8wtf5ctc_.arc 3


此时我用test用户创建一个t1表,使用的是TEST表空间


create table t1(id number);


写一个循环插入数据


begin


for i in 1..10


loop


insert into t1 values(i);


end loop;


end;


/


提交


commit;


查看下当前日志


select group#,sequence#,archived,statusfrom v$log;


GROUP# SEQUENCE# ARC STATUS


----------------------- ----------------


1 4 NO CURRENT


2 2 YES INACTIVE


3 3 YES INACTIVE


刚才的操作变化记录在了sequence为4的日志中。下面切一组日志,让其归档。


alter system switch logfile;


现在模拟介质失败


rm -f /u01/oradata/mike/*.dbf


关库


shutdown abort


起库


startup


出错


ORA-01157: cannot identify/lockdatafile1- see DBWR tracefile


ORA-01110:datafile1:'/u01/oradata/mike/system01.dbf'


查看所需要恢复的文件


select file#,error from v$recover_file;


FILE# ERROR


---------------------------------------------------------------------------


1 FILENOTFOUND


2 FILENOTFOUND


3 FILENOTFOUND


4 FILENOTFOUND


5 FILENOTFOUND


8 FILENOTFOUND


现在开始还原


cp /backup/cold/mike/*.dbf/u01/oradata/mike/


再查看控制文件头部和数据文件头部SCN的差异


sys@MIKE>selectfile#,checkpoint_change#from v$datafile;


FILE# CHECKPOINT_CHANGE#


---------- ------------------


1 1553122


2 1553122


3 1553122


4 1553122


5 1553122


8 1553122


sys@MIKE>selectfile#,checkpoint_change#from v$datafile_header;


FILE# CHECKPOINT_CHANGE#


---------- ------------------


1 1552527


2 1552527


3 1552527


4 1552527


5 1552527


8 1552527

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29627852/viewspace-1242937/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-04-25

  • 博文量
    12
  • 访问量
    21190