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

RHEL AS4 上 Oracle 10g 升級至 10.2.0.3 完整實戰:補丁安裝、DBUA 與手工升級雙軌詳解

     編輯:Oracle 資料庫基礎

環境與前置條件

  • OS:RHEL AS4 (x86_64)
  • DB:Oracle 10.2.0.1 → 10.2.0.3
  • 用戶:oracle (OS), sys as sysdba (DB)
  • 備份:**冷備份 (關機拷貝) 或 RMAN 完整備份**,升級前必做!

第一階段:安裝 10.2.0.3 Patch Set (軟體二進位升級)

  1. 下載 p5337014_10203_LINUX.zip (Metalink Patch 5337014)
  2. unzip p5337014_10203_LINUX.zip → 產生 Disk1 目錄
  3. 關閉所有資料庫、監聽器、EM Agent
  4. cd Disk1 && ./runInstaller
  5. 圖形介面:選擇 Oracle Home → 下一步 → 直到「執行配置腳本」畫面
  6. 另開終端機以 root 執行提示腳本:
    /opt/oracle/product/10.2.0/db_1/root.sh
  7. 回安裝介面確認 → 完成軟體升級(**資料庫尚未升級**)

第二階段:資料庫升級——方案 A:DBUA (圖形化,適合中小型庫)

  1. 設定環境變數:
    export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1
    export ORACLE_SID=PROD
    export PATH=$ORACLE_HOME/bin:$PATH
  2. dbua 啟動圖形介面
  3. 選擇目標資料庫 → 勾選「升級完成後編譯無效物件」 → 下一步
  4. 備份選項:建議「否」(已做冷備份),或由 DBUA 做冷備份(需預留空間)
  5. 管理密碼、網路設定保持預設 → 下一步
  6. 開始升級 → 等待進度條完成 → Finish
  7. 驗證:sqlplus / as sysdba → SELECT * FROM v$version; 確認 10.2.0.3.0

第二階段:資料庫升級——方案 B:手工升級 (字元介面,大型庫/自動化首選)

# 1. 設定環境變數 (同上)
export ORACLE_SID=PROD
sqlplus / as sysdba

# 2. 以 UPGRADE 模式啟動
SQL> STARTUP UPGRADE;
-- 例程啟動,資料庫掛載並開啟,但限制性會話

# 3. 重建資料字典 (核心步驟,約 30-120 分鐘視大小)
SQL> SPOOL /home/oracle/upgrade.log
SQL> @?/rdbms/admin/catupgrd.sql
-- 大量輸出,請耐心等待
SQL> SPOOL OFF

# 4. 關閉並正常啟動
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

# 5. 重新編譯無效物件
SQL> SELECT COUNT(*) FROM dba_objects WHERE status='INVALID';
SQL> @?/rdbms/admin/utlrp.sql
-- 並行重編譯,等待完成

# 6. 最終驗證
SQL> SELECT tablespace_name, status FROM dba_tablespaces;  -- 表空間正常
SQL> SELECT username FROM dba_users;                      -- 使用者正常
SQL> SELECT COUNT(*) FROM dba_objects WHERE status='INVALID'; -- 應為 0 或極少

升級後必做項目

  • 統計資訊收集:EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
  • 檢查回收站物件:BIN$... 物件為 10g 新功能,屬正常現象,可 PURGE RECYCLEBIN 清理
  • 更新監聽器/tnsnames.ora:若 Oracle Home 路徑變更,需同步 listener.ora 中的 ORACLE_HOME 參數
  • 測試應用連線:確認連線字串、權限、PL/SQL 套件運作正常

常見問題與對策

問題原因對策
catupgrd.sql 執行錯誤 ORA-00600已知 Bug / 環境參數查閱 Metalink Note 對應 Patch,或改用 DBUA
升級後大量 INVALID 物件utlrp.sql 未執行/中斷重跑 utlrp.sql,必要時手動編譯
EM Database Control 無法啟動Repository 版本不符emca -reconfig dbcontrol -repos recreate
監聽器無法啟動listener.ora ORACLE_HOME 舊路徑修正 listener.ora 並 lsnrctl reload

結語

Oracle 10g 升級 10.2.0.3 分為「軟體二進位升級」與「資料庫字典升級」兩階段。**冷備份是前提**,DBUA 適合中小庫圖形化操作,手工升級適合大型庫、自動化腳本與無圖形環境。升級後務必跑 utlrp.sql、收集字典統計、驗證應用連線,才算真正完成。

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