Oracle資料庫系統緊急故障處理方法

來源:互聯網
上載者:User

正在看的ORACLE教程是:Oracle資料庫系統緊急故障處理方法。

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中每組重做日誌只有一個成員,所以在下面的分析中只考慮重做日誌組損壞的情況,而不考慮單個重做日誌成員損壞的情況。

  確定損壞的重做日誌的位置及其狀態:

  1. 如果資料庫處於可用狀態:

  select * from v$logfile;

  svrmgrl>select * from v$log;

  2. 如果資料庫處於已經異常終止:

  svrmlgr>startup mount;
  svrmgrl>select * from v$logfile;
  svrmgrl>select * from v$log;

  其中,logfile的狀態為INVALID表示這組記錄檔出現已經損壞;log狀態為Inactive:表示重做記錄檔處於非啟用狀態;Active: 表示重做記錄檔處於啟用狀態;Current:表示是重做日誌為當前正在使用的記錄檔。

  損壞的記錄檔處於非啟用狀態:

  1. 刪除相應的日誌組:

  svrmgrl>alter database drop logfile group group_number;

  2. 重新建立相應的日誌組:

  svrmgrl>alter database add log file group group_number ('log_file_descritpion',…) size log_file_size;

  損壞的記錄檔處於啟用狀態且為非當前日誌:

  1. 清除相應的日誌組:

  svrmgrl>alter database clear unarchived logfile group group_number;

  損壞的記錄檔為當前活動紀錄檔案:

  用命令清除相應的日誌組:

  svrmgrl>alter database clear unarchived logfile group group_number;

  如果清除失敗,則只能做基於時間點的不完全恢複。

  開啟資料庫並且用適當的方法進行資料庫全備份:

  svrmgrl>alter database open;

[NextPage]

部分資料檔案損壞:

  若損壞的資料檔案屬於非system資料表空間,則資料庫仍然可以處於開啟狀態可以進行操作,只是損壞的資料檔案不能訪問。這時在資料庫開啟狀態下可以單獨對損壞的資料檔案進行恢複。若是system資料表空間的資料檔案損壞則資料庫系統會異常終止。這時資料庫只能以Mount方式開啟,然後再對資料檔案進行恢複。可以通過查看資料庫記錄檔來判斷當前損壞的資料檔案到底是否屬於system資料表空間。

上一頁

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.