Thursday, February 6, 2014

Opatch

OPatch is the Oracle database's Interim (one-off) Patch Installer.
If OPatch is not installed into your Oracle Home ($ORACLE_HOME/OPatch), you may need to download it from Metalink and install it yourself.

OPatch Utility Basic Syntax

The OPatch utility is located in the /OPatch directory. You can run it with various commands and options. The following command shows the syntax for the OPatch utility:
/opatch  [-options]
In the preceding command, the following variables are used:
  • command: The OPatch command, described in Table 1–1:
  • options: The command-line arguments for the command, which are described in the following sections.
Table 1-1 OPatch Commands
Command Description
apply Installs an interim patch.
napply Installs n number of patches (hence napply).
auto Applies Oracle Clusterware patches.
lsinventory Lists what is currently installed on the system.
query Queries a given patch for specific details.
rollback Removes an interim patch.
version Prints the current version of the patch tool.
To view additional information for any command, use the following command:
<Path_to_OPatch>/opatch command -help
If using Perl, use the following command:
perl opatch.pl command -help


$ cd $ORACLE_HOME/OPatch
$ opatch -help
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.


 Usage: opatch [ -help ] [ -r[eport] ] [ command ]

            command := auto
                       apply
                       lsinventory
                       napply
                       nrollback
                       rollback
                       query
                       version
                       prereq
                       util

      -help       Displays the help message for the command.
                 -report     Print the actions without executing.

 example:
   'opatch -help'
   'opatch auto -help'
   'opatch apply -help'
   'opatch lsinventory -help'
   'opatch napply -help'
   'opatch nrollback -help'
   'opatch rollback -help'
   'opatch prereq -help'
   'opatch util -help'
 
OPatch succeeded.
 

napply Command

This command applies interim patches to several Oracle homes at the same time.

Syntax

Use the following syntax for this command:

opatch napply [patch_location] [-id comma-separated list of patch IDs] -delay  ] [ -force ][-invPtrLoc  ][-jdk  ] [-jre  ] [ -local ] [-minimize_downtime ] [-no_bug_superset ] -no_inventory ] [-oh  ] [-retry ] [-silent ][-verbose ]  [-no_relink][-pre  [-opatch_pre_end] ][-post  [-opatch_post_end] ][-no_sysmod][ -property_file  ][ -local_node  ][ -remote_nodes  ][ -all_nodes ][ -phBaseFile  ][-skip_subset] [-skip_duplicate] [-report]

Examples


•The following example applies all patches under the  directory:
   opatch napply 

•The following example applies patches 1, 2, and 3 that are under the  directory:
   opatch napply  -id 1,2,3

auto Command

Ordinarily, a Clusterware patch requires several manual steps before and after you apply the patch, such as:
  • Stopping all dependent databases
  • Stopping Clusterware resources
  • Running pre-patch scripts
  • Shutting down Clusterware
  • Running post-patch scripts
  • Starting Clusterware and dependent databases
The opatch auto command automates all of these tasks for patching the CRS home and all other applicable RDBMS homes.
Syntax
Use the following syntax for this command:
/opatch auto [-rollback [patch_location]] [[patch_location]-oh <path_to_oracle_home1>,<path_to_oracle_home2>...] | [[patch_location]-och <path_to_crs_home>] ... where patch_location is path to the location for the patch. If you do not specify the patch location, the current directory is considered the patch location.
Options
Table 4–4 lists the options available for this command.
Table 4-4 Auto Command Options
Option Description
rollback Rolls back the patch rather than applying it.
oh Comma-separated Oracle homes to patch. The default is all applicable Oracle homes. Use this option to patch RDBMS homes where no database is registered.
och Path of the Oracle Clusterware home. Use this option to patch only Oracle Clusterware homes where Oracle Clusterware has been stopped already. Do not use this option for Oracle Clusterware with a CRS stack that is up.
Examples
  • The following example applies a patch with an unzipped patch location to all applicable Oracle homes on the system:
    opatch auto <patch_location>
    
  • The following example rolls back the patch from all the applicable Oracle homes on the system:
    opatch auto -rollback <patch_location>
    
  • The following example patches a selective list of Oracle homes:
    opatch auto <patch_location> -oh /tmp/oh1,/tmp/oh2,/tmp/oh3
    
  • The following example only patches the CRS home when the Oracle Clusterware stack is down.
    opatch auto <patch_location> -och /tmp/ora_crs_home
    

lsinventory Command

The lsinventory command reports what has been installed on the system for a particular Oracle home directory, or for all installations. The following syntax is used for this command:
<Path_to_OPatch>/opatch lsinventory [-all] [-bugs_fixed asc|desc] [-delay (value)] [-detail] [-invPrtLoc (path)] \ 
[-jre (location)] [-patch asc|desc] [-oh (Oracle Home location)] [-retry (value)]
Table 4–5 describes the options available for the lsinventory command.
Table 4-5 lsinventory Command Options
Option Description
all Reports the name and installation directory for each Oracle home directory found.
bugs_fixed Reports bugs fixed by installed patches in a tabular format. Besides the bugs fixed, the report also displays the installed patches, installed times, and bug descriptions. The fixed bugs are sorted per installed patch. The default display is patches in descending order based on installed time and ascending order of bugs within each patch. You can use 'asc' or 'desc' with this option to enforce sort order on bugs within each patch.
You can use this option with the patch or patch_id option to obtain sort orders with installed patches.
delay Specifies how many seconds to wait before attempting to lock the inventory in the case of a previous failure. You can use this option only if the -retry option is specified.
detail Reports the installed products and other details. You cannot use this option with the -all option.
invPtrLoc Specifies the location of the oraInst.loc file. This option is needed when the invPtrLoc option was used during installation. Oracle recommends using the default Central Inventory for a platform.
jre Specifies the location of a particular JRE (Java) to use instead of the default location under the Oracle home directory.
oh Specifies the Oracle home directory to use instead of the default directory.
patch Lists the patch IDs installed in the Oracle home in ascending (asc) or descending (desc) order, which is the default, based on installed time.
retry Specifies how many times the OPatch utility should try when there is an inventory lock failure.
-detail Option Example
The following example shows the output of opatch lsinventory -detail:
Oracle interim Patch Installer version 10.2.0.4.6
Copyright (c) 2009, Oracle Corporation.  All rights reserved..
Oracle Home       : /home/oracle_TEST/product/10.2.0/db_1
Central Inventory : /home/OUIHome_Opatch
   from           : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc
OPatch version    : 10.2.0.4.6
OUI version       : 10.2.0.4.6
OUI location      : /home/oracle_TEST/product/10.2.0/db_1/oui
Log file location : /home/oracle_
TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log
Patch history file: /scratch/userid/newDB/cfgtoollogs/opatch/opatch_history.txt
Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_
1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt
 --------------------------------------------------------------------------------
Installed Top-level Products (1):
Oracle Database 10g                                                  10.2.0.4.6
There are 1 products installed in this Oracle Home.
Installed Products (10):
Agent Required Support Files                                         10.2.0.4.6
Assistant Common Files                                               10.2.0.4.6
Bali Share                                                           1.1.18.0.0
Buildtools Common Files                                              10.2.0.4.6
Character Set Migration Utility                                      10.2.0.4.6
Database Configuration and Upgrade Assistants                        10.2.0.4.6
Database SQL Scripts                                                 10.2.0.4.6
Database Workspace Manager                                           10.2.0.4.6
DBJAVA Required Support Files                                        10.2.0.4.6
Enterprise Edition Options                                           10.2.0.4.6
There are 10 products installed in this Oracle Home.
Intermin patches (1) :
Patch  111000       : applied on Mon May 23 19:44:08 IST 2008
Created on 27 Jul 2007, 05:43:46 hrs PST8PDT
Bugs fixed: 111000
Files Touched:
/qmtest.o --> ORACLE_HOME/lib/libserver11.a
libmapsym.so --> ORACLE_HOME/lib/libmapsym.so
ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/ioracle
/oracle/xml/jaxb/orajaxb.class --> ORACLE_HOME/lib/xml.jar
Patch Location in Inventory:
/home/oracle_TEST/product/10.2.0/db_1/inventory/oneoffs/111000
Patch Location in Storage area:
/home/oracle_TEST/product/10.2.0/db_1/.patch_storage/111000_Jul_27_2007_05_43_46
 --------------------------------------------------------------------------------
 OPatch succeeded.
-bugs_fixed Option Example
The following example shows the output of opatch lsinventory -bugs_fixed asc:
Oracle interim Patch Installer version 10.2.0.4.6
Copyright (c) 2009, Oracle Corporation.  All rights reserved..
Oracle Home       : /home/oracle_TEST/product/10.2.0/db_1
Central Inventory : /home/OUIHome_Opatch
   from           : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc
OPatch version    : 10.2.0.4.6
OUI version       : 10.2.0.4.6
OUI location      : /home/oracle_TEST/product/10.2.0/db_1/oui
Log file location : /home/oracle_
TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log
Patch history file: /scratch/userid/newDB/cfgtoollogs/opatch/opatch_history.txt
Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_
1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt
 --------------------------------------------------------------------------------
Installed Top-level Products (2):
 
Oracle Database 10g                                                  10.2.0.4.6
Oracle Database 10g Release 2 Patch Set 2                            10.2.0.4.6
There are 2 products installed in this Oracle Home.
 
 
List of Bugs fixed by Installed Patches:
 
Bug        Fixed by          Installed at                   Description
           Patch
---        --------          ------------                   -----------
 
1000000    6079591   Mon Oct 13 02:03:42 PDT 2008   test bug
6079591    6079591   Mon Oct 13 02:03:42 PDT 2008   MLR BUG FOR 10.2.0:.3 FOR CPU:JUL2:007
300500     300500    Fri Sep 05 02:25:34 PDT 2008   Demo bug for patching files
300501     300500    Fri Sep 05 02:25:34 PDT 2008   Demo bug for patching files
300502     300500    Fri Sep 05 02:25:34 PDT 2008   Demo bug for patching files
6121268    6121268   Tue Aug 19 23:32:33 PDT 2008   DB-10.2.0.3-MOLECULE-007-CPUJUL2007
6121266    6121266   Tue Aug 19 23:32:27 PDT 2008   DB-10.2.0.3-MOLECULE-018-CPUJUL2007
6121264    6121264   Tue Aug 19 23:32:22 PDT 2008   DB-10.2.0.3-MOLECULE-017-CPUJUL2007
6121263    6121263   Tue Aug 19 23:32:14 PDT 2008   DB-10.2.0.3-MOLECULE-016-CPUJUL2007
.....
.....
(Middle section of report is intentionally excluded.)
.....
.....
6121248    6650096   Tue Feb 12 05:50:48 PST 2008   DB-10.2.0.3-MOLECULE-015-CPUJUL2007
6650096    6650096   Tue Feb 12 05:50:48 PST 2008   DB-10.2.0.3-MOLECULE-036-CPUJAN2008
6121247    6650095   Tue Feb 12 05:50:41 PST 2008   DB-10.2.0.3-MOLECULE-006-CPUAPR2007
6397946    6650095   Tue Feb 12 05:50:41 PST 2008   DB-10.2.0.3-MOLECULE-031-CPUOCT2007
6650095    6650095   Tue Feb 12 05:50:41 PST 2008   DB-10.2.0.3-MOLECULE-035-CPUJAN2008
6650081    6650081   Tue Feb 12 05:50:35 PST 2008   DB-10.2.0.3-MOLECULE-034-CPUJAN2008
6646853    6646853   Tue Feb 12 05:50:28 PST 2008   MLR BUG FOR 10.2.0.3 FOR CPUJAN2008
6452863    6452863   Tue Feb 12 05:50:12 PST 2008   TRACKING BUG FOR CPUJUL2007
 --------------------------------------------------------------------------------
 OPatch succeeded.
-patch desc Option Example
The following example shows the output of opatch lsinventory -patch desc:
Oracle interim Patch Installer version 10.2.0.4.6
Copyright (c) 2009, Oracle Corporation.  All rights reserved..
Oracle Home       : /home/oracle_TEST/product/10.2.0/db_1
Central Inventory : /home/OUIHome_Opatch
   from           : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc
OPatch version    : 10.2.0.4.6
OUI version       : 10.2.0.4.6
OUI location      : /home/oracle_TEST/product/10.2.0/db_1/oui
Log file location : /home/oracle_
TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log
Patch history file: /scratch/userid/newDB/cfgtoollogs/opatch/opatch_history.txt
Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_
1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt
 --------------------------------------------------------------------------------
Interim patches (39) :
Patch  6079591      : applied on Mon Oct 13 02:03:42 PDT 2008
   Created on 21 Jun 2007, 03:42:18 hrs PST8PDT
   Bugs fixed:
     6079591, 1000000
 
Patch  300500       : applied on Fri Sep 05 02:25:34 PDT 2008
   Created on 07 Nov 2005, 04:57:14 hrs US/Eastern
   Bugs fixed:
     300500, 300501, 300502
 --------------------------------------------------------------------------------
 OPatch succeeded.
-detail Option Example
The following example shows the output of opatch lsinventory -detail:
Oracle interim Patch Installer version 10.2.0.4.6
Copyright (c) 2009, Oracle Corporation.  All rights reserved..
Oracle Home       : /home/oracle_TEST/product/10.2.0/db_1
Central Inventory : /home/OUIHome_Opatch
   from           : /home/oracle_TEST/product/10.2.0/db_1/oraInst.loc
OPatch version    : 10.2.0.4.6
OUI version       : 10.2.0.4.6
OUI location      : /home/oracle_TEST/product/10.2.0/db_1/oui
Log file location : /home/oracle_
TEST/product/10.2.0/db1/cfgtoollogs/opatch/opatch-2008_May_25_11-09-34-IST_Wed.log
Lsinventory Output file location : /home/oracle_TEST/product/10.2.0/db_
1/cfgtoollogs/opatch/lsinv/lsinventory-2008_May_25_11-09-34-IST_Wed.txt
 --------------------------------------------------------------------------------
Installed Top-level Products (1):
Oracle Database 10g                                                  10.2.0.4.6
There are 1 products installed in this Oracle Home.
Installed Products (10):
Agent Required Support Files                                         10.2.0.4.6
Assistant Common Files                                               10.2.0.4.6
Bali Share                                                           1.1.18.0.0
Buildtools Common Files                                              10.2.0.4.6
Character Set Migration Utility                                      10.2.0.4.6
Database Configuration and Upgrade Assistants                        10.2.0.4.6
Database SQL Scripts                                                 10.2.0.4.6
Database Workspace Manager                                           10.2.0.4.6
DBJAVA Required Support Files                                        10.2.0.4.6
Enterprise Edition Options                                           10.2.0.4.6
There are 10 products installed in this Oracle Home.
Intermin patches (1) :
Patch  102000       : applied on Mon May 23 19:44:08 IST 2008
Created on 27 Jul 2007, 05:43:46 hrs PST8PDT
Bugs fixed: 102000
Files Touched:
/qmtest.o --> ORACLE_HOME/lib/libserver10.a
libmapsym.so --> ORACLE_HOME/lib/libmapsym.so
ins_rdbms.mk --> ORACLE_HOME/rdbms/lib/ioracle
/oracle/xml/jaxb/orajaxb.class --> ORACLE_HOME/lib/xml.jar
Patch Location in Inventory:
/home/oracle_TEST/product/10.2.0/db_1/inventory/oneoffs/102000
Patch Location in Storage area:
/home/oracle_TEST/product/10.2.0/db_1/.patch_storage/102000_Jul_27_2007_05_43_46
 --------------------------------------------------------------------------------
 OPatch succeeded.

query Command

The query command queries a specific patch for specific details. It provides information about the patch and the system being patched. The following syntax is used for this command:
/opatch query [-all] [-jre (Location)] [-jdk (Location)]\
 [-oh (Location)] [patch_location]

Query Command Options
Option Description
all Retrieves all information about a patch. This is equivalent to setting all options.
jdk Specifies the location of a particular JDK (jar) to use instead of the default location under the Oracle home directory. You cannot use the -jdk and -jre options together.
jre Specifies the location of a particular JRE (Java) to use instead of the default location under the Oracle home directory. You cannot the use -jdk and -jre options together.
oh Specifies the Oracle home directory to use instead of the default directory.

rollback Command

The rollback command removes a specific interim patch from the appropriate Oracle home directory. The following syntax is used for this command:
/opatch rollback -id (patch_id) [-ph (patch directory)] \
[-delay] (value) [-invPtrLoc (path)] [-jdk (location)] [-jre (location)]\
[-local] [-oh (Oracle Home location)] \
[-post (options to be passed into post) [-opatch_post_end]] \
[-pre (options to be passed into pre) [-opatch_pre_end]] [-retry (value)] \
[-silent] [-verbose] [-no_relink] [-no_sysmod][-remote_nodes (node1,node2)][-local_node (node_name)]

rollback Command Options
Option Description
delay Specifies how many seconds the OPatch utility should wait before attempting to lock the inventory again, if you use the -retry option with the apply command.
id Indicates the patch to be rolled back. Use the -lsinventory command to display all patch identifiers. To successfully roll back a patch, you must supply the patch identifier.
invPtrLoc Specifies the location of the oraInst.loc file. This option is needed when the -invPtrLoc option is used during installation. Oracle recommends using the default Central Inventory for a platform.
jdk Specifies the location of a particular JDK (jar) to use instead of the default location under the Oracle home directory.
jre Specifies the location of a particular JRE (Java) to use instead of the default location under the Oracle home directory.
local Specifies that the OPatch utility should roll back and update the local node and update the inventory of the local node. It does not propagate the patch or inventory update to other nodes.
You can use this option on Oracle Real Application Clusters environments and non-clustered environments. If you shut down an entire cluster before patching, you can use this argument for non-rolling patches.
local_node Specifies to the OPatch utility that this is the local node for the cluster.
You can use this option on Oracle Real Application Clusters environments.
no_sysmod Specifies that the OPatch utility need not update the files in the system. It will only update the inventory.
no_relink This option does not perform any make operation in the patch. You can use it during multiple patch removals and to perform the compilation step only once.
oh Specifies the Oracle home directory to use instead of the default directory.
opatch_post_end Marks the end of the post option. This option is used with the post option. If you do not use this argument, everything after post is passed into post.
opatch_pre_end Marks the end of the pre options. This option is used with the pre option. If you do not use this argument, everything after pre is passed into pre.
ph Specifies the valid patch directory area. The utility uses the command types found in the patch directory to identify which commands are used for the current operating system.
post Specifies the parameters to be passed inside the post script besides the standard parameters.
pre Specifies the parameters to be passed inside the pre script besides the standard parameters.
remote_nodes Specifies to the OPatch utility the list of remote nodes.
You can use this option on Oracle Real Application Clusters environments.
report Prints the action to the screen without executing it.
retry Specifies how many times the OPatch utility should try in case of an inventory lock failure.
silent Suppresses user interaction and defaults any answers to "yes". The Oracle Real Application Clusters setup does not support this option.
verbose Prints output to the screen as well as to the log file.

version Command

The version command shows the current version number of the OPatch utility. The following syntax is used for this command:
/opatch version

Followers