Oracle物理結構故障是指構成資料庫的各個物理檔案損壞而導致的各種資料庫故障。這些故障可能是由於硬體故障造成的,也可能是人為誤操作而引起。所以我們首先要判斷問題的起因,如果是硬體故障則首先要解決硬體問題。在無硬體問題的前提下我們才能按照下面的處理方發來進一步處理。
控制檔案損壞:
控制檔案記錄了關於oracle的重要配置資訊,如資料庫名、字元集名字、各個資料檔案、記錄檔的位置等等資訊。控制檔案的損壞,會導致資料庫異常關閉。一旦缺少控制檔案,資料庫也無法啟動,這是一種比較嚴重的錯誤。
損壞單個控制檔案:
1. 確保資料庫已經關閉,如果沒有用下面的命令來關閉資料庫:
svrmgrl>shutdown immediate;
2. 查看初始設定檔案$ORACLE_BASE/admin/pfile/initORCL.ora,確定所有控制檔案的路徑。
3. 用作業系統命令將其它正確的控制檔案覆蓋錯誤的控制檔案。
4. 用下面的命令重新啟動資料庫:
svrmgrl>startup;
5. 用適當的方法進行資料庫全備份。
損壞所有的控制檔案:
1. 確保資料庫已經關閉,如果沒有用下面的命令來關閉資料庫:
svrmgrl>shutdown immediate;
2. 從相應的備份結果集中恢複最近的控制檔案。對於沒有採用帶庫備份的點可以直接從磁帶上將最近的控制檔案備份恢複到相應目錄;對於採用帶庫備份的點用相應的rman指令碼來恢複最近的控制檔案。
3. 用下面的命令來建立產生資料庫控制檔案的指令碼:
svrmgrl>startup mount;
svrmgrl>alter database backup controlfile to trace noresetlogs;
4. 修改第三步產生的trace檔案,將其中關於建立控制檔案的一部分語句拷貝出來並做些修改,使得它能夠體現最新的資料庫結構。假設產生的sql檔案名稱字為createcontrol.sql.
注意:
Trace檔案的具體路徑可以在執行完第3)步操作後查看$ORACLE_BASE/admin/bdump/alert_ORCL.ora檔案來確定。
5. 用下面命令重新建立控制檔案:
svrmgrl>shutdown abort;
svrmgrl>startup nomount;
svrmgrl>@createcontrol.sql;
6. 用適當的方法進行資料庫全備份。
重做記錄檔損壞:
資料庫的所有增、刪、改都會記錄入重做日誌。如果當前啟用的重做記錄檔損壞,會導致資料庫異常關閉。非啟用的重做日誌最終也會因為日誌切換變為啟用的重做日誌,所以損壞的非啟用的重做日誌最終也會導致資料庫的異常終止。在ipas/mSwitch中每組重做日誌只有一個成員,所以在下面的分析中只考慮重做日誌組損壞的情況,而不考慮單個重做日誌成員損壞的情況。