联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
数据库启动报ORA-00316,ORA-00312,无法正常启动
通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)分析,确认是当前redo损坏
对于这种情况,只能是屏蔽一致性,强制拉库,结果在拉库过程中报ORA-600 2662错误
这个错误相对比较简单,修改下相关scn即可,数据库open成功
SQL> startup nomount pfile='/tmp/pfile' ORACLE instance started. Total System Global Area 3.8482E+10 bytes Fixed Size 2261368 bytes Variable Size 8187285128 bytes Database Buffers 3.0199E+10 bytes Redo Buffers 93593600 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "xifenfei" NORESETLOGS NOARCHIVELOG 2 MAXLOGFILES 50 3 MAXLOGMEMBERS 5 4 MAXDATAFILES 1000 5 MAXINSTANCES 8 6 MAXLOGHISTORY 2920 7 LOGFILE 8 group 1 '/u01/oracle/app/oradata/xifenfei/redo01.log' size 500M, 9 group 2 '/u01/oracle/app/oradata/xifenfei/redo02.log' size 500M, 10 group 6 '/u01/oracle/app/oradata/xifenfei/redo06.log' size 500M, 11 group 4 '/u01/oracle/app/oradata/xifenfei/redo04.log' size 500M, 12 group 5 '/u01/oracle/app/oradata/xifenfei/redo05.log' size 500M, 13 group 3 '/u01/oracle/app/oradata/xifenfei/redo03.log' size 500M 14 DATAFILE 15 '/u01/oracle/app/oradata/xifenfei/system01.dbf', 16 '/u01/oracle/app/oradata/xifenfei/sysaux01.dbf', 17 '/u01/oracle/app/oradata/xifenfei/undotbs01.dbf', 18 '/u01/oracle/app/oradata/xifenfei/users01.dbf', ……………… 49 '/u01/oracle/app/oradata/xifenfei/XIFENFEI.dbf' 50 CHARACTER SET ZHS16GBK ; Control file created. SQL> recover database; ORA-10877: error signaled in parallel recovery slave SQL> recover database until cancel; ORA-00279: change 2290050101 generated at 09/30/2022 23:18:22 needed for thread 1 ORA-00289: suggestion : /u02/oracle/arch/1_2_1116803861.dbf ORA-00280: change 2290050101 for thread 1 is in sequence #2 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/u01/oracle/app/oradata/xifenfei/system01.dbf' ORA-01112: media recovery not started SQL> alter database open resetlogs; Database altered.
检查数据库字典一致性
SQL> @1 HCheck Version 07MAY18 on 01-OCT-2022 01:07:48 ---------------------------------------------- Catalog Version 11.2.0.4.0 (1102000400) db_name: XIFENFEI Catalog Fixed Procedure Name Version Vs Release Timestamp Result ------------------------------ ... ---------- -- ---------- -------------- ------ .- LobNotInObj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- MissingOIDOnObjCol ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- SourceNotInObj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- OversizedFiles ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- PoorDefaultStorage ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- PoorStorage ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- TabPartCountMismatch ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- OrphanedTabComPart ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- MissingSum$ ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- MissingDir$ ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- DuplicateDataobj ... 1102000400 <= *All Rel* 10/01 01:07:48 PASS .- ObjSynMissing ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- ObjSeqMissing ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedUndo ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndex ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndexPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndexSubPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedTable ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedTablePartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedTableSubPartition ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- MissingPartCol ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedSeg$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- OrphanedIndPartObj# ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- DuplicateBlockUse ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- FetUet ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- Uet0Check ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- SeglessUET ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadInd$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadTab$ ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadIcolDepCnt ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- ObjIndDobj ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- TrgAfterUpgrade ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- ObjType0 ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadOwner ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- StmtAuditOnCommit ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadPublicObjects ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadSegFreelist ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- BadDepends ... 1102000400 <= *All Rel* 10/01 01:07:49 PASS .- CheckDual ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- ObjectNames ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- BadCboHiLo ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- ChkIotTs ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- NoSegmentIndex ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- BadNextObject ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- DroppedROTS ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- FilBlkZero ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- DbmsSchemaCopy ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- OrphanedObjError ... 1102000400 > 1102000000 10/01 01:07:50 PASS .- ObjNotLob ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- MaxControlfSeq ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- SegNotInDeferredStg ... 1102000400 > 1102000000 10/01 01:07:50 PASS .- SystemNotRfile1 ... 1102000400 > 902000000 10/01 01:07:50 PASS .- DictOwnNonDefaultSYSTEM ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- OrphanTrigger ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS .- ObjNotTrigger ... 1102000400 <= *All Rel* 10/01 01:07:50 PASS --------------------------------------- 01-OCT-2022 01:07:50 Elapsed: 2 secs --------------------------------------- Found 0 potential problem(s) and 0 warning(s) PL/SQL procedure successfully completed. Statement processed.
数据库字典本身没有大问题,但是为了排除潜在风险,建议逻辑迁移到新库