Master Note For OPatch

Master Note For OPatch (Doc ID 293369.1)

Information Center: Patching and Maintaining Oracle Database Server/Client Installations (Doc ID 1351428.2)

General

Note 1561792.1 Patching Assistant: Oracle Database/Client
Note 1451669.1 FAQ : Understanding OPatch Tool And Patching
Note 224346.1 OPatch - Where Can I Find the Latest Version of OPatch?
Note 453495.1 FAQs on OPatch Version : 11.1
Note.334108.1 OPatch version 10.2 - FAQ

Note 433218.1 Why Should You Install 32-Bit JDK/JRE When You Have 64-Bit Oracle and Operating System ?
Note 1475077.1 Can the $ORACLE_HOME/jdk and $ORACLE_HOME/jdk/jre Directories Be Removed?
Note 1449674.1 Is It Supported to Update /Upgrade the Default JDK/JRE in Oracle Home?

Note 1446582.1 Frequently Asked Questions (FAQ): Patching Oracle Database Server
Note 865255.1 Best approach for Oracle database patching sequence to latest/required patchset along with CPU/PSU/any-other-one-off patch
Note 1526322.1 11g : Can Examples CD Be Installed After Interim Patches Are Applied On The Base Version?

Note 1530108.1 Oracle Database 12.1 : FAQ on Queryable Patch Inventory
Note 1376691.1 Composite Patches for Oracle Products [Video]
Note 761111.1 RDBMS Online Patching Aka Hot Patching
Note 1463390.1 Limits Of Online Patching

Note 563656.1 Different types of Patch Conflicts - Superset/Subset/Duplicate/Bug/File
Note 1321267.1 Database Patch conflict resolution
Note 1299688.1 Patch conflict resolution
Note 1061295.1 Patch Set Updates - One-off Patch Conflict Resolution

Note 418537.1 Significance of oraInst.loc When Installing Oracle Products and Applying Patches
Note 812874.1 Understanding and Diagnosing MISSING_COMPONENT and/or SKIPPING_COMPONENT messages during opatch apply
Note 551222.1 Why Does OPatch Backup The Same Library Multiple Times?
Note 283367.1 OPatch for Oracle Application Server 10g (10.1.2, 10.1.3, 10.1.4)
Note 403212.1 Location Of Logs For OPatch And OUI
Note 403218.1 Can You Delete $ORACLE_HOME/.patch_storage Directory?

Note 861152.1 Does  PSU Released For Oracle 10gR2 (10.2.0.4) ,11g R1 (11.1.0.7) and 11g R2( 11.2.0.1) Change The Database Version/Fifth Digit?

Note 1520299.1 Master Note For Oracle Database 12c Release 1 (12.1) Database/Client Installation/Upgrade/Migration Standalone Environment (Non-RAC)

How To

Note 298906.1 How To Repair A Corrupted Inventory For RDBMS
Note 556834.1 Steps To Recreate Central Inventory(oraInventory) In RDBMS Homes
Note 406037.1 Using opatch -report option, how to check for potential conflicts during patch apply without Database / Listener shutdown
Note 458485.1 How to find whether the one-off Patches will conflict or not?
Note 550522.1 How To Avoid Disk Full Issues Because OPatch Backups Take Big Amount Of Disk Space.
Note 749787.1 How to run opatch in silent mode?
Note 821263.1 How to confirm that a Critical Patch Update (CPU) has been installed in Linux / UNIX
Note 750350.1 How To Find The Description/Details Of The Bugs Fixed By A Patch Using OPatch?
Note 729384.1 How To Find If a Specific Patch Has Been Applied On Oracle 8i or 9.0.1 (or 9i R1)?
Note 470225.1 How To Use Truss With OPatch?
Note 312767.1 How to Rollback a Failed Interim Patch Installation
Note 966023.1 How to create a ocm response file for opatch silent installation.
Note 459360.1 How To Do The Prerequisite/Conflicts Checks Using OUI(Oracle Universal Installer) And OPatch Before Applying/Rolling Back A Patch
Note.739963.1 Using AIX commands genld, genkld and slibclean to avoid library file locking errors (libjox)
Note 1394537.1 How To Rollback An Online Patch If The Database Is Down Or Removed
Note 453399.1 How To Check if inventory.xml/comps.xml Or Any Oracle XML File Is Correct?
Note 1474666.1 How to apply OC4J patch (13705478) on RDBMS home
Note 1543697.1 How To Use MOS Patch Planner Via Enterprise Manager 12c To Check for and Resolve Patch Conflicts

Diagnostic Tools For OPatch

Note 1430571.1 Script To Collect OPatch Diagnostic Information For Unix Platform (opatchdiag.sh)
Note 1441309.1 Oneoffsdiag.sh:Script To Verify The Existance Of $ORACLE_HOME/inventory/oneoffs/PATCH_ID and also actions.xml and actions.xml inventory.xml in $ORACLE_HOME/inventory/oneoffs/PATCH_ID/etc/config

Known Issues

With Inventory

Note 229773.1 ALERT Applying Multiple Interim Patches Using OPatch Can Cause Inventory Corruption
Note 401454.1 opatch lsinventory Raises An OPatchException While Accessing O2O
Note 413829.1 OPatch Fails With 'Can not get details for given Oracle Home'
Note 417275.1 opatch lsinventory Reports `Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/transform/Source` When Executed Against 9.2.0.x
Note 417694.1 "OUI-67124:Inventory check failed: Patch ID is not registered in Oracle Home Inventory" while applying one-off patches using opatch
Note 431783.1 opatch lsinventory Result Shows: * Warning: no filemap entries available.
Note 795452.1 OPatch reports Error when using multiple oracle users
Note 864117.1 OPatch error: "Inventory load failed... OPatch cannot load inventory for the given Oracle Home."
Note 821550.1 opatch lsinventory Error: " Unable To Parse The Xml File"
Note 861677.1 OPatch error : "Unable to lock Central Inventory"
Note 864803.1 OPatch error: "Apply Session failed: ApplySession failed to prepare the system. No detail available."
Note 437026.1 ERROR :"OPatch cannot find a valid oraInst.loc file to locate Central Inventory.OPatch failed with error code 104"
Note 728417.1 OPatch Fails With "LsInventorySession failed:OracleHomeInventory gets null oracleHomeInfo"
Note 1086853.1 opatch lsinventory Reports "OUI-67076 : OracleHomeInventory was not able to create a lock file"
Note 876343.1 Patch conflict Error OUI-67301 on 11.1.0.7.0 due to one off in inventory
Note 1185246.1 OPatch Fails With "OUI-67028:Inventory load failed"
Note 1308866.1 OPatch Cannot Load Inventory For The Given Oracle Home
Note 1475147.1 OPatch - Failed to load the patch object. Possible causes are: OPatch failed with error code = 73 LsInventorySession failed:
Note 1456247.1 The opatch apply failing with OPatch failed with error code 39 :This patch requires some components to be installed in the home. Either the Oracle Home doesn't have the components or this patch is not suitable for this Oracle Home.

With Java

Note 332698.1 OPatch was not able to locate executable jar
Note 417372.1 OPatch Error " java.lang.UnsatisfiedLinkError: ... liboraInstaller.so: ... "
Note 808368.1 OPatch: cannot open shared object file.  Possible cause: architecture word width mismatch
Note 974371.1 After Installing The 11.2.0.1 32-bit Client Software On SPARC Solaris, OPatch and OUI Fail With ELFCLASS32 Errors For liboraInstaller.so
Note 417177.1 ERROR : "Java could not be located. OPatch cannot proceed!.OPatch failed with error code = 1"
Note 1474852.1 UTE011: Active tracepoint array length for JVM is 7559; should be 7577 Could not create JVM.
Note 1475894.1 OPatch commands error: JVMJ9VM019E Fatal error: Unable to find and initialize required class java/lang/ClassCircularityError

With Pre-Patching

Note 943436.1 opatch prereq checkapplicable Error: "Unable to create Patch Object. Check if the given patch location is correct"
Note 780858.1 OPatch Fails With `Prerequisite check "CheckActiveFilesAndExecutables" failed` And `Following executables are active : $ORACLE_HOME/lib/libnmemso.so`
Note 882932.1 Prerequisite check "CheckPatchApplicableOnCurrentPlatform" failed When Applied Generic Patch 8282506
Note 861507.1 PSU OPatch conflict check fails with "OPatch failed with error code 73"
Note 292946.1 OPatch Detecting Wrong Platform Id For Install Of Patch
Note 404473.1 OPatch Reports Error "OPatch detects your platform as... this patch...supports platforms: 0 (Generic Platform)"
Note 602334.1 OPatch Not Working, Reporting That It Is Obsolete
Note 729218.1 ERROR: "The Oracle Home does not meet OUI version requirement.OPatch failed with error code 73"
Note 257800.1 OPatch: Interim Patch  is holding the lock from this patch
Note 312926.1 opatch apply Gives: Can't Locate English.Pm In @Inc
Note 1050819.1 OPatch Reports Missing Component and Prerequisite Check "CheckApplicable" Failed
Note 869945.1 Zop-40: The Patch(es) Has Conflicts/Supersets With Other Patches
Note 1231223.1 OPatch Fails With Error Code 255
Note 747049.1 OPatch apply/rollback error: Prerequisite check "CheckActiveFilesAndExecutables" failed
Note 1475206.1 Patch requires OPatch version
Note 1629444.1 Opatch Fails Updating Archives with " No space left on device " Error

With Linking

Note 417319.1 Getting Warnings While Applying Patches on Linux x86-64
Note 457126.1 OPatch Aborted After Relink Fails On Target Ioracle.
Note 789053.1 Cannot find or open library file: -l pls10 when applying a patch with 10.2
Note 402945.1 While installing one-off Patch on AIX systems, getting several WARNING messages: OUI-67215 - TOC overflow and/or xlC: not found / xlC: Execute permission denied
Note 1446945.1 "ld: warning: symbol `_start' has differing types:" While Installing Or Patching 11gR2 On Oracle Solaris Platform
Note 1474762.1 WARNING:OUI-67200:Make failed to invoke "/usr/ccs/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME="....'ld: fatal: file //lib/prod/lib/v9/crti.o: open failed: Permission denied
Note 1467060.1 Relinking Oracle Home FAQ ( Frequently Asked Questions)
Note 1525333.1 Relink error on target iKfed while patching Oracle 11.2.0.3 Client with 11.2.0.3.5 PSU
Note 1534583.1 OPatch fails to Rollback Patch due to relink errors.
Note 1539887.1 Undefined first referenced symbol ld: fatal: symbol referencing errors.

With Post-Patching

Note 353150.1 OPatch Failing Validation Phase When Archiving Really Did Not Fail
Note 791187.1 OPatch Failing Validation Phase - OPatch versions 10.2.0.4.6 and 11.1.0.6.6
Note 1361802.1 opatch auto doesn't patch the RDBMS Home if no database exists

With SQLPatching (datapatch)

Note 1599479.1 Datapatch errors at "SYS.DBMS_QOPATCH"
Note 1632818.1 Datapatch may fail while patching a RAC+PDB environment

Miscellaneous

Note 799883.1 OPatch error: OUI-67160 Unexpected end of ZLIB input stream
Note 739815.1 OUI-67294 Warning During opatch apply
Note 553244.1 WARNING MESSAGE "OUI-67078" and "OUI-67620" from OPatch when applying 10.2.X patches
Note 751107.1 ERROR: "Copy Action: Source file does not exist.'oracle.rdbms, Cannot copy file'"
Note 553263.1 OPatch Reports 'libclntsh.so.10.1 not removed. Text file busy'
Note 563356.1 OPatch error 'file not found' message on 11.1.0.6 32-bit
Note 1136432.1 OPatch fails with JVMXM008
Note 1066937.1 Apply Patch Fails with 'Patch ID is null' and Error Code 73
Note 1475147.1 OPatch - Failed to load the patch object. Possible causes are: OPatch failed with error code = 73 LsInventorySession failed:
Note 1108834.1 OUI-67073:ApplySession failed: Patch ID is null occurred when applying patch 9352179
Note 803097.1 OUI-67200:Make failed problem while applying a Patch
Note 730754.1 OPatch Gives Exception In Thread "Main" Unsatisfiedlinkerror: Haltimpl
Note 603465.1 OPatch Fails With "Jar not applied ... to $ORACLE_HOME/jdbc/lib/classes12.zip... 'invalid entry compressed size (expected x but got y bytes)'"
Note 1474874.1 opatch apply Fails - Jar Action: Source File "// '': Cannot update file '///' with '//'
Note.1085753.1 OPatch Failing With Error Code 74 While Applying PSU
Note 402945.1 While installing one-off Patch on AIX systems, getting several WARNING messages: OUI-67215 - TOC overflow and/or xlC: not found / xlC: Execute permission denied
Note 1055397.1 opatch napply Hanging
Note 1244414.1 OPatch throws: Archive Action: Source file "$ORACLE_HOME/.patch_storage/........." does not exist.
Note 1269454.1 OPatch Failed With Error Code 73 Because Session Is Not Able to Create a Directory
Note 1355040.1 Online patching errors: use "OPatch util enableOnlinePatch" to add the SID(s)
Note 1462303.1 OPatch Fails With Error "No such file or directory"
Note 1331900.1 Prerequisite Check "CheckRollbackable" On Auto-rollback Patches Failed
Note 1474805.1 OPatch Log Shows - INFO:Skip patch patch number from list of patches to apply: This patch is not needed.
Note 1476964.1 OPatch Logging "Generic Conflict" Between Sub-Patches Of A Composite Patch
Note 1468097.1 Argument (s) Error ... Illegal File Format For Composite Patch. There Is No Composite.xml File.
Note 1435438.1 Multiple OUI Messages In OPatch Log : OUI-67161, OUI-67085, OUI-67047, OUI-67049, OUI-67048, OUI-67085 and OUI-6705
Note  244241.1 Rolling Patch - OPatch Support for RAC

Windows Specific

Note 390761.1 Using OPatch On Windows When ORACLE_HOME Contains Space Characters
Note 416318.1 HOW TO Use Process Explorer to obtain a list of DLLs loaded by a Windows process
Note 418479.1 Files in Use errors, when running OPatch to apply patches on Windows
Note 791005.1 OPatch permissions problem on 64-bit windows 2008 and Oracle 10.2.0.3 and 10.2.0.4
Note 1446273.1 OPatch 11.2.0.3.0 LOCKS SRVM.JAR WHEN APPLYING ANY 11.2.0.3 BUNDLE PATCH ON WINDOWS X64
Note 1530132.1 Applied Bundle patch 16 (16167942/16167941) but opatch lsinventory incorrectly showing as Bundle patch 15.
Note 1568694.1 OPatch throwing "Unable to lock Central Inventory" on Windows 7

Using My Oracle Support Effectively

Note 732697.1 What Information Oracle Support Need To Work On OPatch Service Requests?
Note 735257.1 What information Oracle Support needs to work on Critical Patch Update (CPU) Installation Service Requests
Note 868955.1 My Oracle Support Health Checks Catalog
Note 166650.1 Working Effectively With Global Customer Support
Note 199389.1 Escalating Service Requests with Oracle Support Services
Note 1194734.1 Where do I find that on My Oracle Support (MOS) [Video]

Generic Links


Note 1454618.1 Quick Reference To Patch Numbers For Database PSU, CPU And Bundle Patches
Note 1119703.1 Database PSU-CPU Cross-Reference List
Note 854428.1 Patch Set Updates for Oracle Products
Note 268895.1 Oracle Database Server Patchset Information, Versions: 8.1. 7 to 11.2.0
Note 161549.1 Oracle Database Server and Networking Patches for Microsoft Platforms
Note 161818.1 Oracle Database (RDBMS) Releases Support Status Summary

===============================================================

FAQ : Understanding OPatch Tool And Patching (Doc ID 1451669.1)


APPLIES TO:

Oracle Universal Installer - Version 1.0.0.0.62 to 11.2.0.3
Information in this document applies to any platform.
***Checked for relevance on 14-Oct-2013***

PURPOSE

 Frequently Asked Questions to understand OPatch tool and Patching

QUESTIONS AND ANSWERS

Introduction to Opatch

Opatch is Oracle supplied utility .
OPatch is used for patching Oracle software.
OPatch is a java based utility that allow the application and rolling back of interim patches to an Oracle product
The program has sub-commands that may take arguments.

 Getting and using Opatch utility

OPatch is PLATFORM specific.
Release is based on Oracle Universal Installer version
The latest opatch utility can be downloaded via patch number 6880880 from My Oracle Support .
Downloaded Patch to be unzipped in OH , which will create a directory $ORACLE_HOME/Opatch
Execute the following command  to verify the version
        $ORACLE_HOME/Opatch/opatch version

 Main functionality of Opatch    

Applying the patch
Rollback the patch
Conflict check
Report the installed components and patches

 Set PATH environment variable

Windows: set PATH=%ORACLE_HOME%/OPatch:%PATH%
Unix: export PATH=$ORACLE_HOME/OPatch:$PATH

 Opatch prerequisite checks

Check ORACLE_HOME  environment variable
Check for JRE / JDK
Check for Oracle Universal Installer and OPatch Version Compatibility
Checks for PERL( specific to 9i/10gR1 )
Check for Patch Applicable on Operating System
Check for System Space
Check for System Commands, which are used for system updates    e.g. fuser , ar , ld …etc..

Architecture of Inventories

Inventory Pointer file
Default Location : /etc/oraInst.loc or /var/opt/oracle/oraInst.loc ( for most UNIX systems )
Gives the location of central inventory

Central Inventory
Location given by Inventory pointer file.
As per OFA architecture, $ORACLE_BASE/oraInventory
Critical File : - /ContentsXML/inventory.xml
Provides information about Oracle installations present on system
On Windows : C:\Program Files\Oracle\Inventory

Local Inventory( Oracle Home inventory )
Location : $ORACLE_HOME/inventory
Critical File : - $ORACLE_HOME/inventory/ContentsXML/comps.xml
Contains list of installed components/interim patches in this particular Oracle Home 

Environment variables used by OPatch

ORACLE_HOME : This variable must point to a valid Oracle Home and matches the value when that Oracle Home was installed.
OPATCH_DEBUG: Setting this variable to "true" sets the log level to debug.
OPATCH_PLATFORM_ID : If this variable to set to some numeric value, then OPatch skips platform ID check and assumes the platform ID to be the one specified here.
OPATCH_NO_FUSER: Setting this variable to "true" informs the OPatch to skip the check for active executables.
PATH: This variable must have a valid Opatch utility location included in it. 

Most common commands available with OPatch

$ 'opatch apply ...' is to apply a patch
$ 'opatch rollback ...' is to roll back a patch
$ 'opatch lsinventory' is to show inventory on an Oracle Home
$ 'opatch query ...' is to query a given patch from specific details
$ 'opatch version' is to show the version of the OPatch being used
$ 'opatch prereq ...' is to invoke some prerequiste checks
$ 'opatch util ...' is to invoke some independent utilities 

Opatch –help

Opatch -help command  : Invoking OPatch without arguments or with the 'help' sub-command returns the list of valid sub-commands to the user:
Usage: opatch [ -help ] [ -r[eport] ] [ command ]
opatch –help apply
opatch –help lsinventory
opatch –help nappl
opatch –help nrollback
opatch –help rollback
opatch –help query
opatch –help version
opatch –help prereq
opatch –help util 

Interim Patch Structure

Patch_Srructure

 Patch metadata

The patch metadata exist in the inventory.xml and action.xml files exists under //etc/config/

inventory .xml file have the following information :

Bug number
Unique Patch ID
Date of  patch year
Required and Optional components
OS platforms ID
Instance shutdown is required or not
Patch can be applied online or not


actions.xml file have the following information :

File name and it location to which it need to be copied
Components need to be re-linked
Information about the optional and required components 

 Custom Scripts (pre and post )

Pre-processing and post-processing scripts that need to be run before and after patching .
It  is under /custom/scripts.
It is mainly to do some specific task before and after applying the patch.
 Example of Pre :
 Change the permission of the library file before applying the patch .
 Check existence of some files and remove it before copying the files.
 Remove some file or folder before applying the patch .

Example of Post :
Reverting back the permission changes made by pre
Correct the permission and ownership of the file shipped with the patch 

Listing Installed Interim patches

lsinventory option reports what has been installed on the system for a particular Oracle home directory, or for all installations.
    
           Syntax : opatch lsinventory

   Commonly used lsinventory arguments

opatch lsinventory –invPtrLoc (Required when oraInst.loc is not at default  location )
opatch lsinventory -oh
opatch lsinventory -jre
opatch lsinventory -all
opatch lsinventory -detail 

Different option used while applying patch

General Syntax
      % cd
      % opatch apply

   Commonly used  'opatch apply' command line arguments
opatch apply force
opatch apply no_inventory
 opatch apply no_sysmode
opatch apply report

Npply specific options
opatch napply
opatch napply -id 1,2,3
opatch napply -skip_subset -skip_duplicate
opatch napply -phBaseFile 

Different Phase of applying the patch

Oracle Home discovery  : Configure and Validate Oracle Home info.
Prerequisite for apply  : Invoke prerequisites to see if patch can be applied.                           
Patch conflict detection for apply patch  : Check if any conflict with already installed patches in Oracle Home.
Prerequisite for auto rollback] : Check if the conflict patches are rollbackable.                           
Back up for restore : Back up  files for Oracle Home restore in case of patching error.                           
Patch conflict resolution for apply patch  : Rollback patch(es).                           
Back up for rollback : Back up  files for future patch rollback.                           
Patch Oracle Home for apply : Archive  library file(s) with  Object file(s);                                                                           
Do relink(s).                           
Update inventory for apply]  : Modify the inventory to record  patch. 

 Different options used while rolling back the patch

Rollback option removes a specific interim patch from appropriate Home Directory
      Syntax : opatch rollback -id

      Common rollback arguments
opatch rollback -id -local
 opatch rollback -id no_sysmod
 opatch rollback -id no_relink
 opatch rollback -id report 

Different phase of rolling back the patch

Oracle Home discovery : Configure and Validate Oracle Home info.
Prerequisite for rollback : Invoke prerequisites to see if patch can be rolled back.
Back up for restore : Back up files for Oracle Home restore in case of patching error.
Patch Oracle Home for rollback : Archive library file(s) with Object file(s)
Do relink(s).
Update inventory for rollback : Modify the inventory to record patch Patch_ID.
Deleting file and directories under .patch_storage 

 Backup Area used while Rollback

$ORACLE_HOME/.patch_storage

folder gets created under this for any interim patch patching attempt

  Contains the following :

Backup of system ( inventory and system files) which can be used to restore back to  good known prepatched state
Restore and manual rollback scripts
Copy of original patch, list of “make” commands…..
       Architecture different for 10gR2/11g and 9i/10gR1

  patch_storage also contains file – patch_locked / patch_free 

 Why .patch_storage is required

The .patch_storage directory is required to rollback the patch.
       Interim patch : To rollback interim patch using rollback –id  command
       subset patch : To rollback subset patch. CPU/PSU are cumulative patches
       conflicting patch : To rollback the conflicting patch

.patch_storage is also required to remove any changes made to the Oracle binaires by the failed patch application attempt. 

Location of Log files

10.2.0.x /11.1.0.x6/11.2.0.x
Directory Location :$ORACLE_HOME/cfgtoollogs/opatch
The filenames present in this directory have a format like :
     opatch-.log


9.2.0.x/10.1.0.x
 Directory Location : $ORACLE_HOME/.patch_storage/
 Fileformat: Apply__.log 

Importance of opatch_histroy.txt file

Maintains an index of the commands executed with OPatch.
It is helpful in finding the correct /required log file .

Sample Entry from opatch_history.txt

Date & Time : Wed Mar 28 12:44:19 GMT 2012
Oracle Home : /u01/app/oracle/product/11.2.0.1
OPatch Ver. : 11.2.0.3.0
Current Dir : /software/patches/9547706
Command   : apply –invPtrLoc /u01/app/oracle/product/11.2.0.1/oraInst.loc
Log File  : /u01/app/oracle/product/11.2.0.1/cfgtoollogs/opatch/9547706_Mar_28_2012_12_44_20/apply2012-03-28_12-44-19PM_1.log

 Logging & Tracing


Set env variable 'OPATCH_DEBUG=TRUE' before applying the patch
This is the maximum logging level supported by OPatch
Analyse the log files generated in respective locations to analyse the specific operation performed

Comments