今天安裝了oracle OEMCC 13.5,又因應log4j了更新的一些補丁,遭遇了一些問題分享
以下為所需下載的軟體:
Related Patches(Security Alert For CVE-2021-44228,CVE-2021-45046 & CVE-2021-45105 Patch Availability Document for Oracle Enterprise Manager Cloud Control (Doc ID 2828296.1))
- Patch FMW component (Patch 33416868 & Patch 33691226)
- Patch DB Plug-in Home (Patch 33672721)
- Patch 19999993: OMSPATCHER 13.5.0.0.0
- Patch 28186730: OPATCH 13.9.4.2.8
安裝OEM 大概不是什麼問題~ XD
------來直接跳到上patch----
我們需要更新OMSPATCHER 與OPATCH,用來上FMW component與DB Plug-in Home,在更新完OMSPATCHER 與OPATCH確認版本時發生了錯誤:
[oracle@oem OPatch]$ ../OMSPatcher/omspatcher version
java.lang.NoClassDefFoundError: oracle/oplan/sdk/intg/OPlanIntgFactory
at oracle.opatchauto.oms.OMSPatchingSession.(OMSPatchingSession.java:81)
at oracle.opatchauto.oms.OPatchAuto.(OPatchAuto.java:94)
Caused by: java.lang.ClassNotFoundException: oracle.oplan.sdk.intg.OPlanIntgFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 2 more
靠!
讓我們來看一下我前面的步驟
1.檢查一下目前omspatcher(.4.4)與opatch(.5)版本
opatch & omspatcher verison
2.先將目前的OPATCH 與OMSPatcher 備份移走
backup opatch & omspatcher
3.解壓縮更新omspatcher,此時想看一下omspatcher版本發現以下錯誤,沒事!這是因為OPATCH 剛剛被我們移走了,我們下一步把新的裝回來。
4.OPATCH的更新與DB的方式不一樣,是要用java去安裝,先解壓縮會看到6880880的目錄,裏頭有一個.jar的檔案
5.以下指令會安裝OPATCH 在OMS的 ORACLE_HOME,(中間省略)
6.想說都更新好了來檢查一下版本,OPATCH沒問題變成(.8)了,omspatcher 出現以下錯誤 = = "
翻了一下MOS看到這篇文章
EM 13.4: OMSPatcher Commands Failing With Error "java.lang.NoClassDefFoundError: oracle/oplan/sdk/intg/OPlanIntgFactory" (Doc ID 2749759.1)
在說啥阿? 要我把舊的OPATCH 還原?
7.還原OPATCH,還真的可以了...
結論
後來嘗試做了兩件事
1.用rsync把舊的備份,將OPATCH差異的東西複製回去,也行得通
rsync -a -v --ignore-existing OPatchbk/ OPatch/
2.舊有的OPATCH 不要用mv的備份,要用cp的
以上可以推論java -jar 所產生的OPATCH 內容物並不完整,感覺像是去更新舊有的OPATCH
可以了! 以下才是我要的版本
OPATCH → .8
OMSPATCHER → .5.2