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


在做案例之前,先查看v$archived_log记录,发现太多了,考虑清除这些归档然后生成一些再做实验。

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

RMAN>delete archivelogall;

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

相关阅读: Oracle手工恢复案例(非归档模式)

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

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

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

  • 1
  • 2
  • 3
  • 下一页

相关内容