当前位置: 首页 > 科技观察

恢复控制文件后如何避免resetlogs打开数据库?

时间:2023-03-19 18:06:31 科技观察

控制文件恢复后,以resetlogs方式打开数据库,重新设置在线日志的顺序。SYS@practice>selectgroup#,sequence#,archived,status,first_change#,next_change#fromv$log;GROUP#SEQUENCE#ARCSTATUSFIRST_CHANGE#NEXT_CHANGE#--------------------------------------------------------------11NOCURRENT10144152.8147E+1420YESUNUSED0030YESUNUSED00如果没有被resetlog截断,那么当前log的序号应该是7,8,9-----------------------------------------1192570295528422955284955847339558479711514497115198780055987800997957669979571010981711010981101346382101346310134719310134711014415如果恢复完控制文件,不使用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#序列#ARCSTATUSFIRST_CHANGE#NEXT_CHANGE#----------------------------------------------------------------14NOCURRENT10301302.8147E+1422YESINACTIVE1030109103011733YESACTIVE103011710301301、恢复控制文件RMAN>startupforcenomount;OracleinstancestartedTotalSystemGlobalArea580395008bytesFixedSize2255392bytesVariableSize402654688bytesDatabaseBuffers171966464bytesRedoBuffers3518464bytesRMAN>restorecontrolfilefromautobackup;Startingrestoreat06-OCT-14usingtargetdatabasecontrolfileinsteadofrecoverycatalogallocatedchannel:ORA_DISK_1channelORA_DISK_1:SID=19devicetype=DISKrecoveryareadestination:/u01/fast_recovery_aredatabasename(ordatabaseuniquename)usedforsearch:PRACTICEchannelORA_DISK_1:AUTOBACKUP/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkpfoundintherecoveryareachannelORA_DISK_1:lookingforAUTOBACKUPonday:20141006channelORA_DISK_1:restoringcontrolfilefromAUTOBACKUP/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkpchannelORA_DISK_1:controlfilerestorefromAUTOBACKUPcompleteoutputfilename=/u01/oradata/practice/control01.ctloutputfilename=/u01/fast_recovery_area/practice/control02.ctlFinishedrestoreat06-OCT-142、启动数据库到mount状态RMAN>mountdatabase;databasemountedreleasedchannel:ORA_DISK_13、恢复数据库RMAN>recoverdatabase;Startingrecoverat06-OCT-14Startingimplicitcrosscheckbackupat06-OCT-14allocatedchannel:ORA_DISK_1channelORA_DISK_1:SID=20devicetype=DISKCrosschecked6objectsFinishedimplicitcrosscheckbackupat06-OCT-14Startingimplicitcrosscheckcopyat06-OCT-14usingchannelORA_DISK_1Finishedimplicitcrosscheckcopyat06-OCT-14searchingforallfilesintherecoveryareacatalogingfiles...catalogingdoneListofCatalogedFiles=======================文件名:/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arc文件名:/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arcFileName:/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arcFileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251717_b35s05gm_.bkpFileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251162_b35rgt84_.bkpFileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860251158_b35rgpms_.bkpFileName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_860246909_b35n9x55_.bkpusingchannelORA_DISK_1startingmediarecoveryarchivedlogforthread1withsequence1isalreadyondiskasfile/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arcarchivedlogforthread1withsequence2isalreadyondiskasfile/u01/fast_recovery_area/PRACTICE/存档日志/2014_10_06/o1_mf_1_2_b362l34q_.arcarchivedlogforthread1withsequence3isalreadyondiskasfile/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arcarchivedlogforthread1withsequence4isalreadyondiskasfile/u01/oradata/practice/redo01.logarchivedlogfilename=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_1_b362kndr_.arcthread=1sequence=1archivedlogfilename=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_2_b362l34q_.arcthread=1sequence=2archivedlogfilename=/u01/fast_recovery_area/PRACTICE/archivelog/2014_10_06/o1_mf_1_3_b362lc83_.arcthread=1sequence=3archivedlogfilename=/u01/oradata/practice/redo01.logthread=1sequence=4mediarecoverycomplete,elapsedtime:00:00:00Finishedrecoverat06-OCT-144,备份控制文件到traceSYS@practice>selectopen_modefromv$database;OPEN_MODE----------------MOUNTEDSYS@practice>alterdatabasebackupcontrolfiletotrace;SYS@practice>selectvaluefromv$diag_infowherename='DefaultTraceFile';VALUE-------------------------------------------------------------------------/u01/diag/rdbms/practice/practice/trace/practice_ora_1185.trc5,重启实例到nomount状态RMAN>startupforcenomount;OracleinstancestartedTotalSystemGlobalArea580395008bytesFixedSize2255392bytesVariableSize402654688bytesDatabaseBuffers171966464bytesRedoBuffers3518464bytes6、执行重建控制文件命令进入到mount状态vi/home/oracle/create_controlfile.sqlSTARTUPNOMOUNTCREATECONTROLFILEREUSEDATABASE"PRACTICE"NORESETLOGSARCHIVELOGMAXLOGFILES16MAXLOGMEMBERS3MAXDATAFILES100MAXINSTANCES8MAXLOGHISTORY292LOGFILEGROUP1'/u01/oradata/practice/redo01.log'SIZE50MBLOCKSIZE512,GROUP2'/u01/oradata/practice/redo02.log'SIZE50MBLOCKSIZE512,GROUP3'/u01/oradata/practice/redo03.log'SIZE50MBLOCKSIZE512DATAFILE'/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');RECOVERDATABASEALTERSYSTEMARCHIVELOGALL;ALTERDATABASEOPEN;ALTERTABLESPACETEMPADDTEMPFILE'/u01/oradata/practice/temp01.dbfpl'REUSE数据库将启动到打开状态并添加临时表空间文件SYS@practice>@create_controlfile.sqlControlfilecreated.PL/SQLproceduresuccessfullycompleted.Mediarecoverycomplete.Systemaltered.Databasealtered.Tablespacealtered。此时数据库已经处于读写状态,也就是打开状态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#------------------------------------------------------------------14YESINACTIVE1030130105029625NOCURRENT10502962。8147E+1433YESINACTIVE10301171030130查看临时表数据文件也创建了。SYS@practice>selectnamefromv$tempfile;名称------------------------------------------------------------------------------/u01/oradata/practice/temp01.dbf7,重新识别控制文件的备份信息和配置信息此时控制文件中没有之前备份过的控制文件的信息RMAN>listbackupofcontrolfile;usingtargetdatabasecontrolfileinsteadofrecoverycatalogspecificationdoesnotmatchanybackupintherepository从闪回恢复区重新注册备份信息RMAN>catalogdb_recovery_file_dest;从进行过全库备份的地址注册备份信息RMAN>catalogstartwith'/home/oracle/';再次列出备份的控制文件,可以看到已经全部注册成功RMAN>listbackupofcontrolfile;ListofBackupSets====================BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime------------------------------------------------------------1Full9.67MDISK00:00:0006-OCT-14BPKey:1Status:AVAILABLECompressed:NOTag:TAG20141006T175610PieceName:/u01/fast_recovery_area/PRACTICE/autobackup/2014_10_06/o1_mf_s_8602b_filek307:CkpSCN:1051644Ckptime:06-OCT-14BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime------------------------------------------------------------3Full9.33MDISK00:00:0006-OCT-14BPKey:3Status:AVAILABLECompressed:NOTag:TAG20141006T132827PieceName:/u01/fast_recovery_area/PRACTICE/backupset/2014_10_06/o1_mf_ncnnf_TAG20141006T132827_b35n9w39_.bkpControlFileIncluded:CkpSCN:1005439Ckptime:06-OCT-14BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime------------------------------------------------------------7Full9.33MDISK00:00:0006-OCT-14BPKey:7状态:可用压缩:NOTag:TAG20141006T143909PieceName:/home/oracle/full_PRACTICE_9_20141006_1.bakControlFileIncluded:CkpSCN:1013438Ckptime:06-OCT-14