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

Oracle 資料庫升級實戰:PSU 11.2.0.4.3 回滾至 11.2.0.4.0 完整步驟

     編輯:Oracle 教學

Oracle 資料庫升級實戰:PSU 11.2.0.4.3 回滾至 11.2.0.4.0 完整步驟

生產環境套用 PSU (Patch Set Update) 後若出現嚴重回歸問題,需具備快速回滾能力。本文記錄 11.2.0.4.3 回滾至基礎版 11.2.0.4.0 的標準化流程、關鍵指令與驗證要點。

一、回滾前置檢查

  • 確認當前版本:SELECT * FROM v$version; → 11.2.0.4.3
  • 備份關鍵檔案:$ORACLE_HOME/inventory、spfile、listener.ora、sqlnet.ora
  • 確認 OPatch 版本 ≥ 11.2.0.3.0,且 $ORACLE_HOME/OPatch 為最新
  • 取得 Patch 11.2.0.4.0 的完整安裝介質(非 PSU,為基礎版)
  • 通知業務停機窗口,準備回滾腳本與驗證 SQL

二、回滾核心步驟

  1. 關閉資料庫與監聽器
srvctl stop database -d dbname -o immediate
srvctl stop listener -l listener_name
  1. 移除 PSU 11.2.0.4.3
cd $ORACLE_HOME/OPatch
./opatch rollback -id 19121551 -invPtrLoc $ORACLE_HOME/oraInst.loc

19121551 為 PSU 11.2.0.4.3 的 Patch ID,請以實際 opatch lsinventory 確認。

  1. (如需)重新套用基礎版 11.2.0.4.0 修補程式

若基礎版已有額外一次性補丁,需按順序重新 apply。

  1. 重新編譯無效物件
sqlplus / as sysdba
@?/rdbms/admin/utlrp.sql
  1. 啟動資料庫與監聽器
srvctl start listener -l listener_name
srvctl start database -d dbname

三、驗證清單

  • SELECT * FROM v$version; 確認版本回退至 11.2.0.4.0
  • SELECT COUNT(*) FROM dba_objects WHERE status='INVALID'; 應為 0
  • 執行核心業務 SQL 驗證功能正確性
  • 檢查 Alert Log 無新增錯誤
  • opatch lsinventory 確認清單僅含基礎版補丁

四、RAC 環境額外注意

  • 採用 Rolling Rollback:逐節點回滾,確保服務不中斷
  • 每節點執行 opatch rollback -local 而非 -all
  • 回滾期間監控 crsctl stat res -t 確保資源狀態正常

五、應急預案

若回滾失敗導致資料庫無法啟動:

  1. 從備份還原 $ORACLE_HOME 整個目錄
  2. 或使用 DBMS_QOPATCH 確認補丁狀態後,手動執行 catbundle.sql 修復目錄視圖
  3. 最後手段:RMAN 還原至套用 PSU 前的備份
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved