第一步:全备datafile,controlfile,spfile/pfile

第二步:恢复日志。(原冷备的日志没有用,千万不要用!)

SQL>selectmemberfromv$logfile;/ora/app/oracle/oradata/orcl/redo03.log/ora/app/oracle/oradata/orcl/redo02.log/ora/app/oracle/oradata/orcl/redo01.logSQL>archiveloglist;DatabaselogmodeNoArchiveModeAutomaticarchivalDisabledArchivedestinationUSE_DB_RECOVERY_FILE_DESTOldestonlinelogsequence10Currentlogsequence12SQL>horm$ORACLE_BASE/oradata/orcl/redo*.log--模拟日志文件丢失。SQL>hols$ORACLE_BASE/oradata/orcl/redo*.logls:cannotaccess/ora/app/oracle/oradata/orcl/redo*.log:NosuchfileordirectorySQL>startupforceORACLEinstancestarted.TotalSystemGlobalArea1536602112bytesFixedSize2213616bytesVariableSize956303632bytesDatabaseBuffers570425344bytesRedoBuffers7659520bytesDatabasemounted.ORA-00313:openfailedformembersofloggroup3ofthread1ORA-00312:onlinelog3thread1:'/ora/app/oracle/oradata/orcl/redo03.log'ORA-27037:unabletoobtainfilestatusLinux-x86_64Error:2:NosuchfileordirectoryAdditionalinformation:3SQL>alterdatabaseopenresetlogs;--第一步alterdatabaseopenresetlogs*ERRORatline1:ORA-01139:RESETLOGSoptiononlyvalidafteranincompletedatabaserecoverySQL>recoverdatabaseusingbackupcontrolfile;--第二步ORA-00279:change1384991generatedat05/22/201620:05:08neededforthread1ORA-00289:suggestion:/ora/app/oracle/flash_recovery_area/ORCL/archivelog/2016_05_22/o1_mf_1_12_%u_.arcORA-00280:change1384991forthread1isinsequence#12Specifylog:{<RET>=suggested|filename|AUTO|CANCEL}--注意:非归档,什么也不做,直接回车。ORA-00308:cannotopenarchivedlog'/ora/app/oracle/flash_recovery_area/ORCL/archivelog/2016_05_22/o1_mf_1_12_%u_.arc'ORA-27037:unabletoobtainfilestatusLinux-x86_64Error:2:NosuchfileordirectoryAdditionalinformation:3SQL>alterdatabaseopenresetlogs;--第三步alterdatabaseopenresetlogs*ERRORatline1:ORA-01113:file1needsmediarecoveryORA-01110:datafile1:'/ora/app/oracle/oradata/orcl/system01.dbf'SQL>altersystemset"_allow_resetlogs_corruption"=truescope=spfile;Systemaltered.--第四步,使用隐藏参数,不做一致性检查启动数据库。SQL>startupforcemount;--第五步,重启到MOUNT状态下。ORACLEinstancestarted.TotalSystemGlobalArea1536602112bytesFixedSize2213616bytesVariableSize956303632bytesDatabaseBuffers570425344bytesRedoBuffers7659520bytesDatabasemounted.SQL>alterdatabaseopen;--第六步alterdatabaseopen*ERRORatline1:ORA-01589:mustuseRESETLOGSorNORESETLOGSoptionfordatabaseopenSQL>alterdatabaseopenresetlogs;--第七步,一般情况下会正常恢复。ERROR:ORA-03114:notconnectedtoORACLEalterdatabaseopenresetlogs*ERRORatline1:ORA-01092:ORACLEinstanceterminated.DisconnectionforcedORA-00600:internalerrorcode,arguments:[2662],[0],[1384999],[0],[1385016],[4194432],[],[],[],[],[],[]ProcessID:28621SessionID:125Serialnumber:5--由于隐藏参数导致的600错误。SQL>exitDisconnectedfromOracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProductionWiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions[oracle@test~]$sqlplus/assysdbaSQL*Plus:Release11.2.0.1.0ProductiononSunMay2222:56:212016Copyright(c)1982,2009,Oracle.Allrightsreserved.Connectedtoanidleinstance.SQL>selectstatusfromv$instance;--检查状态,数据库关闭了。selectstatusfromv$instance*ERRORatline1:ORA-01034:ORACLEnotavailableProcessID:0SessionID:0Serialnumber:0SQL>startupmount;--再次启动ORACLEinstancestarted.TotalSystemGlobalArea1536602112bytesFixedSize2213616bytesVariableSize956303632bytesDatabaseBuffers570425344bytesRedoBuffers7659520bytesDatabasemounted.SQL>alterdatabaseopen;Databasealtered.--启动成功。SQL>hols$ORACLE_BASE/oradata/orcl/red*--日志文件自动生成/ora/app/oracle/oradata/orcl/redo01.log/ora/app/oracle/oradata/orcl/redo02.log/ora/app/oracle/oradata/orcl/redo03.logSQL>altersystemreset"_allow_resetlogs_corruption"scope=spfilesid='*';Systemaltered.--第八步,还原隐藏参数值。SQL>startupforce--第九步,重启数据库,使参数生效。