恢复控制文件后,数据库使用resetlogs方式打开,在线日志的序列被重置。
SYS@practice>selectgroup#,sequence#,archived,status,first_change#,next_change#fromv$log; GROUP#SEQUENCE#ARCSTATUSFIRST_CHANGE#NEXT_CHANGE# ---------------------------------------------------------------- 11NOCURRENT10144152.8147E+14 20YESUNUSED00 30YESUNUSED00
如果没有被resetlog截断的话当前日志的序列号应该是7,8,9
SYS@practice>selectrecid,sequence#,first_change#,next_change#fromv$log_history; RECIDSEQUENCE#FIRST_CHANGE#NEXT_CHANGE# --------------------------------------------- 11925702955284 22955284955847 33955847971151 44971151987800 55987800997957 669979571010981 7110109811013463 8210134631013471 9310134711014415
如果恢复完控制文件,不使用resetlogs是打不开数据库的。
我们可以采取手工创建控制文件的方法打开数据库,保持联机日志的sequence#连续。下面的实验来演示具体操作过程。
在实验之前先手工切换3次日志,使得在线日志的序列号产生变化。在恢复结束后作为参考。
SYS@practice>altersystemarchivelogcurrent; SYS@practice>altersystemarchivelogcurrent; SYS@practice>altersystemarchivelogcurrent;
切换后当前连接日志状态如下
SYS@practice>selectgroup#,sequence#,archived,status,first_change#,next_change#fromv$log; GROUP#SEQUENCE#ARCSTATUSFIRST_CHANGE#NEXT_CHANGE# ---------------------------------------------------------------- 14NOCURRENT10301302.8147E+14 22YESINACTIVE10301091030117 33YESACTIVE10301171030130
1、恢复控制文件
RMAN>startupforcenomount; Oracleinstancestarted TotalSystemGlobalArea580395008bytes FixedSize2255392bytes VariableSize402654688bytes DatabaseBuffers171966464bytes RedoBuffers3518464bytes RMAN>restorecontrolfilefromautobackup; Startingrestoreat06-OCT-14 usingtargetdatabasecontrolfileinsteadofrecoverycatalog allocatedchannel:ORA_DISK_1 channelORA_DISK_1:SID=19devicetype=DISK recoveryareadestination:/u01/fast_recovery_area databasename(ordatabaseuniquename)usedforsearch:PRACTICE channelORA_DISK_1:AUTOBACKUP/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkpfoundintherecoveryarea channelORA_DISK_1:lookingforAUTOBACKUPonday:20141006 channelORA_DISK_1:restoringcontrolfilefromAUTOBACKUP/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkp channelORA_DISK_1:controlfilerestorefromAUTOBACKUPcomplete outputfilename=/u01/oradata/practice/control01.ctl outputfilename=/u01/fast_recovery_area/practice/control02.ctl Finishedrestoreat06-OCT-14
2、启动数据库到mount状态
RMAN>mountdatabase; databasemounted releasedchannel:ORA_DISK_1
3、恢复数据库
RMAN>recoverdatabase; Startingrecoverat06-OCT-14 Startingimplicitcrosscheckbackupat06-OCT-14 allocatedchannel:ORA_DISK_1 channelORA_DISK_1:SID=20devicetype=DISK Crosschecked6objects Finishedimplicitcrosscheckbackupat06-OCT-14 Startingimplicitcrosscheckcopyat06-OCT-14 usingchannelORA_DISK_1 Finishedimplicitcrosscheckcopyat06-OCT-14 searchingforallfilesintherecoveryarea catalogingfiles... catalogingdone ListofCatalogedFiles ======================= FileName:/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arc FileName:/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arc FileName:/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arc FileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkp FileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251162_b35rgt84_.bkp FileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251158_b35rgpms_.bkp FileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860246909_b35n9x55_.bkp usingchannelORA_DISK_1 startingmediarecovery archivedlogforthread1withsequence1isalreadyondiskasfile/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arc archivedlogforthread1withsequence2isalreadyondiskasfile/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arc archivedlogforthread1withsequence3isalreadyondiskasfile/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arc archivedlogforthread1withsequence4isalreadyondiskasfile/u01/oradata/practice/redo01.log archivedlogfilename=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arcthread=1sequence=1 archivedlogfilename=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arcthread=1sequence=2 archivedlogfilename=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arcthread=1sequence=3 archivedlogfilename=/u01/oradata/practice/redo01.logthread=1sequence=4 mediarecoverycomplete,elapsedtime:00:00:00 Finishedrecoverat06-OCT-14
4,备份控制文件到trace
SYS@practice>selectopen_modefromv$database; OPEN_MODE -------------------- MOUNTED SYS@practice>alterdatabasebackupcontrolfiletotrace; SYS@practice>selectvaluefromv$diag_infowherename='DefaultTraceFile'; VALUE -------------------------------------------------------------------------------- /u01/diag/rdbms/practice/practice/trace/practice_ora_1185.trc
5、重启实例到nomount状态
RMAN>startupforcenomount; Oracleinstancestarted TotalSystemGlobalArea580395008bytes FixedSize2255392bytes VariableSize402654688bytes DatabaseBuffers171966464bytes RedoBuffers3518464bytes
6、执行重建控制文件命令进入到mount状态
vi/home/oracle/create_controlfile.sql STARTUPNOMOUNT CREATECONTROLFILEREUSEDATABASE"PRACTICE"NORESETLOGSARCHIVELOG MAXLOGFILES16 MAXLOGMEMBERS3 MAXDATAFILES100 MAXINSTANCES8 MAXLOGHISTORY292 LOGFILE GROUP1'/u01/oradata/practice/redo01.log'SIZE50MBLOCKSIZE512, GROUP2'/u01/oradata/practice/redo02.log'SIZE50MBLOCKSIZE512, GROUP3'/u01/oradata/practice/redo03.log'SIZE50MBLOCKSIZE512 DATAFILE '/u01/oradata/practice/system01.dbf', '/u01/oradata/practice/sysaux01.dbf', '/u01/oradata/practice/undotbs01.dbf', '/u01/oradata/practice/users01.dbf', '/u01/oradata/practice/example01.dbf' CHARACTERSETAL32UTF8 ; VARIABLERECNONUMBER; EXECUTE:RECNO:=SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILEAUTOBACKUP','ON'); RECOVERDATABASE ALTERSYSTEMARCHIVELOGALL; ALTERDATABASEOPEN; ALTERTABLESPACETEMPADDTEMPFILE'/u01/oradata/practice/temp01.dbf'REUSE;
在sqlplus下执行创建控制文件脚本,数据库会启动到open状态并添加临时表空间文件。
SYS@practice>@create_controlfile.sql Controlfilecreated. PL/SQLproceduresuccessfullycompleted. Mediarecoverycomplete. Systemaltered. Databasealtered. Tablespacealtered.
此时数据库已经处于read write状态也就是open状态了
SYS@practice>selectopen_modefromv$database; OPEN_MODE -------------------- READWRITE
查看当前日志的序列号,没有被重置。
SYS@practice>selectgroup#,sequence#,archived,status,first_change#,next_change#fromv$log; GROUP#SEQUENCE#ARCSTATUSFIRST_CHANGE#NEXT_CHANGE# ---------------------------------------------------------------- 14YESINACTIVE10301301050296 25NOCURRENT10502962.8147E+14 33YESINACTIVE10301171030130
查看临时表数据文件也被创建出来了。
SYS@practice>selectnamefromv$tempfile; NAME -------------------------------------------------------------------------------- /u01/oradata/practice/temp01.dbf
7,重新识别控制文件的备份信息和配置信息
此时的控制文件中没有之前备份过控制文件的信息
RMAN>listbackupofcontrolfile; usingtargetdatabasecontrolfileinsteadofrecoverycatalog specificationdoesnotmatchanybackupintherepository
从闪回恢复区重新注册备份信息
RMAN>catalogdb_recovery_file_dest;
从执行过数据库全备份的地址注册备份信息
RMAN>catalogstartwith'/home/oracle/';
再次列出备份过的控制文件,可以看到已经全部注册成功
RMAN>listbackupofcontrolfile; ListofBackupSets =================== BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime ------------------------------------------------------------- 1Full9.67MDISK00:00:0006-OCT-14 BPKey:1Status:AVAILABLECompressed:NOTag:TAG20141006T175610 PieceName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860262970_b363zt2x_.bkp ControlFileIncluded:CkpSCN:1051644Ckptime:06-OCT-14 BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime ------------------------------------------------------------- 3Full9.33MDISK00:00:0006-OCT-14 BPKey:3Status:AVAILABLECompressed:NOTag:TAG20141006T132827 PieceName:/u01/fast_recovery_area/PRACTICE/backupset/2014_10_06/o1_mf_ncnnf_TAG20141006T132827_b35n9w39_.bkp ControlFileIncluded:CkpSCN:1005439Ckptime:06-OCT-14 BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime ------------------------------------------------------------- 7Full9.33MDISK00:00:0006-OCT-14 BPKey:7Status:AVAILABLECompressed:NOTag:TAG20141006T143909 PieceName:/home/oracle/full_PRACTICE_9_20141006_1.bak ControlFileIncluded:CkpSCN:1013438Ckptime:06-OCT-14
相关文章
标签:Oracle