今天一個不是做軟件技術的同學問了我一個問題,就是怎么檢查oracle都安裝了哪些patch,我以前倒是沒有注意過,查了查資料,從9.2版開始,Oracle公司設計實現了個別補丁安裝管理工具opatch。opatch使用一個稱為inventory的系統數據結構(嚴格說是與oui共享inventory),集中管理所有已安裝的個別補丁,個別補丁的安裝和卸載都使用opatch命令完成,沖突檢測也由opatch在安裝時自動完成;提供列表命令可以很方便得到已安裝個別補丁的信息。10g(10.1和10.2)版本中,opatch作為一個標準工具,在軟件安裝時自動安裝。(安裝在$ORACLE_HOME/OPatch下。)而對于9.2版,需要從metalink下載opatch,無論數據庫是哪一個版本,系統中是否已經安裝opatch,在使用之前,應從metalink下載最新版本的opatch。很遺憾,由于系統實現的問題,10.2使用的opatch與之前版本(10.1和9.2)使用的opatch不兼容,不能混用。
參考文章:http://www.eygle.com/internal/Use.Opatch.apply.Interim.Patch.htm
我們在windows上安裝了測試環境oracle10g,路徑E:\oracle\product\10.2.0\db_1\OPatch,點擊執行opatch.bat,報錯“Oracle Home is not set. OPatch cannot proceed!”。在環境變量里面配置ORACLE_HOME路徑E:\oracle\product\10.2.0\db_1\,再次執行opatch.bat lsinventory,輸出:
Invoking OPatch 10.2.0.1.0
Oracle 中間補丁程序安裝程序版本 10.2.0.1.0
版權所有 (c) 2005, Oracle Corporation。保留所有權利。。
Oracle 主目錄?????? : E:\oracle\product\10.2.0\db_1
主產品清單: n/a
?? 從?????????? : C:\Program Files\Oracle\Inventory
OPatch 版本??? : 10.2.0.1.0
OUI 版本?????? : 10.2.0.1.0
OUI 位置????? : E:\oracle\product\10.2.0\db_1\oui
日志文件位置 : E:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\opatch-2007_Jul_
09_10-42-17-CST_Mon.log
Lsinventory Output file location : E:\oracle\product\10.2.0\db_1\cfgtoollogs\opa
tch\lsinv\lsinventory-2007_Jul_09_10-42-17-CST_Mon.txt
--------------------------------------------------------------------------------
已安裝的頂級產品 (1):
Oracle Database 10g????????????????????????????????????????????????? 10.2.0.1.0
此 Oracle 主目錄中已安裝 1 個產品。
此 Oracle 主目錄中未安裝任何中間補丁程序。