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

Oracle 10g 作業系統損壞後完整災難恢復實戰記錄 (AIX 平台)

     編輯:Oracle 資料庫基礎

環境基線

  • DB: Oracle 10g on AIX 5.2
  • Rootvg: OS + Oracle Home (/oracle)
  • Datavg: 資料檔 (/oradata)、控制檔、Redo Log
  • 控制檔: $ORACLE_HOME/dbs/ (1份) + /oradata/ (2份)
  • Redo Log: 每組 2 成員 (共 3 組),分置 $ORACLE_HOME/dbs/ 及 /oradata/
  • 備份: 最新 SPFILE 檔案備份

恢復完整步驟 (含錯誤排除)

1. 重裝 OS → 安裝 Oracle 軟體 (同版本、同路徑)

2. 還原 SPFILE

cp /backup/spfileorcl.ora $ORACLE_HOME/dbs/

3. STARTUP NOMOUNT → 缺少目錄報錯

SQL> STARTUP NOMOUNT;
ORA-00444: background process "MMAN" failed while starting
ORA-07446: sdnfy: bad value '' for parameter ...

原因:SPFILE 參數指定的目錄在新 OS 不存在。

4. 建立缺失目錄

mkdir -p $ORACLE_BASE/hb052500/{bdump,cdump,udump}
mkdir -p $ORACLE_HOME/dbs/archive

依 CREATE PFILE FROM SPFILE 產生的 init.ora 內容核對所有路徑:

  • background_dump_dest
  • core_dump_dest
  • user_dump_dest
  • log_archive_dest_1

5. 再次 STARTUP NOMOUNT → 成功

SQL> STARTUP NOMOUNT;
Oracle instance started.
Total System Global Area 289406976 bytes
...

6. ALTER DATABASE MOUNT → 密碼檔遺失

ORA-01990: error opening password file '$ORACLE_HOME/dbs/orapw'
ORA-27037: unable to obtain file status

解決:重建密碼檔

$ orapwd file=$ORACLE_HOME/dbs/orapw password=oracle entries=10

7. 再次 MOUNT → 已掛載 / Flashback 開啟報錯

ORA-01100: database already mounted
ORA-38760: This database instance failed to turn on Flashback database

解決:關閉 Flashback 再 OPEN

SQL> ALTER DATABASE FLASHBACK OFF;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.

8. 驗證歸檔模式

SQL> ARCHIVE LOG LIST;
Database log mode: Archive Mode
Automatic archival: Enabled
Archive destination: /oracle/app/oracle/OraHome/dbs/archive
Oldest online log sequence: 614
Next log sequence to archive: 616
Current log sequence: 616

關鍵經驗總結

  1. SPFILE 路徑參數必須在新 OS 預先建立對應目錄,否則實例無法啟動 (MMAN 失敗)。
  2. 密碼檔不隨資料檔備份,需單獨備份或災後用 orapwd 重建。
  3. Flashback Database 若目標儲存區未就緒會阻礙 OPEN,可暫時關閉再開啟。
  4. 控制檔多路徑鏡像 (本案 1+2) 是救命關鍵,確保至少一份在獨立磁碟組。
  5. 完整記錄每步輸出與錯誤碼,利於事後複盤與自動化腳本改良。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved