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

DBUA 升級指定 ASM Disk 為 FRA 時 Hang 住:相容參數未設定導致

     編輯:Oracle 教學

DBUA 升級指定 ASM Disk 為 FRA 時 Hang 住:相容參數未設定導致

在 Oracle 11.2.0.3 使用 DBUA (Database Upgrade Assistant) 升級資料庫時,若在「快速復原區 (FRA)」步驟指定 ASM 磁碟群組,DBUA 介面會無回應。追蹤日誌顯示 NullPointerException,根因是來源資料庫的 compatible 參數未在 PFILE/SPFILE 中顯式設定。

錯誤現象

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at oracle.sysman.assistants.util.InstallUtils.compareVersion(InstallUtils.java:266)
    at oracle.sysman.assistants.util.asm.ASMUtils.validateDiskGroup(ASMUtils.java:1154)
    at oracle.sysman.assistants.dbma.backend.CloneValidator.isDiskGroupCompatible(CloneValidator.java:654)
    at oracle.sysman.assistants.dbma.backend.CloneValidator.isRecoveryAreaValidated(CloneValidator.java:431)
    at oracle.sysman.assistants.dbma.ui.OracleBasePage.doNext(OracleBasePage.java:956)

根因分析

DBUA 驗證 FRA 磁碟群組相容性時,需比對來源資料庫與目標 ASM 磁碟群組的 compatible 參數。若來源資料庫的 PFILE/SPFILE 中未顯式設定 compatible,DBUA 讀取到 null 值,導致 compareVersion 拋出 NPE。

解決方案

  1. 編輯來源資料庫的 PFILE(或 SPFILE),新增 compatible 參數:
    compatible = x.x.0.0
  2. 數值設為來源資料庫目前的相容版本,例如 10.2.0.5 則設:
    compatible = 10.2.0 或 compatible = 10.2.0.5
  3. 關閉資料庫,以新 PFILE 啟動至 MOUNT 階段(或重啟實例)
  4. 重新執行 DBUA 升級

關鍵提醒

  • 修改 compatible 需重啟實例生效
  • 相容參數只能升不能降:一旦調高並重啟,控制檔版本升級,無法再降回舊版本,否則會報 ORA-00201: control file version incompatible
  • 建議升級前先用 SELECT * FROM DBA_REGISTRY_HISTORY 確認資料庫是 DBCA 全新建立還是升級而來,升級而來的資料庫最易遺漏此參數

驗證資料庫建立方式

SET PAGES 100 LINES 200
COL ACTION FOR A16
COL NAMESPACE FOR A10
COL VERSION FOR A10
COL COMMENTS FOR A30
COL ACTION_TIME FOR A30
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
SELECT * FROM DBA_REGISTRY_HISTORY;

輸出若含 UPGRADE 列且 COMMENTS 顯示 Upgraded from 10.2.0.5.0,即為升級資料庫,需特別檢查 compatible 參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved