联系:手机/微信(+86 17813235971) QQ(107644445)
标题:存储故障后oracle报—ORA-01122/ORA-01207故障处理
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
客户存储异常,通过硬件恢复解决存储故障之后,oracle数据库无法正常启动(存储cache丢失),尝试recover数据库报ORA-00283 ORA-01122 ORA-01110 ORA-01207错误
以前处理过比较类似的存储故障case:
又一起存储故障导致ORA-00333 ORA-00312恢复
存储故障,强制拉库报ORA-600 kcbzib_kcrsds_1处理
SQL> recover database until cancel;ORA-00283: 恢复会话因错误而取消ORA-01122: 数据库文件 536 验证失败ORA-01110: 数据文件 536: '+DATA/orcl/dt_img_dat511.ora'ORA-01207: 文件比控制文件更新 - 旧的控制文件 |
Sun May 05 00:09:03 2024ALTER DATABASE RECOVER database until cancel Media Recovery Start started logmerger processSun May 05 00:09:10 2024SUCCESS: diskgroup FRA was mountedSun May 05 00:09:10 2024NOTE: dependency between database orcl and diskgroup resource ora.FRA.dg is establishedSun May 05 00:09:14 2024WARNING! Recovering data file 1 from a fuzzy backup. It might be an onlinebackup taken without entering the begin backup command.Media Recovery failed with error 1122Slave exiting with ORA-283 exceptionErrors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_pr00_8048.trc:ORA-00283: 恢复会话因错误而取消ORA-01122: 数据库文件 536 验证失败ORA-01110: 数据文件 536: '+DATA/orcl/dt_img_dat511.ora'ORA-01207: 文件比控制文件更新 - 旧的控制文件Sun May 05 00:09:16 2024Recovery Slave PR00 previously exited with exception 283ORA-283 signalled during: ALTER DATABASE RECOVER database until cancel ... |
using backup controlfile进行恢复
SQL> recover database using backup controlfile until cancel;ORA-00279: 更改 18646239951 (在 04/25/2024 17:14:50 生成) 对于线程 1 是必需的ORA-00289: 建议:+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003886.199435.1167240505ORA-00280: 更改 18646239951 (用于线程 1) 在序列 #1003886 中指定日志: {<RET>=suggested | filename | AUTO | CANCEL}autoORA-00279: 更改 18646239951 (在 04/25/2024 17:11:40 生成) 对于线程 2 是必需的ORA-00289: 建议:+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677876.199531.1167239807ORA-00280: 更改 18646239951 (用于线程 2) 在序列 #677876 中ORA-00279: 更改 18646255791 (在 04/25/2024 17:16:46 生成) 对于线程 2 是必需的ORA-00289: 建议:+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677877.199472.1167240099ORA-00280: 更改 18646255791 (用于线程 2) 在序列 #677877 中ORA-00278: 此恢复不再需要日志文件'+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677876.199531.1167239807'ORA-00279: 更改 18646295647 (在 04/25/2024 17:21:38 生成) 对于线程 2 是必需的ORA-00289: 建议:+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677878.199379.1167240623ORA-00280: 更改 18646295647 (用于线程 2) 在序列 #677878 中ORA-00278: 此恢复不再需要日志文件'+FRA/orcl/archivelog/2024_04_25/thread_2_seq_677877.199472.1167240099'ORA-00279: 更改 18646331784 (在 04/25/2024 17:28:25 生成) 对于线程 1 是必需的ORA-00289: 建议:+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507ORA-00280: 更改 18646331784 (用于线程 1) 在序列 #1003887 中ORA-00278: 此恢复不再需要日志文件'+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003886.199435.1167240505'ORA-00308: 无法打开归档日志'+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507'ORA-17503: ksfdopn: 2 未能打开文件+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507ORA-15012: ASM file'+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507' does not existORA-10879: error signaled in parallel recovery slaveORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误ORA-01194: 文件 1 需要更多的恢复来保持一致性ORA-01110: 数据文件 1: '+DATA/orcl/system01.dbf' |
通过分析,确认由于cache丢失导致thread_1_seq_1003887这个日志丢失(而且redo已经被覆盖)

数据库无法通过正常recover的思路解决.通过屏蔽一致性,强制打开数据库,alert日志报ORA-600 2662错误
Sat May 04 17:23:00 2024Redo thread 2 internally disabled at seq 1 (CKPT)ARC1: Archiving disabled thread 2 sequence 1Archived Log entry 2 added for thread 2 sequence 1 ID 0x0 dest 1:ARC3: Archival startedARC0: STARTING ARCH PROCESSES COMPLETEErrors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_ora_3684.trc (incident=47066):ORA-00600: ??????, ??: [2662], [4], [1466533588], [4], [1466584862], [12583040], [], [], [], [], [], []Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_ora_3684.trc:ORA-00600: ??????, ??: [2662], [4], [1466533588], [4], [1466584862], [12583040], [], [], [], [], [], []Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_ora_3684.trc:ORA-00600: ??????, ??: [2662], [4], [1466533588], [4], [1466584862], [12583040], [], [], [], [], [], []Error 600 happened during db open, shutting down databaseUSER (ospid: 3684): terminating the instance due to error 600Instance terminated by USER, pid = 3684ORA-1092 signalled during: alter database open resetlogs... |
通过修改数据库scn,open数据库报ORA-600 4137
Sun May 05 00:12:41 2024replication_dependency_tracking turned off (no async multimaster replication found)LOGSTDBY: Validating controlfile with logical metadataLOGSTDBY: Validation completeCompleted: alter database open resetlogsSun May 05 00:12:56 2024Trace dumping is performing id=[cdmp_20240505001256]Sun May 05 00:12:56 2024ORACLE Instance orcl1 (pid = 22) - Error 600 encountered while recovering transaction (28, 21).Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_smon_5896.trc:ORA-00600: ??????, ??: [4137], [28.21.42965783], [0], [0], [], [], [], [], [], [], [], [] |
这个错误比较明显,由于28号回滚段异常导致,对异常回滚段进行处理,重建undo,数据库恢复主要工作完成
浙公网安备 33010602011771号