首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 資料庫物理結構故障緊急處理指南

     編輯:Oracle 資料庫基礎

前言

Oracle 物理結構故障指控制檔、重做日誌檔、資料檔等實體檔案損壞導致的資料庫異常。故障可能源於硬體錯誤或人為誤操作。處理前必須先排除硬體問題,再依下列標準流程處理。

一、控制檔損壞

控制檔記錄資料庫名稱、字元集、資料檔/日誌檔路徑等關鍵中繼資料。遺失控制檔將導致資料庫無法啟動,屬嚴重故障。

情況 1:單一控制檔損壞 (多路徑備份情況)

  1. 確保資料庫已關閉:SHUTDOWN IMMEDIATE;
  2. 查閱參數檔 init.ora 確認所有控制檔路徑。
  3. 用作業系統指令以正確控制檔覆蓋損壞檔案。
  4. 啟動資料庫:STARTUP;
  5. 立即執行完整備份。

情況 2:所有控制檔全數遺失

  1. 關閉資料庫:SHUTDOWN IMMEDIATE;
  2. 從備份還原最近的控制檔 (磁帶或 RMAN)。
  3. 以 STARTUP MOUNT; 掛載資料庫,執行 ALTER DATABASE BACKUP CONTROLFILE TO TRACE NORESETLOGS; 產生重建腳本。
  4. 查閱 alert_.log 定位 trace 檔,擷取 CREATE CONTROLFILE 區段並修正以反映最新資料庫結構 (新增/刪除資料檔、日誌檔等),存為 create_control.sql。
  5. 重建控制檔:
    SHUTDOWN ABORT;
    STARTUP NOMOUNT;
    @create_control.sql;
    
  6. 執行完整備份。

二、重做日誌檔損壞

所有 DML 操作皆記錄於重做日誌。當前線上日誌損壞會導致資料庫異常終止;非當前日誌最終也會因切換而成為當前日誌,故同樣嚴重。本文假設每組僅一成員 (無多路徑)。

確認損壞日誌組狀態

-- 資料庫可用時
SELECT * FROM V$LOGFILE;
SELECT * FROM V$LOG;

-- 資料庫已異常終止
STARTUP MOUNT;
SELECT * FROM V$LOGFILE;
SELECT * FROM V$LOG;

依 V$LOG.STATUS (CURRENT, ACTIVE, INACTIVE, UNUSED) 與 V$LOGFILE.STATUS 判斷損壞日誌組屬於哪種狀態,再依對應恢復策略處理 (清除日誌組、不完全恢復、OPEN RESETLOGS 等),詳見 Oracle 官方備份恢復指南。

關鍵提醒

  • 平時必須對控制檔、線上日誌實施多路徑鏡像 (Multiplexing)。
  • 定期驗證備份可用性,演練恢復流程。
  • 啟用 ARCHIVELOG 模式並配置閃回恢復區,大幅降低資料遺失風險。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved