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

Oracle 資料庫 CPU/PSU 補丁查詢指南:DBA_REGISTRY_HISTORY 與 OPatch 兩大方法詳解

     編輯:Oracle 資料庫基礎

前言

確認 Oracle 資料庫已套用的 CPU (Critical Patch Update) 與 PSU (Patch Set Update) 版本,是資安稽核與維運的基本功。本文介紹兩種標準查詢方法:資料庫視圖查詢與 OPatch 工具指令,並說明關鍵注意事項。

方法一:查詢 DBA_REGISTRY_HISTORY 視圖

以 SYSDBA 登入資料庫,設定顯示格式後查詢歷史紀錄:

SQL> SET PAGES 100 LINES 120
SQL> COL ACTION FORMAT A6
SQL> COL NAMESPACE FORMAT A10
SQL> COL VERSION FORMAT A10
SQL> COL COMMENTS FORMAT A15
SQL> COL ACTION_TIME FORMAT A30
SQL> COL BUNDLE_SERIES FORMAT A15
SQL> ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF';
SQL> SELECT * FROM DBA_REGISTRY_HISTORY;

輸出範例

ACTION_TIMEACTIONNAMESPACEVERSIONIDBUNDLE_SERIESCOMMENTS
2011-06-02 16:54:21.301023APPLYSERVER10.2.0.44PSUPSU 10.2.0.4.4
2011-06-02 16:54:42.711877APPLYSERVER10.2.0.41OPSUPSU 10.2.0.4.5

BUNDLE_SERIES 欄位標示 PSU 即為 Patch Set Update,CPU 則為 Critical Patch Update。

方法二:使用 OPatch lsinventory 指令

在作業系統層級執行:

$ opatch lsinventory

輸出關鍵區塊

Installed Top-level Products (2):
Oracle Database 10g 10.2.0.1.0
Oracle Database 10g Release 2 Patch Set 3 10.2.0.4.0

Interim patches (4):
Patch 6367097 : applied on Tue Sep 14 22:08:15 GMT+08:00 2010
  Bugs fixed: 6367097
...
Patch 9294403 : applied on ...
  Bugs fixed: 9294403

Interim patches 區塊列出已套用的單一修補程式,包含補丁編號、套用時間與修復的 Bug 編號。

關鍵注意事項:兩階段套用機制

CPU/PSU 補丁分兩階段:先以 opatch apply 套用二進位檔案,再執行 cat_bundle.sql 更新資料庫內部物件。若僅執行 OPatch 而未跑 SQL 腳本,DBA_REGISTRY_HISTORY 將查無紀錄,補丁實際上未完整生效。

總結

  • 資料庫層面: 查 DBA_REGISTRY_HISTORY 確認 cat_bundle.sql 執行紀錄
  • 作業系統層面: 用 opatch lsinventory 確認二進位補丁套用狀態
  • 完整驗證: 兩者須一致,缺一不可
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved