聯繫:手機/微信(+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 2024 ALTER DATABASE RECOVER database until cancel Media Recovery Start started logmerger process Sun May 05 00:09:10 2024 SUCCESS: diskgroup FRA was mounted Sun May 05 00:09:10 2024 NOTE: dependency between database orcl and diskgroup resource ora.FRA.dg is established Sun May 05 00:09:14 2024 WARNING! Recovering data file 1 from a fuzzy backup. It might be an online backup taken without entering the begin backup command . Media Recovery failed with error 1122 Slave exiting with ORA-283 exception Errors 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 2024 Recovery Slave PR00 previously exited with exception 283 ORA-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.1167240505 ORA-00280: 更改 18646239951 (用於線程 1) 在序列 #1003886 中 指定日誌: {<RET>=suggested | filename | AUTO | CANCEL} auto ORA-00279: 更改 18646239951 (在 04/25/2024 17:11:40 生成) 對於線程 2 是必需的 ORA-00289: 建議: +FRA/orcl/archivelog/2024_04_25/thread_2_seq_677876.199531.1167239807 ORA-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.1167240099 ORA-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.1167240623 ORA-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.1167241507 ORA-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.1167241507 ORA-15012: ASM file '+FRA/orcl/archivelog/2024_04_25/thread_1_seq_1003887.199320.1167241507' does not exist ORA-10879: error signaled in parallel recovery slave ORA-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 2024 Redo thread 2 internally disabled at seq 1 (CKPT) ARC1: Archiving disabled thread 2 sequence 1 Archived Log entry 2 added for thread 2 sequence 1 ID 0x0 dest 1: ARC3: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE Errors 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 database USER (ospid: 3684): terminating the instance due to error 600 Instance terminated by USER, pid = 3684 ORA-1092 signalled during: alter database open resetlogs... |
通過修改數據庫scn,open數據庫報ORA-600 4137
Sun May 05 00:12:41 2024 replication_dependency_tracking turned off (no async multimaster replication found) LOGSTDBY: Validating controlfile with logical metadata LOGSTDBY: Validation complete Completed: alter database open resetlogs Sun May 05 00:12:56 2024 Trace dumping is performing id =[cdmp_20240505001256] Sun May 05 00:12:56 2024 ORACLE 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,數據庫恢復主要工作完成