opatch 是ORACLE開發的用來安裝,卸載,檢測patch衝突、管理ORACLE全部已經安裝的補丁的工具,固然這是一個命令工具。opatch命令工具通常位於$ORACLE_HOME/OPatch/下,java
1: 查看opatch幫助信息sql
通常能夠用./opatch -help來查看幫助提示。不一樣版本的opatch的命令有所差別,經過help看到的信息估計有所出入。雖然opatch只有這幾個命令,可是每一個命令都有大量的參數,因此要徹底掌握,仍是須要花點時間去學習、實踐。數據庫
[oracle@DB-Server OPatch]$ ./opatch -help
Invoking OPatch 10.2.0.4.2oracle
Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation. All rights reserved.app
Usage: opatch [ -help ] [ -r[eport] ] [ command ]less
command := apply
lsinventory
napply
nrollback
rollback
query
version
prereq
utilide
<global_arguments> := -help Displays the help message for the command.
-report Print the actions without executing.工具
example:
'opatch -help'
'opatch apply -help'
'opatch lsinventory -help'
'opatch napply -help'
'opatch nrollback -help'
'opatch rollback -help'
'opatch prereq -help'
'opatch util -help'學習
OPatch succeeded.
ui
ORACLE 10g Release 2 官方文檔關於opatch介紹http://docs.oracle.com/cd/B19306_01/em.102/b16227/oui8_opatch.htm ,裏面關於opatch命令的介紹以下
Command |
Description |
apply |
Installs an interim patch. Refer to "apply Command" for more information. |
napply |
Installs n number of patches (hence napply). Refer to "napply Command" for more information. |
auto |
Applies Oracle Clusterware patches. Refer to "auto Command" for more information. |
lsinventory |
Lists what is currently installed on the system. Refer to "lsinventory Command" for more information. |
query |
Queries a given patch for specific details. Refer to "query Command" for more information. |
rollback |
Removes an interim patch. Refer to "rollback Command" for more information. |
nrollback |
Removes n number of patches (hence nrollback). Refer to "nrollback Command" for more information. |
version |
Prints the current version of the patch tool. Refer to "version Command" for more information. |
關於opatch命令的詳細文檔信息其實能夠查看 Users_Guide.txt & FAQ等
[oracle@DB-Server OPatch]$ ls
docs emdpatch.pl jlib opatch opatch.ini opatch.pl opatchprereqs
[oracle@DB-Server OPatch]$ cd docs/
[oracle@DB-Server docs]$ ls
FAQ Prereq_Users_Guide.txt Users_Guide.txt
2:查看opatch版本信息
[oracle@DB-Server OPatch]$ ./opatch version
Invoking OPatch 10.2.0.4.2
OPatch Version: 10.2.0.4.2
OPatch succeeded.
3:opatch 打補丁示例
以補丁p6074620_10204_Linux-x86-64.zip爲例
Setp 1: 下載解壓補丁文件
[oracle@DB-Server u04]$ unzip p6074620_10204_Linux-x86-64.zip
[oracle@DB-Server u04]$ cd 6074620/
Step 2: 關閉數據庫實例
Step 3:查看補丁README.txt文件,瞭解注意事項
[oracle@DB-Server 6074620]$ more README.txt
#
# WARNING: Failure to carefully read and understand these requirements may
# result in your applying a patch that can cause your Oracle Server to
# malfunction, including interruption of service and/or loss of data.
#
# If you do not meet all of the following requirements, please log an
# iTAR, so that an Oracle Support Analyst may review your situation. The
# Oracle analyst will help you determine if this patch is suitable for you
# to apply to your system. We recommend that you avoid applying any
# temporary patch unless directed by an Oracle Support Analyst who has
# reviewed your system and determined that it is applicable.
#
# Requirements:
#
# - You must have located this patch via a Bug Database entry
# and have the exact symptoms described in the bug entry.
#
# - Your system configuration (Oracle Server version and patch
# level, OS Version) must exactly match those in the bug
# database entry - You must have NO OTHER PATCHES installed on
# your Oracle Server since the latest patch set (or base release
# x.y.z if you have no patch sets installed).
#
# - [Oracle 9.2.0.2 & above] 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
#
# - [IBM AIX O/S & Java patches for Oracle 9.2]
# In order to apply java class updates to IBM AIX based systems using
# java_131, you must update your java if you are running a version prior
# to Service Refresh build date 20030630a. This is
# necessary to fix IBM Defect#60472.
#
# To identify which java build date you are on, enter the following
# command ;
#
# > $ORACLE_HOME/jdk/bin/java -fullversion
# ... example response ...
# java full version "J2RE 1.3.1 IBM AIX build ca131-20030630a"
#
# The string ends in the date format YYYYMMDD or YYYYMMDDa where 'a'
# indicates an updated release to the original build. You should always
# apply the latest AIX Java SDK 1.3.1 Service Update available from IBM.
# As a minimum, the above service refresh can be found under
# APAR IY47055. The signature for the updated JVM is ca131-20030630a.
# Information on the latest available fixes, as well as how to apply
# the APARs to your AIX systems, is available at the IBM Java site.
#
# If you are running AIX 5L, you can safely ignore any comment against
# the APAR that says (AIXV43 only). The APAR is applicable to
# both AIX 4.3 and AIX 5L.
#
# Once you have updated your java installation you need to copy these
# updated files to Oracle's copies in $ORACLE_HOME/jdk.
# As the Oracle owner, simply issue the following commands;
#
# > cd /usr/java131
# > cp -fpR * $ORACLE_HOME/jdk
#
#
# If you do NOT meet these requirements, or are not certain that you meet
# these requirements, please log an iTAR requesting assistance with this
# patch and Support will make a determination about whether you should
# apply this patch.
#
#-------------------------------------------------------------------------
# Interim Patch for Base Bugs: 6074620
#-------------------------------------------------------------------------
#
# DATE: Thu Jan 29 22:43:53 2009
# -------------------------------
# Platform Patch for : Linux x86-64
# Product Version # : 10.2.0.4
# Product Patched : RDBMS
#
# Bugs Fixed by this patch:
# -------------------------
# 6074620:LGWR UNCONDITIONALLY WRITES TO TRACE FILE
#
# Patch Installation Instructions:
# --------------------------------
# To apply the patch, unzip the PSE container file:
#
# p6074620_10204_Linux-x86-64.zip
#
# Set your current directory to the directory where the patch
# is located:
#
# % cd 6074620
#
# Ensure that the directory containing the opatch script appears in
# your $PATH; then enter the following command:
#
# % opatch apply
#
# Patch Special Instructions:
# ---------------------------
# Make sure all instances running under the ORACLE_HOME being patched
# are cleanly shutdown before installing this patch. Also ensure that
# the tool used to terminate the instance(s) has exited cleanly.
#
# If the Oracle inventory is not setup correctly this utility will
# fail. To check accessibility to the inventory you can use the
# command
#
# % opatch lsinventory
#
# If you have any problems installing this PSE or are not sure
# about inventory setup please call Oracle support.
#
# Patch Deinstallation Instructions:
# ----------------------------------
# Use the following command:
#
# % cd 6074620
# % opatch rollback -id 6074620
#
Setp 4: opatch打補丁
[oracle@DB-Server 6074620]$ $ORACLE_HOME/OPatch/opatch apply
Invoking OPatch 10.2.0.4.2
Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/10.2.0/db_1
Central Inventory : /u01/app/oracle/oraInventory
from : /etc/oraInst.loc
OPatch version : 10.2.0.4.2
OUI version : 10.2.0.4.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui
Log file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2014-04-11_17-02-01PM.log
ApplySession applying interim patch '6074620' to OH '/u01/app/oracle/product/10.2.0/db_1'
Running prerequisite checks...
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/10.2.0/db_1')
Is the local system ready for patching? [y|n]
Could not recognize input. Please re-enter.
y
User Responded with: Y
Backing up files and inventory (not for auto-rollback) for the Oracle Home
Backing up files affected by the patch '6074620' for restore. This might take a while...
Backing up files affected by the patch '6074620' for rollback. This might take a while...
Patching component oracle.rdbms, 10.2.0.4.0...
Updating archive file "/u01/app/oracle/product/10.2.0/db_1/lib/libserver10.a" with "lib/libserver10.a/kcrr.o"
Running make for target ioracle
ApplySession adding interim patch '6074620' to inventory
Verifying the update...
Inventory check OK: Patch ID 6074620 is registered in Oracle Home inventory with proper meta-data.
Files check OK: Files from Patch ID 6074620 are present in Oracle Home.
The local system has been patched and can be restarted.
OPatch succeeded.
5:opatch 查看補丁狀況
[oracle@DB-Server OPatch]$ ./opatch lsinventory
Invoking OPatch 10.2.0.4.2
Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/10.2.0/db_1
Central Inventory : /u01/app/oracle/oraInventory
from : /etc/oraInst.loc
OPatch version : 10.2.0.4.2
OUI version : 10.2.0.4.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui
Log file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2014-04-11_17-04-41PM.log
Lsinventory Output file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/lsinv/lsinventory2014-04-11_17-04-41PM.txt
--------------------------------------------------------------------------------
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
There are 2 products installed in this Oracle Home.
Interim patches (1) :
Patch 6074620 : applied on Fri Apr 11 17:03:10 CST 2014
Created on 29 Jan 2009, 22:44:17 hrs US/Pacific
Bugs fixed:
6074620
--------------------------------------------------------------------------------
OPatch succeeded.
6:opatch 卸載補丁
[oracle@DB-Server OPatch]$ ./opatch rollback -id 9264253
Invoking OPatch 10.2.0.4.2
Oracle Interim Patch Installer version 10.2.0.4.2
Copyright (c) 2007, Oracle Corporation. All rights reserved.
Oracle Home : /u01/app/oracle/product/10.2.0/db_1
Central Inventory : /u01/app/oracle/oraInventory
from : /etc/oraInst.loc
OPatch version : 10.2.0.4.2
OUI version : 10.2.0.4.0
OUI location : /u01/app/oracle/product/10.2.0/db_1/oui
Log file location : /u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/opatch/opatch2014-04-15_09-01-41AM.log
RollbackSession rolling back interim patch '9264253' from OH '/u01/app/oracle/product/10.2.0/db_1'
Running prerequisite checks...
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/10.2.0/db_1')
Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files affected by the patch '9264253' for restore. This might take a while...
Patching component oracle.rdbms, 10.2.0.4.0...
Updating archive file "/u01/app/oracle/product/10.2.0/db_1/lib/libserver10.a" with "lib/libserver10.a/ksu.o"
Running make for target ioracle
RollbackSession removing interim patch '9264253' from inventory
The local system has been patched and can be restarted.
OPatch succeeded.
參考資料:
http://docs.oracle.com/cd/B19306_01/em.102/b16227/oui8_opatch.htm
http://blog.csdn.net/tianlesoftware/article/details/5809526