首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 11.2.0.1 升級至 11.2.0.3 同版本 Patch Set 升級完整操作手冊

     編輯:Oracle 資料庫相關知識

前言

同版本 Patch Set 升級(如 11.2.0.1 → 11.2.0.3)屬於小版本升級,風險相對較低,但仍需嚴謹備份與驗證。本文記錄完整操作流程與關鍵注意事項。

一、升級前準備

1. 確認目前版本

select * from v$version;

2. 完整備份(極重要)

export ORACLE_SID=orcl
rman target /
RMAN> backup full database plus archivelog;

教訓: 作者曾因升級過程磁碟空間不足導致 VM 崩潰、資料庫掛掉,最終須從他機冷備遷移恢復。務必預留充足磁碟空間(建議 5-10 GB 以上)。

二、Patch Set 套件說明

Oracle 11.2.0.3 共有 7 個 zip 檔,前 2 個為 Database 核心(必須合並解壓),第 3 個為 Grid Infrastructure(RAC 環境需先升級),其餘為 Client、Gateway、Examples。

三、升級步驟

1. 合並解壓前兩個 Database zip

將 p10404530_112030_Linux-x86-64_1of7.zip 與 _2of7.zip 解壓至同一目錄,目錄結構會自動合併。

2. 執行 runInstaller

  • 有圖形介面:直接執行 ./runInstaller
  • 無圖形介面:需準備應答檔

關鍵畫面操作:

  1. 略過軟體更新:選「Skip software updates」
  2. 安裝位置:不可覆蓋舊 ORACLE_HOME,需指定新路徑(如 /home/oracle/ora/product/11.2.0.3/db_1)
  3. 磁碟空間:預留 5-10 GB
  4. /etc/oratab:升級腳本會讀取此檔偵測運行中的資料庫實例,確保內容正確

3. 升級後環境變數切換

# 舊環境
ORACLE_BASE=/home/oracle/ora
ORACLE_HOME=$ORACLE_BASE/product/11g/db_1

# 新環境
ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1
# 修改 .bash_profile 或 /etc/profile 後 source 生效

四、資料庫升級作業

1. Pre-Upgrade 檢查

sqlplus / as sysdba
spool pre_upgrade.log
@$ORACLE_HOME/rdbms/admin/utlu112i.sql
spool off
-- 檢查日誌,修正建議項目

2. 關閉資料庫,以 UPGRADE 模式啟動

shutdown immediate
startup upgrade
select * from v$version;  -- 確認版本
select status from v$instance;  -- 應顯示 OPEN MIGRATE

3. 執行升級腳本

spool upgrade.log
@$ORACLE_HOME/rdbms/admin/catupgrd.sql
spool off
-- 過程約 20-60 分鐘視硬體而定

4. 升級後驗證

spool post_upgrade.log
@$ORACLE_HOME/rdbms/admin/utlu112s.sql
spool off
-- 檢查是否有 ERROR 或 WARNING

5. 重啟並編譯無效物件

shutdown immediate
startup
@$ORACLE_HOME/rdbms/admin/utlrp.sql
-- 驗證無效物件
select count(*) from dba_objects where status='INVALID';
-- 應為 0

6. 最終確認

select name from v$database;       -- 確認 DB 名稱
show user;                          -- 確認 SYS
select tablespace_name, bytes from dba_data_files;  -- 表空間大小
select status from v$instance;      -- 應為 OPEN(非 OPEN MIGRATE)

五、常見問題與對策

問題原因對策
磁碟空間不足升級產生大量暫存檔、Archive Log預留 10GB+、定期清理舊 Archive Log
無效物件殘留PL/SQL 編譯錯誤、相依物件缺失重複執行 utlrp.sql、檢查 dba_errors
參數不相容舊 pfile 含已棄用參數Pre-Upgrade 工具會列出,逐一移除/調整
Listener 版本不符舊 Listener 無法服務新實例NetCA 重新配置、啟動新 Home 的 Listener

六、回滾方案

若升級失敗無法修復:

  1. 關閉新實例
  2. 還原 ORACLE_HOME 環境變數指向舊 Home
  3. 啟動舊實例
  4. 若資料檔已被升級腳本修改(極罕見),需從 RMAN 備份恢復
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved