在實際的工作和學習中,很多人都會發現有些Patch沒有setup安裝程序,本文中我們將詳細的介紹如何使用Oracle的opatch工具來進行安裝。
1、下載
Opatch的最新版本可以從Metalink下載,參考 Note:224346.1
(Opatch - Where Can I Find the Latest Version of Opatch?)
2、準備工作
# You must have Perl 5.00503 (or later)
# installed under the ORACLE_HOME, or elsewhere within the host
# environment. OPatch is no longer included in patches as of 9.2.0.2.
# Refer to the following link for details on Perl and OPatch:
# http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=189489.1
下載Optach后,上傳到$ORACLE_HOME
[/app/oracle/PRoduct/9205/OPatch]$chmod 755 *
[/app/oracle/product/9205/OPatch]$ opatch version
Invoking OPatch 10.2.0.1.6
OPatch Version: 10.2.0.1.6
OPatch succeeded.
[/app/oracle/product/9205/OPatch]$ opatch lsinventory
Invoking OPatch 10.2.0.1.6
Oracle Interim Patch Installer version 10.2.0.1.6
Copyright (c) 2007, Oracle Corporation. All rights reserved.
Oracle Home : /app/oracle/product/9205
Central Inventory : /app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OPatch version : 10.2.0.1.6
OUI version : 10.1.0.5.0
OUI location : /app/oracle/product/9205/oui
Log file location : /app/oracle/product/9205/cfgtoollogs/opatch/opatch2008-02-20_15-27-23PM.log
LsInventorysession failed:
The Oracle Home does not meet OUI version requirement.
This OPatch (version 10.2.0.1.6) detects OUI version 10.1.0.5.0 in the home.
It requires OUI version 10.2 or above.
OPatch failed with error code 73
原因:Opatch的版本過高。
下載新的Opatch,重新執行opatch lsinventory
[/app/oracle/product/9205/OPatch]$ opatch lsinventory
Oracle Interim Patch Installer version 1.0.0.0.57
Copyright (c) 2007 Oracle Corporation. All Rights Reserved..
We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com
Oracle Home : /app/oracle/product/9205
Oracle Home Inventory : /app/oracle/product/9205/inventory
Central Inventory : /app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OUI location : /app/oracle/product/9205/oui
OUI shared library : /app/oracle/product/9205/oui/lib/hpunix/liboraInstaller.sl
java location : /app/oracle/product/9205/jre/1.4.2/bin/java
Log file location : /app/oracle/product/9205/.patch_storage//*.log
Creating log file "/app/oracle/product/9205/.patch_storage/LsInventory__02-20-2008_15-42-43.log"
Result:
There is no Interim Patch
OPatch succeeded.
3、具體范例及遇到的問題
下面以打補丁5523799為例
[/app/oracle/product/9205/patches/5523799]$opatch apply
報錯:
Invoking fuser to check for active processes.
Invoking fuser on "/app/oracle/product/9205/bin/oracle"
Problems when checking for files that are active.
There were problems when checking for active processes on critical files.
The patch tool runs the command "fuser" to check that critical files are not in use. Make sure 'fuser' is available and executable on your PATH
ERROR: OPatch failed during pre-reqs check.
原因為fuser沒有執行權限,su - root
/usr/sbin#chmod +x fuser
重新命令,打Patch成功
用opatch lsinventory顯示打patch結果
[/app/oracle/product/9205/OPatch]$ opatch lsinventory
Oracle Interim Patch Installer version 1.0.0.0.57
Copyright (c) 2007 Oracle Corporation. All Rights Reserved..
We recommend you refer to the OPatch documentation under
OPatch/docs for usage reference. We also recommend using
the latest OPatch version. For the latest OPatch version
and other support related issues, please refer to document
293369.1 which is viewable from metalink.oracle.com
Oracle Home : /app/oracle/product/9205
Oracle Home Inventory : /app/oracle/product/9205/inventory
Central Inventory : /app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OUI location : /app/oracle/product/9205/oui
OUI shared library : /app/oracle/product/9205/oui/lib/hpunix/liboraInstaller.sl
Java location : /app/oracle/product/9205/jre/1.4.2/bin/java
Log file location : /app/oracle/product/9205/.patch_storage//*.log
Creating log file "/app/oracle/product/9205/.patch_storage/LsInventory__02-20-2008_16-11-49.log"
Result:
Installed Patch List:
=====================
1) Patch 5523799 applied on Wed Feb 20 16:11:14 GMT+08:00 2008
[ Base Bug(s): 5523799 ]
OPatch succeeded.
4、最后通過opatch查看數據庫各組件版本
[/app/oracle/product/9205/OPatch]$ opatch lsinventory –details
新聞熱點
疑難解答