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

Oracle ORA-01033/ORA-01157 故障排查:遺失資料檔導致無法開啟資料庫

     編輯:Oracle 資料庫基礎

現象

TOAD/PLSQL 連線報 ORA-01033: Oracle initialization or shutdown in progress。STARTUP FORCE 後仍報:

ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
ORA-01110: data file 9: 'D:\ORACLE\ORADATA\MYORACLE\ABC.DBF'

根因分析

實體檔案 ABC.DBF 已遺失(疑誤刪),但控制檔案仍記錄該檔案屬於表空間 ABC,導致開啟資料庫時無法鎖定檔案。

解決步驟

  1. 以 SYSDBA 連線並掛載
    SQLPLUS / AS SYSDBA
    STARTUP MOUNT
    
  2. 將遺失檔案 OFFLINE DROP
    ALTER DATABASE DATAFILE 'D:\ORACLE\ORADATA\MYORACLE\ABC.DBF' OFFLINE DROP;
    
  3. 開啟資料庫
    ALTER DATABASE OPEN;
    
  4. 善後
    • 該表空間現已無資料檔,若無備份則資料永久遺失。
    • 若有備份:RESTORE DATAFILE ...; RECOVER DATAFILE ...; 恢復後 ONLINE。
    • 若無備份且可接受資料遺失:DROP TABLESPACE ABC INCLUDING CONTENTS AND DATAFILES; 徹底移除。

預防措施

  • 啟用歸檔模式 + RMAN 定期備份資料檔與控制檔案。
  • OS 層面對 $ORACLE_BASE/oradata 設寫保護或定期快照。
  • 建立資料檔遺失告警腳本(監控 V$RECOVER_FILE)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved