資料庫補丁衝突解決方案 (文件 ID 1674432.1)

mosdoc發表於2016-12-04

適用於:

Oracle Database - Enterprise Edition - 版本 9.2.0.1 到 11.2.0.3 [發行版 9.2 到 11.2]
本文件所含資訊適用於所有平臺

目標

這篇文件的目標是協助客戶找到解決補丁衝突的方案,如果沒有解決方案,為 Oracle Support 提供解決衝突所需的資訊。

提問,獲得幫助,並分享您對於這篇文件的經驗。

您是否希望與其他 Oracle 客戶、Oracle 員工和業內專家進一步探討此主題?

請點選這裡進入Oracle 社群(中文)。
  請點選進入My Oracle Support 社群的資料庫安裝/升級(英文)主頁發現更多的話題和討論。

解決方案

較簡單的方式:使用 My Oracle Support 來找到衝突的解決方案

My Oracle Support Conflict Checker

一個新的檢查Patch衝突的工具已經在 Patch Search 的結果頁可用。.  透過這個工具我們可以上傳OPatch inventory並且檢查要下載的patch和已經打了的patch是否衝突。

如果沒有發現衝突,那麼可以下載 Patch。 如果發現衝突,這個工具可以尋找解決方案。 如果沒有發現解決方案,你可以申請一個解決方案(注:申請patch或者merge patch),並且可以監控這個過程。

關於更多資訊和一個示例影片,請參照

Document 1091294.1 "How to use the My Oracle Support Conflict Checker Tool".

OCM Configurations

如果您的安裝的當前配置資訊上傳到了 My Oracle Support,您可以利用 補丁計劃(Patch Plans) 來驗證和解決衝突。如果對這個衝突沒有既存的解決方案,它同樣會給您提供一個連結,來請求一個解決方案,這甚至不需要建立一個服務請求。

有關 Patch Plans 的影片,請參閱如下:

Document 603505.1 My Oracle Support Speed Training - Links to Recorded Training
Support Tools and Processes 標籤
  • Why use Configuration Manager in MOS
  • Configuration Manager
  • Installing the Collector
  • MOS Configuration Manager
  • Patch Recommendations and Patch Plans

稍微複雜:Patch Set Update (PSU)

驗證是否安裝了 PSU

如果不知道是否已經安裝了一個 PSU,請參閱如下文件中的驗證步驟:

Document 861152.1 Do Patchset Updates (PSU's) Change the Oracle Release Version/Fifth Digit?

驗證是否真的是一個衝突

定義:覆蓋補丁

當一個補丁與 PSU 衝突,一個覆蓋補丁會被建立在相同的 PSU 版本上。例如,PSU 是 11.1.0.7.8,覆蓋補丁將會是 11.1.0.7.8。覆蓋補丁將會在 PSU 之後被安裝,並且使用衝突的 PSU 和原始補丁的一個融合版本來“覆蓋”PSU。

驗證是否衝突的補丁是一個覆蓋補丁
    1. 執行如下
       
      % opatch lsinv
       
    2. 檢視庫存清單來確定衝突的補丁是否是一個覆蓋補丁。例如:

Patch  11840910     : applied on Fri Oct 12 11:22:09 EDT 2012
Unique Patch ID:  14478518
   Created on 13 Jan 2012, 05:48:59 hrs PST8PDT
   Bugs fixed:
     11840910
   This patch overlays patches:
     13343438
   This patch needs patches:
     13343438
   as prerequisites

 如果它是一個覆蓋補丁

驗證是否可以使用如下文件來確認基版本(例如,11.1.0.7.0)無法安裝

Document 1357613.1 Can a patch be applied if it is available on base/release version, even though PSU/CPU is installed

此 PSU 是否是一個複合補丁

一個新的打包模式在2012年4月被引入到了某些 PSU 版本。它叫做複合補丁模式。如果您不熟悉複合補丁模式,請閱讀如下文件:

Document 1376691.1 Composite Patches for Oracle Products

第一步是確定您的衝突所關聯的 PSU 是否以複合補丁模式建立。

確定此 PSU 是否被打包為一個複合補丁

參考如下文件中的第二節的表,此表包含了哪些發行版是複合補丁。

Document 1376691.1 Composite Patches for Oracle Products [Video]

非複合補丁

在 My Oracle Support 的“補丁和更新程式”標籤下查詢您的衝突的解決方案:

在 Patch ID 中輸入補丁號碼,搜尋符合您的配置的平臺。如果有與您的PSU版本相同的補丁存在(比如 11.1.0.7.8),那麼(在安裝 PSU 之後)下載安裝那個補丁來解決衝突。

找可用的替代補丁

閱讀如下文件尋找可能的替代補丁

Document 1061295.1 Patch Set Updates - One-off Patch Conflict Resolution

如果沒有解決方案,轉向 透過一個服務請求提供如下資訊

複合補丁

當安裝 PSU 時 OPatch 的輸出示例
  • 在安裝 PSU 之前檢查衝突

% opatch prereq CheckConflictAgainstOHWithDetail -ph ./13343438

Following patches have conflicts. Please contact Oracle Support and get the merged patch of the patches :
12646784, 13696216, 11840910

Following patches will be rolled back from Oracle Home on application of the patches in the given list :
12646784, 11840910

Conflicts/Supersets for each patch are:

Patch : 13696216

Conflict with 12646784
Conflict details:
/bugmnt6/ap/celclnx17/BOD/11.2.0.3/A/64bit/app/oracle/product/11.2.0.3.0/lib/libserver11.a:/atb.o

Conflict with 11840910
Conflict details:
/bugmnt6/ap/celclnx17/BOD/11.2.0.3/A/64bit/app/oracle/product/11.2.0.3.0/lib/libserver11.a:/kta.o

  • 安裝 PSU

% opatch apply

Composite Patch 13696216 conflicts with installed patch(es) 12646784, 11840910

Conflict Description:
Here are the specific sub-patches of composite patch 13696216 that conflict with 12646784, 11840910

Sub-Patch 13343438 conflicts with 11840910

Sub-Patch 13696216 conflicts with 12646784

Conflict Remedy:
Refer to My Oracle Support Note 1299688.1 for instructions on resolving patch conflicts.

注意,apply 的輸出與 CheckConflictAgainstOHWithDetail 的輸出並不相同。

apply 顯示:

Sub-Patch 13343438 conflicts with 11840910

Sub-Patch 13696216 conflicts with 12646784

CheckConflictAgainstOHWithDetail 顯示:

11840910 and 12646784 both conflict with 13696216

這是一個已知的問題,會在未來的 OPatch 版本中解決。正確的資訊是 Apply 的輸出。

所以在進行之前,您需要利用如下文件的場景1來確定哪個子補丁關聯於這個衝突:

Document 1626610.1 "opatch prereq CheckConflictAgainstOHWithDetail -ph ./" does not show correct Composite sub-patch

  • 當 PSU 與多個子補丁衝突時安裝 PSU
Composite Patch 13923374 conflicts with installed patch(es)  13632140

Conflict Description:
Here are the specific sub-patches of composite patch 13923374 that conflict with  13632140

Sub-Patch 13343438 conflicts with 13632140

Sub-Patch 13696216 conflicts with 13632140

Sub-Patch 13923374 conflicts with 13632140

在這個例子中 PSU 與多個子補丁衝突,那麼在衝突解決的處理過程中,使用最新的子補丁(最大的補丁號碼)。在上面的例子中,使用 13923374。

當安裝一個小補丁時 OPatch 的輸出示例
  • 在安裝小補丁前檢查與 PSU 的衝突
Following patches have conflicts. Please contact Oracle Support and get the merged patch of the patches :
13343438, 11840910

Following patches will be rolled back from Oracle Home on application of the patches in the given list :
13343438

Conflicts/Supersets for each patch are:

Patch : 11840910

Conflict with 13343438
Conflict details:
/bugmnt6/ap/celclnx17/BOD/11.2.0.3/A/64bit/app/oracle/product/11.2.0.3.0/lib/libserver11.a:/kta.o
  • 安裝一個與 PSU 衝突的補丁

Patch 11840910 conflicts with the composite patch 13696216 (specifically, sub-patch(es) 13343438). Please refer to the following to resolve the conflict(s): Patch conflict resolution (Doc ID 1299688.1) 
  or
Patch 12646784 conflicts with the composite patch 13696216 (specifically, sub-patch(es) 13696216). Please refer to the following to resolve the conflict(s): Patch conflict resolution (Doc ID 1299688.1)

  • 安裝一個小補丁,此小補丁與 PSU 的多個子補丁衝突

Patch 13632140 conflicts with the composite patch 13923374 (specifically, sub-patch(es) 13923374,13696216,13343438).

在小補丁與多個子補丁衝突的情況下,在衝突處理過程中使用最新的子補丁(最大的補丁號碼)。比如在上面的例子中,使用 13923374。

確定衝突所關聯的複合子補丁的版本

在如下文件中查詢複合子補丁號碼

Document 753736.1 Quick Reference to Patchset Patch Numbers

在 My Oracle Support 的“補丁和更新程式”標籤下查詢您的衝突的解決方案:
在“搜尋”標籤下,在補丁編號裡輸入非 PSU 補丁號碼(11840910),並且搜尋匹配您的配置的平臺。如果存在一個補丁,能夠匹配衝突中所報告的 PSU 子補丁版本(例如,11.2.0.3.1),那麼,要解決衝突,在安裝 PSU 之後下載並安裝這個補丁。 
查詢可用的替代補丁

檢視如下文件找到可能的替代補丁

Document 1061295.1 Patch Set Updates - One-off Patch Conflict Resolution

如果沒有解決方案,轉向 透過一個服務請求提供如下資訊

稍微複雜:Critical Patch Update (CPU)

CPU 與一個已經安裝的 PSU 衝突

  1. 執行如下命令來確定是否安裝了 PSU

    % $ORACLE_HOME/OPatch/opatch lsinventory
     
  2. 閱讀輸出,檢視是否安裝了任何版本的 PSU

根據當前的 Patch Set Update and Critical Patch Update Availability Document。在已經安裝了 PSU 的環境繼續安裝 CPU 是不支援的。如果安裝了 PSU,您必須執行如下之一:

  1. 安裝當前的 PSU 而不是 CPU。
     
  2. 回滾 PSU,安裝 CPU。並不推薦這個方案,因為回滾 PSU 的時候,您會移除很多已經安裝在 ORACLE_HOME 下修復內容。

CPU 與一個非 PSU 或非安全補丁的的衝突

  1. 轉向提交一個服務請求並且提供如下資訊

所有其他的衝突

提交一個服務請求並且提供如下資訊

  1. 確認您有最新版本的 OPatch。如果您沒有最新的版本,那麼參照 My Oracle Support 中列出的如下步驟
     
    Document 224346.1 OPatch - Where Can I Find the Latest Version of OPatch?

  2. 執行如下命令:

    UNIX:
    % $ORACLE_HOME/OPatch/opatch lsinventory
     
    Windows:
    %ORACLE_HOME%\OPatch\opatch lsinventory

    - 上傳當前的日誌檔案,位置是

    UNIX:
    $ORACLE_HOME/cfgtoollogs/opatch (不是 opatch_history.txt 檔案)

    Windows:
    %ORACLE_HOME%\cfgtoollogs\opatch
     
  3. 上傳顯示了衝突的 OPatch 日誌

  4. 將如下結果發到 SR

    UNIX:
    % uname -a
    % file $ORACLE_HOME/bin/sqlplus

 

 

參考

NOTE:563656.1 - Different types of Patch Conflicts - Superset/Subset/Duplicate/Bug/File
NOTE:861152.1 - Do Patchset Updates (PSU's) Change the Oracle Release Version/Fifth Digit?
NOTE:1626610.1 - "opatch prereq CheckConflictAgainstOHWithDetail -ph ./" shows incorrect results for Composite Patch

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2129651/,如需轉載,請註明出處,否則將追究法律責任。

相關文章