共計 2375 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章主要介紹“怎么恢復 Oracle RAC for aix 存儲雙控鎖盤導致 ASM 控制文件損壞”,在日常操作中,相信很多人在怎么恢復 Oracle RAC for aix 存儲雙控鎖盤導致 ASM 控制文件損壞問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么恢復 Oracle RAC for aix 存儲雙控鎖盤導致 ASM 控制文件損壞”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
故障場景:AIX IBM 存儲更換存儲控制器電源模塊導致存儲雙控同時掉電,存儲雙控恢復供電后發生鎖盤,IBM 解盤后
RAC 數據庫無法正常啟動,啟動報錯:ORA-00600: internal error code, arguments: [2131], [33], [32], [], [], [], [], [], [], [], [], []
恢復方案確定:由于損壞的數據庫數據量巨大,有 30T 之多,并且要求盡快打開數據庫,可以接受丟失部分數據,
數據庫有備份。商議之下,使用備份控制文件恢復數據庫,進行數據庫的不一致性恢復。
恢復過程:
1、從磁帶庫拉取控制文件備份集并恢復到 Oracle RAC 數據庫 ASM 存儲中
– 此時嘗試啟動數據庫會遇到報錯信息:
ORA-00600: internal error code, arguments: [3020], [718], [2828551], [3014338823], [], [], [], [], [], [], [], []
ORA-10567: Redo is inconsistent with data block (file# 718, block# 2828551, file offset is unknown bytes)
2、生成 Oracle 的 pfile 并加入如下三個參數
_allow_resetlogs_corruption=true #跳過 redo 崩潰,允許 resetlogs 開庫
undo_management=manual #將 undo 管理修改為手工管理
event= 10513 trace name context forever,level 2 #開 10513 事件跳過一致性驗證
*.cluster_database=false
– 此時,嘗試啟動數據庫會遇到報錯信息:
ORA-00600: internal error code, arguments: [2662], [3735], [1979553782], [3735], [1979584838], [20971664], [], [], [], [], [], []
3、Oracle 數據庫使用備份控制文件恢復數據庫后,需要推進控制文件的 SCN
數據庫當前的 SCN= 3735.1979584838=(3735*4294967296)+1979584838=16043682435398
giga=16043682435398/1024/1024/1024=14941.843=14941
需要推進的新 SCN=14942*1024*1024*1024=16043850334208
Oracle 數據庫 10g 控制文件推進可以在 pfile 中加入參數:_minimum_giga_scn;
ORACLE 11.2.0.4 SCN 推進方法 oradebug
本次數據庫控制文件 SCN 推進步驟步驟
SQL oradebug setmypid
Statement processed.
SQL oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [700000000019B70, 700000000019BA0) = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 07000000 00019850
SQL oradebug poke 0x700000000019B70 8 16043850334208
BEFORE: [700000000019B70, 700000000019B78) = 00000000 00000000
AFTER: [700000000019B70, 700000000019B78) = 00000E97 80000000
SQL oradebug dumpvar sga kcsgscn_
kcslf kcsgscn_ [700000000019B70, 700000000019BA0) = 00000E97 80000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 07000000 00019850
SQL
– 此時嘗試啟動數據庫會遇到報錯信息:
ORA-00600: internal error code, arguments: [4193], [], [], [], [], [], [], [], [], [], [], []
接下來 ORA600[4193] 的處理就是 ORACLE rac 的 undo 表空間的重建了,需要配合參數:undo_management 和_CORRUPTED_ROLLBACK_SEGMENTS。
4、處理完 ORA600[4193] 后,數據庫能夠啟動并打開到 open 狀態,此時最好進行全庫備份,如果條件允許,
就重建數據庫以邏輯的方式導出故障數據庫導新環境。否則,后續的使用中會時不時遇到如下報錯信息:
ORA600[6122] 和 ORA600[KDSGRP1],實質文件是索引邏輯壞塊引起的,以 drop 和 create 重建相關的索引即可。
到此,關于“怎么恢復 Oracle RAC for aix 存儲雙控鎖盤導致 ASM 控制文件損壞”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!