Edit D:\rfid\database\database\doc\em.112\e12255\oui7_opatch.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" /> <meta http-equiv="Content-Language" content="en" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta name="robots" content="all" scheme="http://www.robotstxt.org/" /> <meta name="generator" content="Oracle DARB XHTML Converter (Mode = document) - Version 5.1.1 Build 005" /> <meta name="Date" content="2010-01-20T15:53:43Z" /> <meta name="doctitle" content="Oracle® Universal Installer and OPatch User's Guide 11g Release 2 (11.2) for Windows and UNIX" /> <meta name="partno" content="E12255-08" /> <meta name="docid" content="OUICG" /> <link rel="Start" href="../../index.htm" title="Home" type="text/html" /> <link rel="Copyright" href="../../dcommon/html/cpyr.htm" title="Copyright" type="text/html" /> <link rel="Stylesheet" href="../../dcommon/css/blafdoc.css" title="Default" type="text/css" /> <script type="text/javascript" src="../../dcommon/js/doccd.js"> </script> <link rel="Contents" href="toc.htm" title="Contents" type="text/html" /> <link rel="Index" href="index.htm" title="Index" type="text/html" /> <link rel="Prev" href="oui6_cloning.htm" title="Previous" type="text/html" /> <link rel="Next" href="oui8_internationalization.htm" title="Next" type="text/html" /> <link rel="alternate" href="../e12255.pdf" title="PDF version" type="application/pdf" /> <title>Patching Oracle Software with OPatch</title> </head> <body> <div class="header"> <div class="zz-skip-header"><a name="top" id="top" href="#BEGIN">Skip Headers</a></div> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> <tr> <td align="left" valign="top"><b>Oracle® Universal Installer and OPatch User's Guide<br /> 11<i>g</i> Release 2 (11.2) for Windows and UNIX</b><br /> Part Number E12255-08</td> <td valign="bottom" align="right"> <table class="icons oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="245"> <tr> <td align="center" valign="top"><a href="../../index.htm"><img width="24" height="24" src="../../dcommon/gifs/doclib.gif" alt="Go to Documentation Home" /><br /> <span class="icon">Home</span></a></td> <td align="center" valign="top"><a href="../../nav/portal_booklist.htm"><img width="24" height="24" src="../../dcommon/gifs/booklist.gif" alt="Go to Book List" /><br /> <span class="icon">Book List</span></a></td> <td align="center" valign="top"><a href="toc.htm"><img width="24" height="24" src="../../dcommon/gifs/toc.gif" alt="Go to Table of Contents" /><br /> <span class="icon">Contents</span></a></td> <td align="center" valign="top"><a href="index.htm"><img width="24" height="24" src="../../dcommon/gifs/index.gif" alt="Go to Index" /><br /> <span class="icon">Index</span></a></td> <td align="center" valign="top"><a href="../../dcommon/html/feedback.htm"><img width="24" height="24" src="../../dcommon/gifs/feedbck2.gif" alt="Go to Feedback page" /><br /> <span class="icon">Contact Us</span></a></td> </tr> </table> </td> </tr> </table> <hr /> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> <tr> <td align="left" valign="top"> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="98"> <tr> <td align="center" valign="top"><a href="oui6_cloning.htm"><img width="24" height="24" src="../../dcommon/gifs/leftnav.gif" alt="Go to previous page" /><br /> <span class="icon">Previous</span></a></td> <td align="center" valign="top"><a href="oui8_internationalization.htm"><img width="24" height="24" src="../../dcommon/gifs/rightnav.gif" alt="Go to next page" /><br /> <span class="icon">Next</span></a></td> </tr> </table> </td> <td align="right" valign="top" style="font-size: 90%"><a href="../e12255.pdf">View PDF</a></td> </tr> </table> <a name="BEGIN" id="BEGIN"></a></div> <div class="IND"><!-- End Header --><a id="CEGCJGJD" name="CEGCJGJD"></a> <h1 class="chapter"><span class="secnum">7</span> <a name="OUICG305" id="OUICG305"></a> Patching Oracle Software with OPatch</h1> <p>OPatch is an Oracle-supplied utility that assists you with the process of applying interim patches to Oracle's software and rolling back interim patches from Oracle's software. This chapter provides information on using OPatch for these purposes.This chapter includes the following topics:</p> <ul> <li> <p><a href="#CEGIAAAF">About OPatch</a></p> </li> <li> <p><a href="#CEGIJIDD">Requirements for OPatch</a></p> </li> <li> <p><a href="#CEGHCGJI">Prerequisite Checks for OPatch</a></p> </li> <li> <p><a href="#CEGHHBCH">Backup and Recovery Considerations for Patching</a></p> </li> <li> <p><a href="#CEGCCECH">OPatch Utility for OUI-based Oracle Homes</a></p> </li> <li> <p><a href="#CHDFGDJB">Standalone Patching</a></p> </li> <li> <p><a href="#CHDHBEEF">Schema Patching</a></p> </li> <li> <p><a href="#CHDCGJEB">Online Patching</a></p> </li> <li> <p><a href="#CHDECBJA">Oracle Real Application Clusters Patching</a></p> </li> <li> <p><a href="#CEGJEJCB">About Patch Conflicts</a></p> </li> <li> <p><a href="#g1292661">Problem Resolution</a></p> </li> </ul> <a id="CEGIAAAF" name="CEGIAAAF"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG306" id="OUICG306"></a>About OPatch</h2> <p><a id="sthref609" name="sthref609"></a>OPatch is a platform-dependent utility that requires installation of the Oracle Universal Installer.</p> <p>Patches are a small collection of files copied over to an existing installation. They are associated with particular versions of Oracle products. When applied to the correct version of an installed product, patches result in an upgraded version of the product.</p> <p>Interim patches are bug fixes available to customers in response to specific bugs. They require a particular base release or patchset to be installed before you can apply them. They generally address specific bugs for a particular customer. These patches are not versioned and are generally available in a future patchset as well as the next product release.</p> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref610" name="sthref610"></a> <h3 class="sect2"><a name="OUICG307" id="OUICG307"></a>OPatch Features</h3> <p><a id="sthref611" name="sthref611"></a>The OPatch 11.2 utility has the following features:</p> <ul> <li> <p><span class="bold">Scalability —</span> OPatch is scalable to support a large number of patches.</p> </li> <li> <p><span class="bold">Reliability —</span> OPatch is reliable and protects the Oracle home and inventory. It can bring back the Oracle home to a stable state from patch application failures. It can also easily detect patch conflicts.</p> </li> <li> <p><span class="bold">Availability —</span> Opatch's online patching improves system availability by enabling database patches to be applied without needing to shut down databases.</p> </li> <li> <p><span class="bold">Portability —</span> OPatch is compatible with all operating systems for which Oracle releases software.</p> </li> <li> <p><span class="bold">Robust —</span> OPatch is very robust. It is very easy to apply a patch as well as remove it.</p> </li> <li> <p><span class="bold">Easy to maintain —</span> OPatch is easy to maintain and is also extensible.</p> </li> <li> <p><span class="bold">Support for Silent Operation —</span> OPatch supports silent operation. This mode enables you to run the software without any user interaction.</p> </li> <li> <p><span class="bold">Support for Oracle Real Application Clusters —</span> OPatch supports Oracle Real Application Clusters and works well in that setup. It is easy to extend it to Enterprise Manager Grid Control.</p> </li> <li> <p><span class="bold">Easy to debug —</span> OPatch has various levels of logging and tracing mechanisms. It also has a debug option that helps to easily diagnose software problems.</p> </li> </ul> <p>OPatch supports the following tasks:</p> <ul> <li> <p>Applying an interim patch.</p> </li> <li> <p>Rolling back the application of an interim patch.</p> </li> <li> <p>Detecting a conflict when applying an interim patch after previous interim patches have been applied. It also suggests the best options to resolve a conflict.</p> </li> <li> <p>Reporting on installed products and interim patches.</p> </li> </ul> </div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref612" name="sthref612"></a> <h3 class="sect2"><a name="OUICG308" id="OUICG308"></a><a id="sthref613" name="sthref613"></a><a id="sthref614" name="sthref614"></a><a id="sthref615" name="sthref615"></a>Getting Interim Patches</h3> <p>Oracle releases interim patches frequently to fix a bug or a set of bugs. You can get the interim patches by doing the following:</p> <ol> <li> <p>Access and log into My Oracle Support at the following location:</p> <pre xml:space="preserve" class="oac_no_warn">http://support.oracle.com </pre></li> <li> <p>Click the <span class="bold">Patches & Updates</span> link.</p> </li> <li> <p>Enter the <span class="bold">Patch or ID Number</span>, then click <span class="bold">Search</span>. A Patch Search Results table appears.</p> </li> <li> <p>Using the Release and Platform columns, find the desired patch, then click the associated Patch ID.</p> </li> <li> <p>In the page that now appears, click the <span class="bold">Download</span> button in the right-hand column.</p> </li> </ol> </div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref616" name="sthref616"></a> <h3 class="sect2"><a name="OUICG309" id="OUICG309"></a><a id="sthref617" name="sthref617"></a><a id="sthref618" name="sthref618"></a>Environment Variables OPatch Uses</h3> <p>OPatch uses the following environment variables:</p> <p><span class="bold">ORACLE_HOME</span> — Oracle home location.</p> <p><span class="bold">PATH</span> — Path information.</p> </div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CEGIJIDD" name="CEGIJIDD"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG310" id="OUICG310"></a><a id="sthref619" name="sthref619"></a><a id="sthref620" name="sthref620"></a>Requirements for OPatch</h2> <p>The OPatch utility requires the following environment:</p> <ul> <li> <p>The Oracle home environment variable (<code>ORACLE_HOME</code>) must point to a valid Oracle home directory and match the value used during installation of the Oracle home directory.</p> </li> <li> <p>JRE version 1.4 or higher, Java commands for Windows, and <code>ar</code>, <code>cp</code>, <code>fuser</code>, and <code>make</code> commands for UNIX must be made available.</p> </li> <li> <p>The library path must be set correctly for Oracle Real Application Clusters environments. OPatch uses some APIs to detect if the system is an Oracle Real Application Clusters system. Ensure that the library path is set correctly as follows:</p> <pre xml:space="preserve" class="oac_no_warn">For Solaris: LD_LIBRARY_PATH = $ORACLE_HOME/lib32:$ORACLE_HOME/lib For HP-UX: SHLIB_PATH=$ORACLE_HOME/lib32:/usr/lib </pre> <div class="infoboxnotealso"> <p class="notep1">See Also:</p> For the latest information about the OPatch utility, to check for updates, and to get the latest versions, go to OracleMetaLink at: <p><code>http://www.oracle.com/support/metalink/index.html</code></p> </div> </li> <li> <p>You must have write permission to the files in the Oracle home before running the OPatch utility. Otherwise, OPatch fails.</p> </li> </ul> </div> <!-- class="sect1" --> <a id="CEGHCGJI" name="CEGHCGJI"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG311" id="OUICG311"></a><a id="sthref621" name="sthref621"></a><a id="sthref622" name="sthref622"></a>Prerequisite Checks for OPatch</h2> <p>Before you invoke OPatch, perform the prerequisite checks described in the following sections.</p> <a id="g1297211" name="g1297211"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG312" id="OUICG312"></a>Checks for Single Instances and Oracle Real Application Clusters</h3> <a id="sthref623" name="sthref623"></a> <p class="subhead2">Check ORACLE_HOME and Environment Variable</p> <p>OPatch verifies if the Oracle home is present. You must ensure that the <code>ORACLE_HOME</code> environment variable is set to the Oracle home of the product you are trying to patch. Check the respective vendor documentation for details to set the environment variable.</p> <a id="sthref624" name="sthref624"></a> <p class="subhead2">Check for JRE</p> <p>OPatch requires JRE version 1.4 or higher to work properly.</p> <a id="sthref625" name="sthref625"></a> <p class="subhead2">Check for System Space</p> <p>When OPatch processes the script for the installation of a patch, it simultaneously generates a Rollback script and saves a copy of every file edited or deleted during the patching. OPatch also backs up the inventory information. Consequently, Oracle recommends that you have sufficient system space to accommodate the patch and the backup information.</p> <a id="sthref626" name="sthref626"></a> <p class="subhead2">Check for Oracle Universal Installer and OPatch Version Compatibility</p> <p>OPatch 11.2 requires Oracle Universal Installer 11.2 or higher to work properly. If the Oracle Universal Installer version is less than what OPatch requires, OPatch errors out.</p> <a id="sthref627" name="sthref627"></a> <p class="subhead2">Check for Patch Applicable on Operating System</p> <p>OPatch detects if a particular patch is applicable for an operating system. If it is not applicable, OPatch displays an error message.</p> <a id="sthref628" name="sthref628"></a> <p class="subhead2">Check for System Commands</p> <p>OPatch supports a set of properties used for various software operations. You can use these properties to control the internal operations of OPatch. By default, OPatch uses the standard Java property format to specify the properties. The following list shows the default properties and their values:</p> <pre xml:space="preserve" class="oac_no_warn">fuser=/sbin:/usr/sbin ar=/usr/ccs/bin/ make=/usr/bin </pre> <p>You can specify OPatch properties in the following ways:</p> <ul> <li> <p>By using the default OPatch properties.</p> </li> <li> <p>By specifying the location of the user-defined properties file.</p> </li> <li> <p>By using the command line. The syntax is as follows:</p> <pre xml:space="preserve" class="oac_no_warn">PROPERTY_NAME=VALUE </pre> <p>Example: <code>fuser=/sbin:/usr/sbin</code></p> </li> </ul> </div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref629" name="sthref629"></a> <h3 class="sect2"><a name="OUICG313" id="OUICG313"></a><a id="sthref630" name="sthref630"></a><a id="sthref631" name="sthref631"></a><a id="sthref632" name="sthref632"></a>Additional Checks for Oracle Real Application Clusters</h3> <p>For Oracle Real Application Clusters, ensure that you perform the following prerequisite checks besides the other checks listed in the preceding section.</p> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref633" name="sthref633"></a> <h4 class="sect3"><a name="OUICG314" id="OUICG314"></a>Check for User Equivalence</h4> <p>You must ensure that the cluster machines have user equivalence set for the user installing Oracle Clusterware/ Oracle Real Application Clusters. On UNIX, this means <code>rsh</code> or <code>ssh</code> or both should be set up on the cluster machines. On Windows, this means the same <code><domain>\<user></code> should have administrative privileges on all the cluster machines, and the machines should be a member of the <code><domain></code>.</p> <p>If the user equivalence is set properly, the following command will work properly:</p> <pre xml:space="preserve" class="oac_no_warn">$ rsh <nodename> date </pre></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref634" name="sthref634"></a> <h4 class="sect3"><a name="OUICG315" id="OUICG315"></a>Check for OPatch Lsinventory</h4> <p>Ensure that you are able to invoke the <code>opatch lsinventory -detail</code> command and are able to see the node information being printed out. If you do not find the node information correctly printed out, you need to update the node list. For more information on updating the node list, see <a href="oui2_manage_oracle_homes.htm#CJADBAHJ">"Updating the Nodes of a Cluster"</a>.The following example shows the command output for the 134 installed products:</p> <pre xml:space="preserve" class="oac_no_warn">Invoking OPatch 11.1.0.6.6 Oracle Interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved. Oracle Home : /scratch/usernameusername/11.2db Central Inventory : /home/username/newDB/oraInventory from : /etc/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.2.0.1.0 OUI location : /scratch/username/11.2db/oui Log file location : /scratch/username/11.2db/cfgtoollogs/opatch/opatch2009-07-27_10-18-36AM.log Patch history file: /scratch/username/11.2db/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /scratch/username/11.2db/cfgtoollogs/opatch/lsinv/lsinventory2009-07-27_10-18-36AM.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 11g 11.2.0.1.0 There are 1 products installed in this Oracle Home. Installed Products (134): Agent Required Support Files 10.2.0.4.2 Assistant Common Files 11.2.0.1.0 Bali Share 1.1.18.0.0 Buildtools Common Files 11.2.0.1.0 Character Set Migration Utility 11.2.0.1.0 Cluster Verification Utility Common Files 11.2.0.1.0 Database Configuration and Upgrade Assistants 11.2.0.1.0 Database SQL Scripts 11.2.0.1.0 Database Workspace Manager 11.2.0.1.0 Deinstallation Tool 11.2.0.1.0 Enterprise Edition Options 11.2.0.1.0 Enterprise Manager Agent 10.2.0.4.2 Enterprise Manager Agent Core Files 10.2.0.4.2 Enterprise Manager Common Core Files 10.2.0.4.2 Enterprise Manager Common Files 10.2.0.4.2 Enterprise Manager Database Plugin -- Agent Support 11.2.0.1.0 Enterprise Manager Database Plugin -- Repository Support 11.2.0.1.0 Enterprise Manager Grid Control Core Files 10.2.0.4.2 Enterprise Manager Minimal Integration 11.2.0.1.0 Enterprise Manager plugin Common Files 11.2.0.1.0 Enterprise Manager Repository Core Files 10.2.0.4.2 Exadata Storage Server 11.2.0.1.0 Expat libraries 2.0.1.0.1 Generic Connectivity Common Files 11.2.0.1.0 HAS Common Files 11.2.0.1.0 HAS Files for DB 11.2.0.1.0 Installation Common Files 11.2.0.1.0 Installation Plugin Files 11.2.0.1.0 Installer SDK Component 11.2.0.1.0 JAccelerator (COMPANION) 11.2.0.1.0 LDAP Required Support Files 11.2.0.1.0 OLAP SQL Scripts 11.2.0.1.0 Oracle 11g Warehouse Builder Required Files 11.2.0.1.0 Oracle Advanced Security 11.2.0.1.0 Oracle Application Express 11.2.0.1.0 Oracle Call Interface (OCI) 11.2.0.1.0 Oracle Clusterware RDBMS Files 11.2.0.1.0 Oracle Code Editor 1.2.1.0.0I Oracle Configuration Manager 10.3.1.1.0 Oracle Configuration Manager Deconfiguration 10.3.1.0.0 Oracle Containers for Java 11.2.0.1.0 Oracle Core Required Support Files 11.2.0.1.0 Oracle Data Mining RDBMS Files 11.2.0.1.0 Oracle Database 11g 11.2.0.1.0 Oracle Database 11g 11.2.0.1.0 Oracle Database 11g Multimedia Files 11.2.0.1.0 Oracle Database Deconfiguration 11.2.0.1.0 Oracle Database Gateway for ODBC 11.2.0.1.0 Oracle Database User Interface 2.2.13.0.0 Oracle Database Utilities 11.2.0.1.0 Oracle Database Vault J2EE Application 11.2.0.1.0 Oracle Database Vault option 11.2.0.1.0 Oracle DBCA Deconfiguration 11.2.0.1.0 Oracle Display Fonts 9.0.2.0.0 Oracle Enterprise Manager Console DB 11.2.0.1.0 Oracle Extended Windowing Toolkit 3.4.47.0.0 Oracle Globalization Support 11.2.0.1.0 Oracle Globalization Support 11.2.0.1.0 Oracle Help For Java 4.2.9.0.0 Oracle Help for the Web 2.0.14.0.0 Oracle Ice Browser 5.2.3.6.0 Oracle Internet Directory Client 11.2.0.1.0 Oracle Java Client 11.2.0.1.0 Oracle JDBC Server Support Package 11.2.0.1.0 Oracle JDBC/OCI Instant Client 11.2.0.1.0 Oracle JDBC/THIN Interfaces 11.2.0.1.0 Oracle JFC Extended Windowing Toolkit 4.2.36.0.0 Oracle JVM 11.2.0.1.0 Oracle Label Security 11.2.0.1.0 Oracle LDAP administration 11.2.0.1.0 Oracle Locale Builder 11.2.0.1.0 Oracle Message Gateway Common Files 11.2.0.1.0 Oracle Multimedia 11.2.0.1.0 Oracle Multimedia Annotator 11.2.0.1.0 Oracle Multimedia Client Option 11.2.0.1.0 Oracle Multimedia Java Advanced Imaging 11.2.0.1.0 Oracle Multimedia Locator 11.2.0.1.0 Oracle Multimedia Locator RDBMS Files 11.2.0.1.0 Oracle Net 11.2.0.1.0 Oracle Net Listener 11.2.0.1.0 Oracle Net Required Support Files 11.2.0.1.0 Oracle Net Services 11.2.0.1.0 Oracle Netca Client 11.2.0.1.0 Oracle Notification Service 11.2.0.0.0 Oracle Notification Service (eONS) 11.2.0.1.0 Oracle ODBC Driver 11.2.0.1.0 Oracle ODBC Driverfor Instant Client 11.2.0.1.0 Oracle OLAP 11.2.0.1.0 Oracle OLAP API 11.2.0.1.0 </pre> <pre xml:space="preserve" class="oac_no_warn">Oracle OLAP RDBMS Files 11.2.0.1.0 Oracle One-Off Patch Installer 11.2.0.0.2 Oracle Partitioning 11.2.0.1.0 Oracle Programmer 11.2.0.1.0 Oracle Quality of Service Management (Client) 11.2.0.1.0 Oracle RAC Deconfiguration 11.2.0.1.0 Oracle RAC Required Support Files-HAS 11.2.0.1.0 Oracle Real Application Testing 11.2.0.1.0 Oracle Recovery Manager 11.2.0.1.0 Oracle Security Developer Tools 11.2.0.1.0 Oracle Spatial 11.2.0.1.0 Oracle SQL Developer 11.2.0.1.0 Oracle Starter Database 11.2.0.1.0 Oracle Text 11.2.0.1.0 Oracle Text Required Support Files 11.2.0.1.0 Oracle UIX 2.2.24.5.0 Oracle Universal Connection Pool 11.2.0.1.0 Oracle Universal Installer 11.2.0.1.0 Oracle Wallet Manager 11.2.0.1.0 Oracle XML Development Kit 11.2.0.1.0 Oracle XML Query 11.2.0.1.0 Parser Generator Required Support Files 11.2.0.1.0 Perl Interpreter 5.10.0.0.1 Perl Modules 5.10.0.0.1 PL/SQL 11.2.0.1.0 PL/SQL Embedded Gateway 11.2.0.1.0 Platform Required Support Files 11.2.0.1.0 Precompiler Common Files 11.2.0.1.0 Precompiler Required Support Files 11.2.0.1.0 Provisioning Advisor Framework 10.2.0.4.2 RDBMS Required Support Files 11.2.0.1.0 RDBMS Required Support Files for Instant Client 11.2.0.1.0 regexp 2.1.9.0.0 Required Support Files 11.2.0.1.0 Sample Schema Data 11.2.0.1.0 Secure Socket Layer 11.2.0.1.0 SQL*Plus 11.2.0.1.0 SQL*Plus Files for Instant Client 11.2.0.1.0 SQL*Plus Required Support Files 11.2.0.1.0 SQLJ Runtime 11.2.0.1.0 SSL Required Support Files for InstantClient 11.2.0.1.0 Sun JDK 1.5.0.17.0 XDK Required Support Files 11.2.0.1.0 XML Parser for Java 11.2.0.1.0 XML Parser for Oracle JVM 11.2.0.1.0 There are 134 products installed in this Oracle Home. There are no Interim patches installed in this Oracle Home. -------------------------------------------------------------------------------- OPatch succeeded. </pre></div> <!-- class="sect3" --></div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CEGHHBCH" name="CEGHHBCH"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG316" id="OUICG316"></a><a id="sthref635" name="sthref635"></a><a id="sthref636" name="sthref636"></a>Backup and Recovery Considerations for Patching</h2> <div class="infoboxnote"> <p class="notep1">Note:</p> It is highly recommended that you back up the <code>ORACLE_HOME</code> before any patch operation. You can back up the <code>ORACLE_HOME</code> using your preferred method. You can use any method such as <code>zip, cp -r, tar,</code> and <code>cpio</code> to compress the <code>ORACLE_HOME.</code></div> <p>If the <code>ORACLE_HOME</code> does not appear when you execute the <code>opatch lsinventory -detail</code> command, the <code>ORACLE_HOME</code> might be missing from the Central Inventory, or the Central Inventory itself could be missing or corrupted.</p> <p>If the <code>ORACLE_HOME</code> is listed when you execute the <code>opatch lsinventory -detail</code> command, but the products and components within the <code>ORACLE_HOME</code> are not listed, the inventory within the <code>ORACLE_HOME</code> (local inventory) might be missing or corrupted.</p> <p>If the local inventory is corrupted or lost for some reason, you can simply restore the <code>ORACLE_HOME/inventory</code> if it was backed up. If a backup does not exist, you may have to reinstall the software.</p> </div> <!-- class="sect1" --> <a id="CEGCCECH" name="CEGCCECH"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG317" id="OUICG317"></a><a id="sthref637" name="sthref637"></a><a id="sthref638" name="sthref638"></a>OPatch Utility for OUI-based Oracle Homes</h2> <p>You can run the OPatch utility, located in the <code><Path_to_Oracle_Home>/OPatch</code> directory, with various commands and options. The following string shows the syntax for the OPatch utility:</p> <pre xml:space="preserve" class="oac_no_warn"><span class="codeinlineitalic"><Path_to_OPatch></span>/opatch <span class="codeinlineitalic">[-help] [-r[eport]] [command]</span><span class="codeinlineitalic"> [-option]</span> </pre> <p>where:</p> <ul> <li> <p><span class="italic">help</span> — Displays the help message for the command.</p> </li> <li> <p><span class="italic">report</span> — Prints the actions without executing.</p> </li> <li> <p><span class="italic">command</span> — One of the OPatch commands, described in <a href="#g1093254">Table 7-1</a>.</p> </li> <li> <p><span class="italic">option</span> — One of the OPatch command options, described starting with <a href="#g1322226">Table 7-2</a>.</p> </li> </ul> <div class="tblformal"><a id="sthref639" name="sthref639"></a><a id="g1093254" name="g1093254"></a> <p class="titleintable">Table 7-1 OPatch OUI-based Commands</p> <table class="Formal" title="OPatch OUI-based Commands" summary="Table listing OPatch options." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t4">Command</th> <th align="left" valign="bottom" id="r1c2-t4">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t4" headers="r1c1-t4"> <p><span class="bold">apply</span></p> </td> <td align="left" headers="r2c1-t4 r1c2-t4"> <p>Installs an interim patch. See <a href="#BABGEIDJ">"Apply Command for OUI-based Oracle Homes"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t4" headers="r1c1-t4"> <p><span class="bold">napply</span></p> </td> <td align="left" headers="r3c1-t4 r1c2-t4"> <p>Applies Oracle Clusterware patches. See the "Auto Command for OUI-based Oracle Homes" for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t4" headers="r1c1-t4"> <p><span class="bold">auto</span></p> </td> <td align="left" headers="r4c1-t4 r1c2-t4"> <p>Applies Oracle Clusterware patches. See the "Auto Command for OUI-based Oracle Homes" for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t4" headers="r1c1-t4"> <p><span class="bold">lsinventory</span></p> </td> <td align="left" headers="r5c1-t4 r1c2-t4"> <p>Lists what is currently installed on the system. See <a href="#CEGGIHCF">"Lsinventory Command for OUI-based Oracle Homes"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t4" headers="r1c1-t4"> <p><span class="bold">query</span></p> </td> <td align="left" headers="r6c1-t4 r1c2-t4"> <p>Queries a given patch for specific details. See <a href="#BABEAIAJ">"Query Command for OUI-based Oracle Homes"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t4" headers="r1c1-t4"> <p><span class="bold">rollback</span></p> </td> <td align="left" headers="r7c1-t4 r1c2-t4"> <p>Removes an interim patch. See <a href="#BABIFJHJ">"Rollback Command for OUI-based Oracle Homes"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t4" headers="r1c1-t4"> <p><span class="bold">nrollback</span></p> </td> <td align="left" headers="r8c1-t4 r1c2-t4"> <p>Removes <span class="italic">n</span> number of patches (hence nrollback). See <a href="#CHDCDAIB">"Nrollback Command for OUI-based Oracle Homes"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t4" headers="r1c1-t4"> <p><span class="bold">version</span></p> </td> <td align="left" headers="r9c1-t4 r1c2-t4"> <p>Prints the current version of the patch tool. See <a href="#CEGEDFAH">"Version Command for OUI-based Oracle Homes"</a> for more information.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <p>To view additional information for any command, use the following command:</p> <pre xml:space="preserve" class="oac_no_warn"><<span class="codeinlineitalic">Path_to_OPatch></span>/opatch <span class="italic">command</span> -help </pre> <p>If using Perl, use the following command:</p> <pre xml:space="preserve" class="oac_no_warn">perl opatch.pl <span class="codeinlineitalic">command</span> -help </pre> <p>To show the full syntax of the -help option, enter opatch -h to view the following display:</p> <pre xml:space="preserve" class="oac_no_warn">Usage: opatch [ -help ] [ -r[eport] ] [ command ] command := auto apply lsinventory napply nrollback rollback query version prereq util <global_arguments> := -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' </pre> <a id="BABGEIDJ" name="BABGEIDJ"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG318" id="OUICG318"></a><a id="sthref640" name="sthref640"></a><a id="sthref641" name="sthref641"></a>Apply Command for OUI-based Oracle Homes</h3> <p>This command applies an interim patch to an Oracle home from the current directory. The <code>ORACLE_HOME</code> environment variable must be set to the Oracle home to be patched.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref642" name="sthref642"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch apply [-delay <value> ] [ -force ] [-invPtrLoc <Path to oraInst.loc> ] [-jre <LOC> ] [-local ] [-minimize_downtime ] [-no_bug_superset ] [-no_inventory ] [-oh <ORACLE_HOME> ] [-retry <value> ] [-silent ] [-verbose ] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped quotes> [-opatch_post_end] ] [-no_sysmod] [-property_file <Path to property file>] [-local_node <Local node name>] [-remote_nodes <List of remote nodes (node1,node2)>] [-connectString <List of connect strings>] [-runSql] [-sqlScript <path of the sql file>] [-ptlSchema <portal schema>] [-ptlPassword <portal password>] [-ptlConnect <portal connect string>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report] [<Patch Location>] </pre> <a id="sthref643" name="sthref643"></a> <p class="subhead2">Options</p> <p><a href="#g1322226">Table 7-2</a> lists the options available for this command.</p> <div class="tblformal"><a id="sthref644" name="sthref644"></a><a id="g1322226" name="g1322226"></a> <p class="titleintable">Table 7-2 Apply Options for OUI Patches</p> <table class="Formal" title="Apply Options for OUI Patches" summary="Table listing apply option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t6">Option</th> <th align="left" valign="bottom" id="r1c2-t6">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t6" headers="r1c1-t6"> <p>connectString</p> </td> <td align="left" headers="r2c1-t6 r1c2-t6"> <p>Specifies the list of database instances on which the patch needs to be applied. Specify the value for this option using the following syntax:</p> <p><code>SID:User:Passwd:Node</code></p> <p>Example:</p> <p><code>oracle:dba:dba:mymachine,oracle1:::</code></p> <p>The SID is required, but you can disregard the other parameters if desired, because OPatch provides default values for them.</p> <p><span class="bold">Note:</span> If the system is not part of an Oracle RAC setup and you want to patch just the local node, provide the node name as an empty string.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t6" headers="r1c1-t6"> <p>delay</p> </td> <td align="left" headers="r3c1-t6 r1c2-t6"> <p>Specifies how many seconds to wait before attempting to lock the inventory again for a previous failure. You can use this option only if you specify the <code>retry</code> option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t6" headers="r1c1-t6"> <p>force</p> </td> <td align="left" headers="r4c1-t6 r1c2-t6"> <p>Removes conflicting patches from the system. If a conflict exists that prevents the patch from being applied, you can use this option to apply the patch. OPatch removes all the conflicting patches before applying the current patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t6" headers="r1c1-t6"> <p>init</p> </td> <td align="left" headers="r5c1-t6 r1c2-t6"> <p>Passes parameters to the <code>init</code> script, which executes before prerequisite checks are run. The values for this option must be enclosed in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t6" headers="r1c1-t6"> <p>invPtrLoc</p> </td> <td align="left" headers="r6c1-t6 r1c2-t6"> <p>Specifies the location of the <code>oraInst.loc</code> file. The <code>invPtrLoc</code> option is needed when this option is used during installation. Oracle recommends the use of the default Central Inventory for a platform.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t6" headers="r1c1-t6"> <p>jre</p> </td> <td align="left" headers="r7c1-t6 r1c2-t6"> <p>Instructs OPatch to use JRE (Java) from the specified location instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t6" headers="r1c1-t6"> <p>local</p> </td> <td align="left" headers="r8c1-t6 r1c2-t6"> <p>Specifies that OPatch should patch the local node and update the inventory of the local node. It does not propagate the patch or inventory update to other nodes.</p> <p>You can use this option on Oracle Real Application Clusters environments and non-clustered environments. If an entire cluster is shut down before patching, you can use this option for non-rolling patches.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t6" headers="r1c1-t6"> <p>local_node</p> </td> <td align="left" headers="r9c1-t6 r1c2-t6"> <p>Tells OPatch the local node for this cluster. You can use this option on Oracle Real Application Clusters environments.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t6" headers="r1c1-t6"> <p>minimize_downtime</p> </td> <td align="left" headers="r10c1-t6 r1c2-t6"> <p>Specifies the order of nodes that OPatch should patch.</p> <p>This option only applies to Oracle Real Application Clusters environments. You cannot use it with the <code>-local</code> option with a rolling patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t6" headers="r1c1-t6"> <p>no_bug_superset</p> </td> <td align="left" headers="r11c1-t6 r1c2-t6"> <p>Specifies to error out if the current patch's bugs-to-fix is a superset (or same set) of an installed patch's bugs-fixed in the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t6" headers="r1c1-t6"> <p>no_inventory</p> </td> <td align="left" headers="r12c1-t6 r1c2-t6"> <p>Bypasses the inventory for reading and updates. You cannot use this option with the <code>local</code> option. This option places the installation into an unsupported state.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t6" headers="r1c1-t6"> <p>no_relink</p> </td> <td align="left" headers="r13c1-t6 r1c2-t6"> <p>This option does not perform any <code>make</code> operations. You can use it during multiple patch applications and to perform the linking step only once. OPatch does not keep track of the <code>make</code> operations it did not perform. You need to make sure to execute OPatch without this option at the end for compilation.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t6" headers="r1c1-t6"> <p>no_sysmod</p> </td> <td align="left" headers="r14c1-t6 r1c2-t6"> <p>Specifies that OPatch does not need to update the files in the system. It only updates the inventory. It also does not execute the pre and post scripts.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t6" headers="r1c1-t6"> <p>oh</p> </td> <td align="left" headers="r15c1-t6 r1c2-t6"> <p>Specifies the Oracle home directory to use instead of the default. This takes precedence over the environment variable <code>ORACLE_HOME</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t6" headers="r1c1-t6"> <p>opatch_init_end</p> </td> <td align="left" headers="r16c1-t6 r1c2-t6"> <p>Marks the end of the init options. You use this option with the <code>init</code> option. If you do not use this option, everything after <code>init</code> until the end of the command is passed into <code>init</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t6" headers="r1c1-t6"> <p>opatch_post_end</p> </td> <td align="left" headers="r17c1-t6 r1c2-t6"> <p>Marks the end of the <code>post</code> option. You use this option with the <code>post</code> option. If you do not use this option, everything after <code>post</code> until the end of the command is passed into <code>post</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r18c1-t6" headers="r1c1-t6"> <p>opatch_pre_end</p> </td> <td align="left" headers="r18c1-t6 r1c2-t6"> <p>Marks the end of the <code>pre</code> options. You use this option with the <code>pre</code> option. If you do not use this option, everything after <code>pre</code> until the end of the command is passed into <code>pre</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r19c1-t6" headers="r1c1-t6"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r19c1-t6 r1c2-t6"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r20c1-t6" headers="r1c1-t6"> <p>post</p> </td> <td align="left" headers="r20c1-t6 r1c2-t6"> <p>Specifies the parameters to be passed to the <code>post</code> script. This script is executed after the patch is applied. You need to enclose the values for this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r21c1-t6" headers="r1c1-t6"> <p>pre</p> </td> <td align="left" headers="r21c1-t6 r1c2-t6"> <p>Specifies the parameters to be passed to the <code>pre</code> script. This script is executed before the patch is applied. You need to enclose the values for this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r22c1-t6" headers="r1c1-t6"> <p>property_file</p> </td> <td align="left" headers="r22c1-t6 r1c2-t6"> <p>Specifies the user-defined property file for OPatch to use. The path to the property file should be absolute. This property file takes precedence over the one that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r23c1-t6" headers="r1c1-t6"> <p>ptlConnect</p> </td> <td align="left" headers="r23c1-t6 r1c2-t6"> <p>Specifies the connection string credentials of the portal schema.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r24c1-t6" headers="r1c1-t6"> <p>ptlPassword</p> </td> <td align="left" headers="r24c1-t6 r1c2-t6"> <p>Specifies the password of the portal schema.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r25c1-t6" headers="r1c1-t6"> <p>ptlSchema</p> </td> <td align="left" headers="r25c1-t6 r1c2-t6"> <p>Specifies the schema of the portal repository.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r26c1-t6" headers="r1c1-t6"> <p>remote_nodes</p> </td> <td align="left" headers="r26c1-t6 r1c2-t6"> <p>Tells OPatch the list of remote nodes. You can use this option on Oracle Real Application Clusters environments. The node names must be separated with commas, but without spaces.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r27c1-t6" headers="r1c1-t6"> <p>report</p> </td> <td align="left" headers="r27c1-t6 r1c2-t6"> <p>Prints the action to the screen without executing it.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r28c1-t6" headers="r1c1-t6"> <p>retry</p> </td> <td align="left" headers="r28c1-t6 r1c2-t6"> <p>Tells OPatch how many times it should retry when there is an inventory lock failure.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r29c1-t6" headers="r1c1-t6"> <p>runSql</p> </td> <td align="left" headers="r29c1-t6 r1c2-t6"> <p>Tells OPatch to run the SQL script and SQL procedures if they exist in the given patch. For information on SQL and PL/SQL patching, see <a href="#CHDHBEEF">"Schema Patching"</a>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r30c1-t6" headers="r1c1-t6"> <p>silent</p> </td> <td align="left" headers="r30c1-t6 r1c2-t6"> <p>Suppresses user interaction, and defaults any answers to "yes."</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r31c1-t6" headers="r1c1-t6"> <p>sqlScript</p> </td> <td align="left" headers="r31c1-t6 r1c2-t6"> <p>Specifies the custom SQL script that OPatch should run after patching completes. For information on SQL and PL/SQL patching, see <a href="#CHDHBEEF">"Schema Patching"</a>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r32c1-t6" headers="r1c1-t6"> <p>verbose</p> </td> <td align="left" headers="r32c1-t6 r1c2-t6"> <p>Prints additional OPatch output to the screen as well as to the log file.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <div class="infoboxnote"> <p class="notep1">Note:</p> If a patch consists of SQL changes, follow the instructions in the patch readme, which is included with the patch to apply the SQL scripts.</div> </div> <!-- class="sect2" --> <a id="CHDCIGJC" name="CHDCIGJC"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG319" id="OUICG319"></a><a id="sthref645" name="sthref645"></a><a id="sthref646" name="sthref646"></a>Napply Command for OUI-based Oracle Homes</h3> <p>This command applies interim patches to several Oracle homes at the same time.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref647" name="sthref647"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply [patch_location] [-id comma-separated list of patch IDs] [-delay <value> ] [ -force ] [-invPtrLoc <Path to oraInst.loc> ] [-jdk <LOC> ] [-jre <LOC> ] [ -local ] [-minimize_downtime ] [-no_bug_superset ] [-no_inventory ] [-oh <ORACLE_HOME> ] [-retry <value> ] [-silent ] [-verbose ] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes> [-opatch_post_end] ] [-no_sysmod] [ -property_file <Path to property file> ] [ -local_node <Local node name> ] [ -remote_nodes <List of remote nodes (node1,node2)> ] [ -all_nodes ] [ -phBaseFile <Path to the file containing the location of the patches to be applied> ] [-skip_subset] [-skip_duplicate] [-report] </pre> <a id="sthref648" name="sthref648"></a> <p class="subhead2">Examples</p> <ul> <li> <p>The following example applies all patches under the <code><patch_location></code> directory:</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply <patch_location> </pre></li> </ul> <ul> <li> <p>The following example applies patches 1, 2, and 3 that are under the <code><patch_location></code> directory:</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply <patch_location> -id 1,2,3 </pre></li> </ul> <pre xml:space="preserve" class="oac_no_warn"></pre> <ul> <li> <p>The following example applies all patches under the <code><patch_location></code> directory. OPatch skips duplicate patches and subset patches (patches under <code><patch_location></code> that are subsets of patches installed in the Oracle home).</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply <patch_location> -skip_subset -skip_duplicate </pre> <p>See the description for the <code>skip_subset</code> option in <a href="#g1316340">Table 7-3</a> for more information.</p> </li> </ul> <ul> <li> <p>The following example applies patches 1, 2, and 3 that are under the <code><patch_location></code> directory. OPatch skips duplicate patches and subset patches (patches under <code><patch_location></code> that are subsets of patches installed in the Oracle home).</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply <patch_location> -id 1,2,3 -skip_subset -skip_duplicate </pre> <p>See the description for the <code>skip_subset</code> option in <a href="#g1316340">Table 7-3</a> for more information.</p> </li> </ul> <a id="sthref649" name="sthref649"></a> <p class="subhead2">Options</p> <p><a href="#g1316340">Table 7-3</a> lists the options available for this command.</p> <div class="tblformal"><a id="sthref650" name="sthref650"></a><a id="g1316340" name="g1316340"></a> <p class="titleintable">Table 7-3 Napply Options for OUI Patches</p> <table class="Formal" title="Napply Options for OUI Patches" summary="Table listing apply option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t9">Option</th> <th align="left" valign="bottom" id="r1c2-t9">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t9" headers="r1c1-t9"> <p>all_nodes</p> </td> <td align="left" headers="r2c1-t9 r1c2-t9"> <p>Applies the patch using the all-node mode.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t9" headers="r1c1-t9"> <p>delay</p> </td> <td align="left" headers="r3c1-t9 r1c2-t9"> <p>Specifies how many seconds to wait before attempting to lock the inventory again for a previous failure. You can use this option only if you specify the <code>retry</code> option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t9" headers="r1c1-t9"> <p>force</p> </td> <td align="left" headers="r4c1-t9 r1c2-t9"> <p>Removes conflicting patches from the system. If a conflict exists that prevents the patch from being applied, you can use this option to apply the patch. OPatch removes all the conflicting patches before applying the current patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t9" headers="r1c1-t9"> <p>invPtrLoc</p> </td> <td align="left" headers="r5c1-t9 r1c2-t9"> <p>Specifies the location of the <code>oraInst.loc</code> file. The <code>invPtrLoc</code> option is needed when this option is used during installation. Oracle recommends the use of the default Central Inventory for a platform.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t9" headers="r1c1-t9"> <p>jdk</p> </td> <td align="left" headers="r6c1-t9 r1c2-t9"> <p>Instructs OPatch to use JDK (jar) from the specified location instead of the default location under the Oracle home directory. If you do not specify the <code>jre</code> option, JVM is executed from the <code>jdk</code> location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t9" headers="r1c1-t9"> <p>jre</p> </td> <td align="left" headers="r7c1-t9 r1c2-t9"> <p>Instructs OPatch to use JRE (Java) from the specified location instead of the default location under the Oracle home directory. You cannot specify the <code>jdk</code> and <code>jre</code> options together.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t9" headers="r1c1-t9"> <p>local</p> </td> <td align="left" headers="r8c1-t9 r1c2-t9"> <p>Specifies that OPatch should patch the local node and update the inventory of the local node. It does not propagate the patch or inventory update to other nodes.</p> <p>You can use this option on Oracle Real Application Clusters environments and non-clustered environments. If an entire cluster is shut down before patching, you can use this option for non-rolling patches.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t9" headers="r1c1-t9"> <p>local_node</p> </td> <td align="left" headers="r9c1-t9 r1c2-t9"> <p>Tells OPatch the local node for this cluster. You can use this option on Oracle Real Application Clusters environments.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t9" headers="r1c1-t9"> <p>minimize_downtime</p> </td> <td align="left" headers="r10c1-t9 r1c2-t9"> <p>Specifies the order of nodes that OPatch should patch.</p> <p>This option only applies to Oracle Real Application Clusters environments. You cannot use it with the <code>-local</code> option with a rolling patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t9" headers="r1c1-t9"> <p>no_bug_superset</p> </td> <td align="left" headers="r11c1-t9 r1c2-t9"> <p>Specifies to error out if the current patch's bugs-to-fix is a superset (or same set) of an installed patch's bugs-fixed in the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t9" headers="r1c1-t9"> <p>no_inventory</p> </td> <td align="left" headers="r12c1-t9 r1c2-t9"> <p>Bypasses the inventory for reading and updates. You cannot use this option with the <code>local</code> option. This option places the installation into an unsupported state.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t9" headers="r1c1-t9"> <p>no_relink</p> </td> <td align="left" headers="r13c1-t9 r1c2-t9"> <p>This option does not perform any <code>make</code> operations. You can use it during multiple patch applications and to perform the linking step only once. OPatch does not keep track of the <code>make</code> operations it did not perform. You need to make sure to execute OPatch without this option at the end for compilation.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t9" headers="r1c1-t9"> <p>no_sysmod</p> </td> <td align="left" headers="r14c1-t9 r1c2-t9"> <p>Specifies that OPatch does not need to update the files in the system. It only updates the inventory. It also does not execute the pre and post scripts.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t9" headers="r1c1-t9"> <p>oh</p> </td> <td align="left" headers="r15c1-t9 r1c2-t9"> <p>Specifies the Oracle home directory to use instead of the default. This takes precedence over the environment variable <code>ORACLE_HOME</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t9" headers="r1c1-t9"> <p>opatch_post_end</p> </td> <td align="left" headers="r16c1-t9 r1c2-t9"> <p>Marks the end of the <code>post</code> option. You use this option with the <code>post</code> option. If you do not use this option, everything after <code>post</code> until the end of the command is passed into <code>post</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t9" headers="r1c1-t9"> <p>opatch_pre_end</p> </td> <td align="left" headers="r17c1-t9 r1c2-t9"> <p>Marks the end of the <code>pre</code> options. You use this option with the <code>pre</code> option. If you do not use this option, everything after <code>pre</code> until the end of the command is passed into <code>pre</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r18c1-t9" headers="r1c1-t9"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r18c1-t9 r1c2-t9"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r19c1-t9" headers="r1c1-t9"> <p>phBaseFile</p> </td> <td align="left" headers="r19c1-t9 r1c2-t9"> <p>If you do not specify <code><patch_location></code>, use this option to point OPatch to a file containing a list of patches to be n-applied. Each line in the file points to a location of a patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r20c1-t9" headers="r1c1-t9"> <p>post</p> </td> <td align="left" headers="r20c1-t9 r1c2-t9"> <p>Specifies the parameters to be passed to the <code>post</code> script. This script is executed after the patch is applied. You need to enclose the values for this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r21c1-t9" headers="r1c1-t9"> <p>pre</p> </td> <td align="left" headers="r21c1-t9 r1c2-t9"> <p>Specifies the parameters to be passed to the <code>pre</code> script. This script is executed before the patch is applied. You need to enclose the values for this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r22c1-t9" headers="r1c1-t9"> <p>property_file</p> </td> <td align="left" headers="r22c1-t9 r1c2-t9"> <p>Specifies the user-defined property file for OPatch to use. The path to the property file should be absolute. This property file takes precedence over the one that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r23c1-t9" headers="r1c1-t9"> <p>remote_nodes</p> </td> <td align="left" headers="r23c1-t9 r1c2-t9"> <p>Tells OPatch the list of remote nodes. You can use this option on Oracle Real Application Clusters environments. The node names must be separated with commas, but without spaces.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r24c1-t9" headers="r1c1-t9"> <p>report</p> </td> <td align="left" headers="r24c1-t9 r1c2-t9"> <p>Prints the action to the screen without executing it.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r25c1-t9" headers="r1c1-t9"> <p>retry</p> </td> <td align="left" headers="r25c1-t9 r1c2-t9"> <p>Tells OPatch how many times it should retry when there is an inventory lock failure.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r26c1-t9" headers="r1c1-t9"> <p>silent</p> </td> <td align="left" headers="r26c1-t9 r1c2-t9"> <p>Suppresses user interaction, and defaults any answers to "yes."</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r27c1-t9" headers="r1c1-t9"> <p>skip_duplicate</p> </td> <td align="left" headers="r27c1-t9 r1c2-t9"> <p>Skips patches to be applied that are duplicates of other patches installed in the Oracle home. Two patches are duplicates if they fix the same set of bugs.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r28c1-t9" headers="r1c1-t9"> <p>skip_subset</p> </td> <td align="left" headers="r28c1-t9 r1c2-t9"> <p>Skips patches to be applied that are subsets of other patches installed in the Oracle home. One patch is a subset of another patch if the former fixes a subset of bugs fixed by the latter.</p> <p>For example, if you used <code>napply</code> yesterday for patch A that fixed bugs 1 and 2, then you use <code>napply</code> today with this option for patch B that fixes bug 1 and patch C that fixes bugs 1, 2, and 3, then subset patch A is skipped, and patch C then becomes a superset of patch A.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r29c1-t9" headers="r1c1-t9"> <p>verbose</p> </td> <td align="left" headers="r29c1-t9 r1c2-t9"> <p>Prints additional OPatch output to the screen as well as to the log file.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref651" name="sthref651"></a> <h3 class="sect2">Auto Command for OUI-based Oracle Homes</h3> <p>Ordinarily, an Oracle Clusterware patch requires several manual steps before and after you apply the patch, such as:</p> <ul> <li> <p>Stopping all dependent databases</p> </li> <li> <p>Stopping Oracle Clusterware resources</p> </li> <li> <p>Running pre-patch scripts</p> </li> <li> <p>Shutting down Oracle Clusterware</p> </li> <li> <p>Running post-patch scripts</p> </li> <li> <p>Starting Oracle Clusterware and dependent databases</p> </li> </ul> <p>The opatch auto command automates all of these tasks for patching the grid infrastructure home and all other applicable RDBMS homes.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref652" name="sthref652"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn"><span class="italic"><path_to_Opatch></span>/opatch auto [-rollback [<span class="italic">patch_location</span>]] [[<span class="italic">patch_location</span>]-oh <<span class="italic">path_to_oracle_home1</span>>,<<span class="italic">path_to_oracle_home2</span>>...] | [[<span class="italic">patch_location</span>]-och <<span class="italic">path_to_crs_home</span>>] </pre> <p>... where <span class="italic">patch_location</span> is path to the location for the patch. If you do not specify the patch location, the current directory is considered the patch location.</p> <a id="sthref653" name="sthref653"></a> <p class="subhead2">Auto Options</p> <p>Table 7–4 lists the options available for this command.</p> <div class="tblformal"><a id="sthref654" name="sthref654"></a><a id="sthref655" name="sthref655"></a> <p class="titleintable">Table 7-4 Auto Options for OUI Patches</p> <table class="Formal" title="Auto Options for OUI Patches" summary="Table listing apply option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t11">Option</th> <th align="left" valign="bottom" id="r1c2-t11">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t11" headers="r1c1-t11"> <p>rollback</p> </td> <td align="left" headers="r2c1-t11 r1c2-t11"> <p>Rolls back the patch rather than applying it.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t11" headers="r1c1-t11"> <p>oh</p> </td> <td align="left" headers="r3c1-t11 r1c2-t11"> <p>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.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t11" headers="r1c1-t11"> <p>och</p> </td> <td align="left" headers="r4c1-t11 r1c2-t11"> <p>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.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <a id="sthref656" name="sthref656"></a> <p class="subhead2">Examples</p> <ul> <li> <p>The following example applies a patch with an unzipped patch location to all applicable Oracle homes on the system:</p> <pre xml:space="preserve" class="oac_no_warn">opatch auto <<span class="italic">patch_location</span>> </pre></li> <li> <p>The following example rolls back the patch from all the applicable Oracle homes on the system:</p> <pre xml:space="preserve" class="oac_no_warn">opatch auto -rollback <<span class="italic">patch_location</span>> </pre></li> <li> <p>The following example patches a selective list of Oracle homes:</p> <pre xml:space="preserve" class="oac_no_warn">opatch auto <<span class="italic">patch_location</span>> -oh /tmp/oh1,/tmp/oh2,/tmp/oh3 </pre></li> <li> <p>The following example only patches the CRS home when the Oracle Clusterware stack is down.</p> <pre xml:space="preserve" class="oac_no_warn">opatch auto <<span class="italic">patch_location</span>> -och /tmp/ora_crs_home </pre></li> </ul> </div> <!-- class="sect2" --> <a id="CEGGIHCF" name="CEGGIHCF"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG320" id="OUICG320"></a><a id="sthref657" name="sthref657"></a><a id="sthref658" name="sthref658"></a>Lsinventory Command for OUI-based Oracle Homes</h3> <p>This command lists the inventory for a particular Oracle home, or displays all installations that can be found. This command does not have any required options.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref659" name="sthref659"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch lsinventory [-all ][-all_nodes] [-bugs_fixed asc|desc] [-delay <value> ][-detail] [-group_by_date] [-invPtrLoc <Path to oraInst.loc> ][-jre <LOC> ] [-oh <ORACLE_HOME> ] [-patch asc|desc] [-property_file <path to property file>] [-retry <value> ] </pre> <p>The following sections provide examples for the detail, bugs_fixed, and patch desc options. See Table 7–5 for descriptions of the command options.</p> <a id="sthref660" name="sthref660"></a> <p class="subhead2">-detail Option Example</p> <p>The following example shows the output of <code>opatch lsinventory -detail</code> for 134 products and one interim patch:</p> <pre xml:space="preserve" class="oac_no_warn">Invoking OPatch 11.1.0.6.6 Oracle Interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved. Oracle Home : /scratch/username/11.2db Central Inventory : /home/username/newDB/oraInventory from : /etc/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.2.0.1.0 OUI location : /scratch/username/11.2db/oui Log file location : /scratch/username/11.2db/cfgtoollogs/opatch/opatch2009-07-27_10-28-06AM.log Patch history file: /scratch/username/11.2db/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /scratch/username/11.2db/cfgtoollogs/opatch/lsinv/lsinventory2009-07-27_10-28-06AM.txt -------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 11g 11.2.0.1.0 There are 1 products installed in this Oracle Home. Installed Products (134): Agent Required Support Files 10.2.0.4.2 Assistant Common Files 11.2.0.1.0 Bali Share 1.1.18.0.0 Buildtools Common Files 11.2.0.1.0 Character Set Migration Utility 11.2.0.1.0 Cluster Verification Utility Common Files 11.2.0.1.0 Database Configuration and Upgrade Assistants 11.2.0.1.0 Database SQL Scripts 11.2.0.1.0 Database Workspace Manager 11.2.0.1.0 Deinstallation Tool 11.2.0.1.0 Enterprise Edition Options 11.2.0.1.0 Enterprise Manager Agent 10.2.0.4.2 Enterprise Manager Agent Core Files 10.2.0.4.2 Enterprise Manager Common Core Files 10.2.0.4.2 Enterprise Manager Common Files 10.2.0.4.2 Enterprise Manager Database Plugin -- Agent Support 11.2.0.1.0 Enterprise Manager Database Plugin -- Repository Support 11.2.0.1.0 Enterprise Manager Grid Control Core Files 10.2.0.4.2 Enterprise Manager Minimal Integration 11.2.0.1.0 Enterprise Manager plugin Common Files 11.2.0.1.0 Enterprise Manager Repository Core Files 10.2.0.4.2 Exadata Storage Server 11.2.0.1.0 Expat libraries 2.0.1.0.1 Generic Connectivity Common Files 11.2.0.1.0 HAS Common Files 11.2.0.1.0 HAS Files for DB 11.2.0.1.0 Installation Common Files 11.2.0.1.0 Installation Plugin Files 11.2.0.1.0 Installer SDK Component 11.2.0.1.0 JAccelerator (COMPANION) 11.2.0.1.0 LDAP Required Support Files 11.2.0.1.0 OLAP SQL Scripts 11.2.0.1.0 Oracle 11g Warehouse Builder Required Files 11.2.0.1.0 Oracle Advanced Security 11.2.0.1.0 Oracle Application Express 11.2.0.1.0 Oracle Call Interface (OCI) 11.2.0.1.0 Oracle Clusterware RDBMS Files 11.2.0.1.0 Oracle Code Editor 1.2.1.0.0I Oracle Configuration Manager 10.3.1.1.0 Oracle Configuration Manager Deconfiguration 10.3.1.0.0 Oracle Containers for Java 11.2.0.1.0 Oracle Core Required Support Files 11.2.0.1.0 Oracle Data Mining RDBMS Files 11.2.0.1.0 Oracle Database 11g 11.2.0.1.0 Oracle Database 11g 11.2.0.1.0 Oracle Database 11g Multimedia Files 11.2.0.1.0 Oracle Database Deconfiguration 11.2.0.1.0 Oracle Database Gateway for ODBC 11.2.0.1.0 Oracle Database User Interface 2.2.13.0.0 Oracle Database Utilities 11.2.0.1.0 Oracle Database Vault J2EE Application 11.2.0.1.0 Oracle Database Vault option 11.2.0.1.0 Oracle DBCA Deconfiguration 11.2.0.1.0 Oracle Display Fonts 9.0.2.0.0 Oracle Enterprise Manager Console DB 11.2.0.1.0 Oracle Extended Windowing Toolkit 3.4.47.0.0 Oracle Globalization Support 11.2.0.1.0 Oracle Globalization Support 11.2.0.1.0 Oracle Help For Java 4.2.9.0.0 Oracle Help for the Web 2.0.14.0.0 Oracle Ice Browser 5.2.3.6.0 Oracle Internet Directory Client 11.2.0.1.0 Oracle Java Client 11.2.0.1.0 Oracle JDBC Server Support Package 11.2.0.1.0 Oracle JDBC/OCI Instant Client 11.2.0.1.0 Oracle JDBC/THIN Interfaces 11.2.0.1.0 Oracle JFC Extended Windowing Toolkit 4.2.36.0.0 Oracle JVM 11.2.0.1.0 </pre> <pre xml:space="preserve" class="oac_no_warn">Oracle Label Security 11.2.0.1.0 Oracle LDAP administration 11.2.0.1.0 Oracle Locale Builder 11.2.0.1.0 Oracle Message Gateway Common Files 11.2.0.1.0 Oracle Multimedia 11.2.0.1.0 Oracle Multimedia Annotator 11.2.0.1.0 Oracle Multimedia Client Option 11.2.0.1.0 Oracle Multimedia Java Advanced Imaging 11.2.0.1.0 Oracle Multimedia Locator 11.2.0.1.0 Oracle Multimedia Locator RDBMS Files 11.2.0.1.0 Oracle Net 11.2.0.1.0 Oracle Net Listener 11.2.0.1.0 Oracle Net Required Support Files 11.2.0.1.0 Oracle Net Services 11.2.0.1.0 Oracle Netca Client 11.2.0.1.0 Oracle Notification Service 11.2.0.0.0 Oracle Notification Service (eONS) 11.2.0.1.0 Oracle ODBC Driver 11.2.0.1.0 Oracle ODBC Driverfor Instant Client 11.2.0.1.0 Oracle OLAP 11.2.0.1.0 Oracle OLAP API 11.2.0.1.0 Oracle OLAP RDBMS Files 11.2.0.1.0 Oracle One-Off Patch Installer 11.2.0.0.2 Oracle Partitioning 11.2.0.1.0 Oracle Programmer 11.2.0.1.0 Oracle Quality of Service Management (Client) 11.2.0.1.0 Oracle RAC Deconfiguration 11.2.0.1.0 Oracle RAC Required Support Files-HAS 11.2.0.1.0 Oracle Real Application Testing 11.2.0.1.0 Oracle Recovery Manager 11.2.0.1.0 Oracle Security Developer Tools 11.2.0.1.0 Oracle Spatial 11.2.0.1.0 Oracle SQL Developer 11.2.0.1.0 Oracle Starter Database 11.2.0.1.0 Oracle Text 11.2.0.1.0 Oracle Text Required Support Files 11.2.0.1.0 Oracle UIX 2.2.24.5.0 Oracle Universal Connection Pool 11.2.0.1.0 Oracle Universal Installer 11.2.0.1.0 Oracle Wallet Manager 11.2.0.1.0 Oracle XML Development Kit 11.2.0.1.0 Oracle XML Query 11.2.0.1.0 </pre> <pre xml:space="preserve" class="oac_no_warn">Parser Generator Required Support Files 11.2.0.1.0 Perl Interpreter 5.10.0.0.1 Perl Modules 5.10.0.0.1 PL/SQL 11.2.0.1.0 PL/SQL Embedded Gateway 11.2.0.1.0 Platform Required Support Files 11.2.0.1.0 Precompiler Common Files 11.2.0.1.0 Precompiler Required Support Files 11.2.0.1.0 Provisioning Advisor Framework 10.2.0.4.2 RDBMS Required Support Files 11.2.0.1.0 RDBMS Required Support Files for Instant Client 11.2.0.1.0 regexp 2.1.9.0.0 Required Support Files 11.2.0.1.0 Sample Schema Data 11.2.0.1.0 Secure Socket Layer 11.2.0.1.0 SQL*Plus 11.2.0.1.0 SQL*Plus Files for Instant Client 11.2.0.1.0 SQL*Plus Required Support Files 11.2.0.1.0 SQLJ Runtime 11.2.0.1.0 SSL Required Support Files for InstantClient 11.2.0.1.0 Sun JDK 1.5.0.17.0 XDK Required Support Files 11.2.0.1.0 XML Parser for Java 11.2.0.1.0 XML Parser for Oracle JVM 11.2.0.1.0 There are 134 products installed in this Oracle Home. Interim patches (1) : Patch 103 : applied on Mon Jul 27 10:25:16 PDT 2009 Created on 07 Nov 2007, 04:57:14 hrs US/Eastern Bugs fixed: 103, 104, 105 Files Touched: routeserver.ear --> ORACLE_HOME/md/jlib/routeserver.ear Patch Location in Inventory: /scratch/username/11.2db/inventory/oneoffs/103 Patch Location in Storage area: /scratch/username/11.2db/.patch_storage/103_Nov_07_2007_04_57_14 -------------------------------------------------------------------------------- OPatch succeeded. </pre> <a id="sthref661" name="sthref661"></a> <p class="subhead2">-bugs_fixed Option Example</p> <p>The following example shows the output of <code>opatch lsinventory -bugs_fixed asc</code>:</p> <pre xml:space="preserve" class="oac_no_warn">Invoking OPatch 11.1.0.6.6 Oracle Interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved. Oracle Home : /scratch/username/11.2db Central Inventory : /home/username/newDB/oraInventory from : /etc/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.2.0.1.0 OUI location : /scratch/username/11.2db/oui Log file location : /scratch/username/11.2db/cfgtoollogs/opatch/opatch2009-07-27_10-25-33AM.log Patch history file: /scratch/username/11.2db/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /scratch/username/11.2db/cfgtoollogs/opatch/lsinv/lsinventory2009-07-27_10-25-33AM.txt ---------------------------------------------------------------------------------- Installed Top-level Products (1): Oracle Database 11g 11.2.0.1.0 There are 1 products installed in this Oracle Home. List of Bugs fixed by Installed Patches: Bug Fixed by Installed at Description Patch --- -------- ------------ ----------- 103 103 Mon Jul 27 10:25:16 PDT 2009 Try to Patch an ear 104 103 Mon Jul 27 10:25:16 PDT 2009 Dummy1 105 103 Mon Jul 27 10:25:16 PDT 2009 Dummy2 OPatch succeeded. </pre> <a id="sthref662" name="sthref662"></a> <p class="subhead2">-patch desc Option Example</p> <p>The following example shows the output of <code>opatch lsinventory -patch desc</code>:</p> <pre xml:space="preserve" class="oac_no_warn">Invoking OPatch 11.1.0.6.6 Oracle Interim Patch Installer version 11.1.0.6.6 Copyright (c) 2009, Oracle Corporation. All rights reserved. Oracle Home : /scratch/username/11.2db Central Inventory : /home/username/newDB/oraInventory from : /etc/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.2.0.1.0 OUI location : /scratch/username/11.2db/oui Log file location : /scratch/username/11.2db/cfgtoollogs/opatch/opatch2009-07-27_10-39-03AM.log Patch history file: /scratch/username/11.2db/cfgtoollogs/opatch/opatch_history.txt Lsinventory Output file location : /scratch/username/11.2db/cfgtoollogs/opatch/lsinv/lsinventory2009-07-27_10-39-03AM.txt -------------------------------------------------------------------------------- Interim patches (2) : Patch 101 : applied on Mon Jul 27 10:38:00 PDT 2009 Created on 07 Nov 2007, 04:57:14 hrs US/Eastern Bugs fixed: 101 This patch overlays patches: 103 Patch 103 : applied on Mon Jul 27 10:25:16 PDT 2009 Created on 07 Nov 2007, 04:57:14 hrs US/Eastern Bugs fixed: 103, 104, 105 -------------------------------------------------------------------------------- OPatch succeeded. </pre> <a id="sthref663" name="sthref663"></a> <p class="subhead2">Lsinventory Options</p> <p>Table 7–5 describes the options available for the lsinventory command.</p> <div class="tblformal"><a id="sthref664" name="sthref664"></a><a id="sthref665" name="sthref665"></a> <p class="titleintable">Table 7-5 Lsinventory Options for OUI Patches</p> <table class="Formal" title="Lsinventory Options for OUI Patches" summary="Table listing lsinventory option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t13">Option</th> <th align="left" valign="bottom" id="r1c2-t13">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t13" headers="r1c1-t13"> <p>all</p> </td> <td align="left" headers="r2c1-t13 r1c2-t13"> <p>Reports the name and installation directory for each Oracle home directory found.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t13" headers="r1c1-t13"> <p>all_nodes</p> </td> <td align="left" headers="r3c1-t13 r1c2-t13"> <p>Reports the patches installed on the given Oracle home in all nodes of the Oracle RAC system. It also prints the Oracle binary's size and checksum on all nodes. You cannot use this option with the <code>all</code>, <code>detai</code>l, or <code>patch</code> options.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t13" headers="r1c1-t13"> <p>bugs_fixed</p> </td> <td align="left" headers="r4c1-t13 r1c2-t13"> <p>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.</p> <p>The fixed bugs are sorted per installed patch. 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.</p> <p>You can use this option with the patch or patch option to obtain sort orders with installed patches.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t13" headers="r1c1-t13"> <p>delay</p> </td> <td align="left" headers="r5c1-t13 r1c2-t13"> <p>If you specify retry, this option tells OPatch how many seconds it should wait before attempting to lock the inventory again in case of a previous failure.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t13" headers="r1c1-t13"> <p>detail</p> </td> <td align="left" headers="r6c1-t13 r1c2-t13"> <p>Reports the installed products and other details. You cannot use this option with the <code>-all</code> option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t13" headers="r1c1-t13"> <p>group_by_date</p> </td> <td align="left" headers="r7c1-t13 r1c2-t13"> <p>Specifies that OPatch should group all installed patches by the date they were installed in the Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t13" headers="r1c1-t13"> <p>invPtrLoc</p> </td> <td align="left" headers="r8c1-t13 r1c2-t13"> <p>Specifies the location of the <code>oraInst.loc</code> file. You need this option if you used the <code>invPtrLoc</code> option during the installation. Oracle recommends using the default Central Inventory for a platform.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t13" headers="r1c1-t13"> <p>jre</p> </td> <td align="left" headers="r9c1-t13 r1c2-t13"> <p>Specifies the location of a particular JRE (Java) to use instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t13" headers="r1c1-t13"> <p>oh</p> </td> <td align="left" headers="r10c1-t13 r1c2-t13"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the ORACLE_HOME environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t13" headers="r1c1-t13"> <p>patch</p> </td> <td align="left" headers="r11c1-t13 r1c2-t13"> <p>Lists the patch IDs installed in the Oracle home in ascending (asc) or descending (desc) order, which is the default, based on installed time.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t13" headers="r1c1-t13"> <p>property_file</p> </td> <td align="left" headers="r12c1-t13 r1c2-t13"> <p>Indicates the user-defined property file that OPatch should use. The path to the property should be absolute. This property file takes precedence over the property file that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t13" headers="r1c1-t13"> <p>retry</p> </td> <td align="left" headers="r13c1-t13 r1c2-t13"> <p>Specifies how many times OPatch should retry when there is an inventory lock failure.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <a id="BABEAIAJ" name="BABEAIAJ"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG321" id="OUICG321"></a><a id="sthref666" name="sthref666"></a><a id="sthref667" name="sthref667"></a>Query Command for OUI-based Oracle Homes</h3> <p>This command queries a specific patch for specific details. It provides information about the patch and the system being patched.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref668" name="sthref668"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch query [-all] [-jre <LOC> ] [-oh <LOC> ] [-get_component] [-get_os] [-get_date] [-get_base_bug] [-is_portal_patch] [-is_rolling_patch] [-is_online_patch] [-has_sql] [ <Patch Location> ] </pre> <a id="sthref669" name="sthref669"></a> <p class="subhead2">Options</p> <p><a href="#g1097608">Table 7-6</a> lists the options available for the Query command.</p> <div class="tblformal"><a id="sthref670" name="sthref670"></a><a id="g1097608" name="g1097608"></a> <p class="titleintable">Table 7-6 Query Options</p> <table class="Formal" title="Query Options" summary="Table listing query option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t15">Option</th> <th align="left" valign="bottom" id="r1c2-t15">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t15" headers="r1c1-t15"> <p>all</p> </td> <td align="left" headers="r2c1-t15 r1c2-t15"> <p>Retrieves all information about a patch. This is equivalent to setting all available options.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t15" headers="r1c1-t15"> <p>get_base_bug</p> </td> <td align="left" headers="r3c1-t15 r1c2-t15"> <p>Retrieves bugs fixed by the patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t15" headers="r1c1-t15"> <p>get_component</p> </td> <td align="left" headers="r4c1-t15 r1c2-t15"> <p>Retrieves components the patch affects.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t15" headers="r1c1-t15"> <p>get_date</p> </td> <td align="left" headers="r5c1-t15 r1c2-t15"> <p>Retrieves the patch creation date and time.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t15" headers="r1c1-t15"> <p>has_sql</p> </td> <td align="left" headers="r6c1-t15 r1c2-t15"> <p>Indicates true if the patch has SQL-related actions. Otherwise, the option is false. For information on SQL and PL/SQL patching, see <a href="#CHDHBEEF">"Schema Patching"</a>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t15" headers="r1c1-t15"> <p>is_online_patch</p> </td> <td align="left" headers="r7c1-t15 r1c2-t15"> <p>Indicates true if the patch is an online patch. Otherwise, the option is false.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t15" headers="r1c1-t15"> <p>is_portal_patch</p> </td> <td align="left" headers="r8c1-t15 r1c2-t15"> <p>Indicates true if the patch has portal actions. Otherwise, the option is false.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t15" headers="r1c1-t15"> <p>is_rolling_patch</p> </td> <td align="left" headers="r9c1-t15 r1c2-t15"> <p>Indicates true if the patch is a rolling patch. Otherwise, the option is false.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t15" headers="r1c1-t15"> <p>oh</p> </td> <td align="left" headers="r10c1-t15 r1c2-t15"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the <code>ORACLE_HOME</code> environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t15" headers="r1c1-t15"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r11c1-t15 r1c2-t15"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <a id="BABIFJHJ" name="BABIFJHJ"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG322" id="OUICG322"></a><a id="sthref671" name="sthref671"></a><a id="sthref672" name="sthref672"></a>Rollback Command for OUI-based Oracle Homes</h3> <p>This command removes an existing one-off patch from the appropriate Oracle home directory indicated by the reference ID.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref673" name="sthref673"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch rollback -id <ID> [-ph <Patch Location>] [-delay <value>] [-invPtrLoc <Path to oraInst.loc> ] [-jre <LOC> ] [-local] [-oh <ORACLE_HOME>] [-retry <value>] [-silent] [-verbose] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes>[ -opatch_post_end] ] [-no_sysmod] [-property_file <path to property file>] [-local_node <Local node name>] [-remote_nodes <List of remote nodes (node1,node2)>] [-connectString <List of connect strings>] [-ptlSchema <portal schema>] [-ptlPassword <portal password>] [-ptlConnect <portal connect string>] [-runSql] [-sqlScript <path of the sql file>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report] </pre> <a id="sthref674" name="sthref674"></a> <p class="subhead2">Options</p> <p><a href="#g1098609">Table 7-7</a> lists the options available for the Rollback command.</p> <div class="tblformal"><a id="sthref675" name="sthref675"></a><a id="g1098609" name="g1098609"></a> <p class="titleintable">Table 7-7 Rollback Options for OUI Patches</p> <table class="Formal" title="Rollback Options for OUI Patches" summary="Table listing rollback option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t17">Option</th> <th align="left" valign="bottom" id="r1c2-t17">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t17" headers="r1c1-t17"> <p>all_nodes</p> </td> <td align="left" headers="r2c1-t17 r1c2-t17"> <p>Rolls back the patch using the all-nodes mode.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t17" headers="r1c1-t17"> <p>connectString</p> </td> <td align="left" headers="r3c1-t17 r1c2-t17"> <p>Specifies the list of database instances on which the patch needs to be applied. Specify the value for this option using the following syntax:</p> <p><code>SID:User:Passwd:Node</code></p> <p>Example:</p> <p><code>oracle:dba:dba:mymachine,oracle1:::</code></p> <p>The SID is required, but you can disregard the other parameters if desired, because OPatch provides default values for them.</p> <p><span class="bold">Note:</span> If the system is not part of an Oracle RAC setup and you want to patch just the local node, provide the node name as an empty string.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t17" headers="r1c1-t17"> <p>delay</p> </td> <td align="left" headers="r4c1-t17 r1c2-t17"> <p>If you use the <code>retry</code> option with the <code>rollback</code> command, specifies how many seconds OPatch should wait before attempting to lock the inventory again if a previous failure occurs.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t17" headers="r1c1-t17"> <p>id</p> </td> <td align="left" headers="r5c1-t17 r1c2-t17"> <p>Indicates the patch to be rolled back. Use the <code>lsinventory</code> option to display all patch identifiers. Each one-off patch is indicated by its ID. To successfully roll back a patch, you must provide the patch identifier.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t17" headers="r1c1-t17"> <p>init</p> </td> <td align="left" headers="r6c1-t17 r1c2-t17"> <p>Passes parameters to the init script, which executes before prerequisite checks are run. The values for this option must be enclosed in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t17" headers="r1c1-t17"> <p>invPtrLoc</p> </td> <td align="left" headers="r7c1-t17 r1c2-t17"> <p>Specifies the location of the <code>oraInst.loc</code> file. You need to use this option if you used the <code>invPtrLoc</code> option during installation. Oracle recommends the use of the default Central Inventory for a platform.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t17" headers="r1c1-t17"> <p>jre</p> </td> <td align="left" headers="r8c1-t17 r1c2-t17"> <p>Specifies the location of a particular JRE (Java) for OPatch to use instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t17" headers="r1c1-t17"> <p>local</p> </td> <td align="left" headers="r9c1-t17 r1c2-t17"> <p>Specifies that OPatch roll back the local node, then update the inventory of the local node. It does not propagate the patch or inventory update to other nodes.</p> <p>You can use this option on Oracle Real Application Clusters environments and non-clustered environments. If an entire cluster is shut down before patching, you can use this option for non-rolling patches.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t17" headers="r1c1-t17"> <p>local_node</p> </td> <td align="left" headers="r10c1-t17 r1c2-t17"> <p>Specifies to OPatch that this is the local node for the cluster to be used for rollback.</p> <p>You can use this option for Oracle Real Application Clusters environments.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t17" headers="r1c1-t17"> <p>no_sysmod</p> </td> <td align="left" headers="r11c1-t17 r1c2-t17"> <p>Specifies that OPatch need not update the files in the system, only the inventory. It also does not execute the pre and post scripts.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t17" headers="r1c1-t17"> <p>no_relink</p> </td> <td align="left" headers="r12c1-t17 r1c2-t17"> <p>This option does not perform any <code>make</code> operation in the patch. You can use this option during multiple patch removals and to perform the compilation step only once.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t17" headers="r1c1-t17"> <p>oh</p> </td> <td align="left" headers="r13c1-t17 r1c2-t17"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the <code>ORACLE_HOME</code> environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t17" headers="r1c1-t17"> <p>opatch_init_end</p> </td> <td align="left" headers="r14c1-t17 r1c2-t17"> <p>Marks the end of the <code>init</code> options. Use this option with the <code>init</code> option. If you do not use this option, everything after <code>init</code> until the end of the command is passed into <code>init</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t17" headers="r1c1-t17"> <p>opatch_post_end</p> </td> <td align="left" headers="r15c1-t17 r1c2-t17"> <p>Marks the end of the <code>post</code> options. Use this option with the <code>post</code> option. If you do not use this option, everything after <code>post</code> until the end of the command is passed into <code>post</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t17" headers="r1c1-t17"> <p>opatch_pre_end</p> </td> <td align="left" headers="r16c1-t17 r1c2-t17"> <p>Marks the end of the <code>pre</code> options. Use this option with the <code>pre</code> option. If you do not use this option, everything after <code>pre</code> until the end of the command is passed into <code>pre</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t17" headers="r1c1-t17"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r17c1-t17 r1c2-t17"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r18c1-t17" headers="r1c1-t17"> <p>ph</p> </td> <td align="left" headers="r18c1-t17 r1c2-t17"> <p>Specifies the valid patch directory area. Rollback uses the command types found in the patch directory to identify which commands are used for the current operating system.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r19c1-t17" headers="r1c1-t17"> <p>post</p> </td> <td align="left" headers="r19c1-t17 r1c2-t17"> <p>Specifies the parameters to be passed inside the <code>post</code> script. This script executes after the patch is removed. You must enclose the value of this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r20c1-t17" headers="r1c1-t17"> <p>pre</p> </td> <td align="left" headers="r20c1-t17 r1c2-t17"> <p>Specifies the parameters to be passed inside the <code>pre</code> script. This script executes before the patch is removed. You must enclose the value of this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r21c1-t17" headers="r1c1-t17"> <p>property_file</p> </td> <td align="left" headers="r21c1-t17 r1c2-t17"> <p>Specifies the user-defined property file for OPatch to use. The path to the property file should be absolute. This property file takes precedence over the one that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r22c1-t17" headers="r1c1-t17"> <p>ptlConnect</p> </td> <td align="left" headers="r22c1-t17 r1c2-t17"> <p>Specifies the connection string credentials of the portal schema.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r23c1-t17" headers="r1c1-t17"> <p>ptlSchema</p> </td> <td align="left" headers="r23c1-t17 r1c2-t17"> <p>Specifies the schema of the portal repository.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r24c1-t17" headers="r1c1-t17"> <p>ptlPassword</p> </td> <td align="left" headers="r24c1-t17 r1c2-t17"> <p>Specifies the password of the portal schema.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r25c1-t17" headers="r1c1-t17"> <p>remote_nodes</p> </td> <td align="left" headers="r25c1-t17 r1c2-t17"> <p>Specifies to OPatch the list of remote nodes to be used for rollback of the patch. The node names must be separated with commas, but without spaces.</p> <p>You can use this option on Oracle Real Application Clusters environments.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r26c1-t17" headers="r1c1-t17"> <p>report</p> </td> <td align="left" headers="r26c1-t17 r1c2-t17"> <p>Prints the actions to the screen without executing them.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r27c1-t17" headers="r1c1-t17"> <p>retry</p> </td> <td align="left" headers="r27c1-t17 r1c2-t17"> <p>Instructs OPatch how many times it should retry when there is an inventory lock failure.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r28c1-t17" headers="r1c1-t17"> <p>runSql</p> </td> <td align="left" headers="r28c1-t17 r1c2-t17"> <p>Instructs OPatch to run the SQL script and SQL procedures if they exist in the given patch. For information on SQL and PL/SQL patching, see <a href="#CHDHBEEF">"Schema Patching"</a>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r29c1-t17" headers="r1c1-t17"> <p>sqlScript</p> </td> <td align="left" headers="r29c1-t17 r1c2-t17"> <p>Specifies the custom SQL script that OPatch should run after patching completes. For information on SQL and PL/SQL patching, see <a href="#CHDHBEEF">"Schema Patching"</a>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r30c1-t17" headers="r1c1-t17"> <p>silent</p> </td> <td align="left" headers="r30c1-t17 r1c2-t17"> <p>Suppresses user interaction, and defaults any yes|no questions to "yes". An Oracle Real Application Clusters setup does not support this option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r31c1-t17" headers="r1c1-t17"> <p>verbose</p> </td> <td align="left" headers="r31c1-t17 r1c2-t17"> <p>Prints additional OPatch output to the screen as well as to the log file.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <a id="CHDCDAIB" name="CHDCDAIB"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG323" id="OUICG323"></a><a id="sthref676" name="sthref676"></a><a id="sthref677" name="sthref677"></a>Nrollback Command for OUI-based Oracle Homes</h3> <p>This command rolls back interim patches from several Oracle homes at the same time.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> You must have write permission to the files in the Oracle home before using this command. Otherwise, OPatch fails.</div> <a id="sthref678" name="sthref678"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch nrollback -id <comma-separated list of patch IDs> [-delay <value>] [-invPtrLoc <Path to oraInst.loc> ] [-jdk <LOC> ] [-jre <LOC> ] [-local] [-minimize_downtime] [-no_relink] [-oh <ORACLE_HOME> ] [-retry <value>] [-silent] [-verbose] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes>[ -opatch_post_end] ] [-no_sysmod] [-property_file <Path to property file>] [-local_node <Local node name>] [-remote_nodes <List of remote nodes (node1,node2)>] [ -all_nodes ] [-report] </pre> <a id="sthref679" name="sthref679"></a> <p class="subhead2">Example</p> <p>The following example rolls back patches 1, 2, and 3 that have been installed in the Oracle home:</p> <pre xml:space="preserve" class="oac_no_warn">opatch nrollback -id 1,2,3 </pre> <a id="sthref680" name="sthref680"></a> <p class="subhead2">Options</p> <p><a href="#g1319662">Table 7-8</a> lists the options available for this command.</p> <div class="tblformal"><a id="sthref681" name="sthref681"></a><a id="g1319662" name="g1319662"></a> <p class="titleintable">Table 7-8 Nrollback Options for OUI Patches</p> <table class="Formal" title="Nrollback Options for OUI Patches" summary="Table listing rollback option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t19">Option</th> <th align="left" valign="bottom" id="r1c2-t19">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t19" headers="r1c1-t19"> <p>all_nodes</p> </td> <td align="left" headers="r2c1-t19 r1c2-t19"> <p>Rolls back the patch using the all-nodes mode.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t19" headers="r1c1-t19"> <p>delay</p> </td> <td align="left" headers="r3c1-t19 r1c2-t19"> <p>If you use the <code>retry</code> option with the <code>rollback</code> command, specifies how many seconds OPatch should wait before attempting to lock the inventory again if a previous failure occurs.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t19" headers="r1c1-t19"> <p>id</p> </td> <td align="left" headers="r4c1-t19 r1c2-t19"> <p>Indicates the patch to be rolled back. Use the <code>lsinventory</code> option to display all patch identifiers. Each one-off patch is indicated by its ID. To successfully roll back a patch, you must provide the patch identifier.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t19" headers="r1c1-t19"> <p>invPtrLoc</p> </td> <td align="left" headers="r5c1-t19 r1c2-t19"> <p>Specifies the location of the <code>oraInst.loc</code> file. You need to use this option if you used the <code>invPtrLoc</code> option during installation. Oracle recommends the use of the default Central Inventory for a platform.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t19" headers="r1c1-t19"> <p>jdk</p> </td> <td align="left" headers="r6c1-t19 r1c2-t19"> <p>Instructs OPatch to use JDK (jar) from the specified location instead of the default location under the Oracle home directory. If you do not specify the <code>jre</code> option, JVM is executed from the <code>jdk</code> location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t19" headers="r1c1-t19"> <p>jre</p> </td> <td align="left" headers="r7c1-t19 r1c2-t19"> <p>Specifies the location of a particular JRE (Java) for OPatch to use instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t19" headers="r1c1-t19"> <p>local</p> </td> <td align="left" headers="r8c1-t19 r1c2-t19"> <p>Specifies that OPatch roll back the local node, then update the inventory of the local node. It does not propagate the patch or inventory update to other nodes.</p> <p>You can use this option on Oracle Real Application Clusters environments and non-clustered environments. If an entire cluster is shut down before patching, you can use this option for non-rolling patches.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t19" headers="r1c1-t19"> <p>local_node</p> </td> <td align="left" headers="r9c1-t19 r1c2-t19"> <p>Specifies to OPatch that this is the local node for the cluster to be used for rollback.</p> <p>You can use this option for Oracle Real Application Clusters environments.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t19" headers="r1c1-t19"> <p>minimize_downtime</p> </td> <td align="left" headers="r10c1-t19 r1c2-t19"> <p>Specifies the order of nodes that OPatch should patch.</p> <p>This option only applies to Oracle Real Application Clusters environments. You cannot use it with the <code>-local</code> option with a rolling patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t19" headers="r1c1-t19"> <p>no_sysmod</p> </td> <td align="left" headers="r11c1-t19 r1c2-t19"> <p>Specifies that OPatch need not update the files in the system, only the inventory. It also does not execute the pre and post scripts.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t19" headers="r1c1-t19"> <p>no_relink</p> </td> <td align="left" headers="r12c1-t19 r1c2-t19"> <p>This option does not perform any <code>make</code> operation in the patch. You can use this option during multiple patch removals and to perform the compilation step only once.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t19" headers="r1c1-t19"> <p>oh</p> </td> <td align="left" headers="r13c1-t19 r1c2-t19"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the <code>ORACLE_HOME</code> environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t19" headers="r1c1-t19"> <p>opatch_post_end</p> </td> <td align="left" headers="r14c1-t19 r1c2-t19"> <p>Marks the end of the <code>post</code> options. Use this option with the <code>post</code> option. If you do not use this option, everything after <code>post</code> until the end of the command is passed into <code>post</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t19" headers="r1c1-t19"> <p>opatch_pre_end</p> </td> <td align="left" headers="r15c1-t19 r1c2-t19"> <p>Marks the end of the <code>pre</code> options. Use this option with the <code>pre</code> option. If you do not use this option, everything after <code>pre</code> until the end of the command is passed into <code>pre</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t19" headers="r1c1-t19"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r16c1-t19 r1c2-t19"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t19" headers="r1c1-t19"> <p>property_file</p> </td> <td align="left" headers="r17c1-t19 r1c2-t19"> <p>Specifies the user-defined property file for OPatch to use. The path to the property file should be absolute. This property file takes precedence over the one that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r18c1-t19" headers="r1c1-t19"> <p>remote_nodes</p> </td> <td align="left" headers="r18c1-t19 r1c2-t19"> <p>Specifies to OPatch the list of remote nodes to be used for rollback of the patch. The node names must be separated with commas, but without spaces.</p> <p>You can use this option on Oracle Real Application Clusters environments.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r19c1-t19" headers="r1c1-t19"> <p>report</p> </td> <td align="left" headers="r19c1-t19 r1c2-t19"> <p>Prints the actions to the screen without executing them.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r20c1-t19" headers="r1c1-t19"> <p>retry</p> </td> <td align="left" headers="r20c1-t19 r1c2-t19"> <p>Instructs OPatch how many times it should retry when there is an inventory lock failure.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r21c1-t19" headers="r1c1-t19"> <p>silent</p> </td> <td align="left" headers="r21c1-t19 r1c2-t19"> <p>Suppresses user interaction, and defaults any yes|no questions to "yes". A Real Application Clusters setup does not support this option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r22c1-t19" headers="r1c1-t19"> <p>verbose</p> </td> <td align="left" headers="r22c1-t19 r1c2-t19"> <p>Prints additional OPatch output to the screen as well as to the log file.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <a id="CEGEDFAH" name="CEGEDFAH"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG324" id="OUICG324"></a><a id="sthref682" name="sthref682"></a><a id="sthref683" name="sthref683"></a>Version Command for OUI-based Oracle Homes</h3> <p>This command shows the current version number of the OPatch utility. Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn"><span class="codeinlineitalic"><Path_to_OPatch></span>/opatch version </pre></div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CHDFGDJB" name="CHDFGDJB"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG325" id="OUICG325"></a>Standalone Patching</h2> <p><a id="sthref684" name="sthref684"></a><a id="sthref685" name="sthref685"></a>Standalone patching is available for Oracle homes that have not been installed using the Oracle Universal Installer. Standalone patching does not have Central Inventory registration, but still generates inventory files for the one-off inventory and future conflict checking. OPatch uses the presence of the OUI directory under <code>ORACLE_HOME</code> to determine whether it should operate in OUI-based or standalone mode.</p> <p>The following sections discuss these standalone patching topics:</p> <ul> <li> <p>Unsupported services for standalone patching</p> </li> <li> <p>Standalone patching requirements</p> </li> <li> <p>OPatch commands for standalone patching</p> </li> <li> <p>Use cases</p> </li> </ul> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref686" name="sthref686"></a> <h3 class="sect2"><a name="OUICG326" id="OUICG326"></a>Unsupported Services for Standalone Patching</h3> <p><a id="sthref687" name="sthref687"></a><a id="sthref688" name="sthref688"></a>Standalone patching provides most of the services that OUI-based patching provides. However, standalone patching does not provide the following services that OUI-based patching provides.</p> <a id="sthref689" name="sthref689"></a> <p class="subhead2">Looking up the component inventory</p> <p>Standalone OPatch enables you to look up which patches have been applied to a standalone Oracle home, but it does not support looking up product components. For example, if you run <code>opatch lsinventory</code> on a JDeveloper Oracle Home, OPatch shows a list of patches applied on the home. It does not show which components the home has, however.</p> <a id="sthref690" name="sthref690"></a> <p class="subhead2">Looking up the Central Inventory</p> <p>You cannot run <code>opatch lsinventory –all</code> to list all Oracle homes registered on the host (through the Central Inventory repository).</p> <a id="sthref691" name="sthref691"></a> <p class="subhead2">Migrating from standalone to OUI-based patching and vice versa</p> <p>The assumption is that after you have installed a product as standalone without OUI, it remains standalone. For example, after having installed JDeveloper, you cannot put OUI (through copying or proper installation) onto the Oracle home and expect OPatch to treat the home as an OUI-based Oracle home.</p> <p>Conversely, the assumption is that after you have installed a product with OUI, it remains OUI-based. For example, after you install Oracle RDBMS, you cannot remove OUI (either by removing or proper deinstallation) and expect OPatch to treat the home as a standalone Oracle home. OPatch will not work properly in this case and will corrupt the home.</p> <a id="sthref692" name="sthref692"></a> <p class="subhead2">Interoperating between standalone and OUI-based patches</p> <p>Since you cannot migrate a home from standalone to OUI-based and vice versa, OPatch does not support interoperability between standalone and OUI-based Oracle homes.</p> <a id="sthref693" name="sthref693"></a> <p class="subhead2">Seamlessly working on a cloned standalone Oracle home</p> <p>If you clone a standalone Oracle home S1 to another Oracle home OH2, Opatch will not function properly on the new cloned OH2.</p> <a id="sthref694" name="sthref694"></a> <p class="subhead2">Supporting RAC</p> <p>OPatch relies on OUI to detect Oracle RAC and propagate files. Hence, standalone OPatch does not support RAC; it does not attempt to detect RAC, and its utility will not work. That is, OPatch always runs as <code>opatch apply –local</code>. OPatch does not support any patch propagation from one node to another node. Also, standalone OPatch does not support RAC-related utilities such as <code>opatch util runRemoteMake</code> (invokes relink on remote node).</p> <a id="sthref695" name="sthref695"></a> <p class="subhead2">Performing patch set operations</p> <p>OPatch does not support patch set operations in either standalone or OUI modes. You need to use OUI for patch set operations.</p> </div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref696" name="sthref696"></a> <h3 class="sect2"><a name="OUICG327" id="OUICG327"></a><a id="sthref697" name="sthref697"></a><a id="sthref698" name="sthref698"></a>Standalone Patching Requirements</h3> <p>Standalone patching requires the following environment:</p> <ul> <li> <p>JRE version 1.4 or later</p> </li> <li> <p>Oracle home without OUI</p> </li> <li> <p>OPatch that supports standalone patching</p> </li> </ul> <p>All of the required files and directories must exist for OPatch to function correctly. If any of the files are missing, OPatch perceives that the patch has not been applied. You would then have to take corrective action, returning the standalone inventory to a stable state.</p> </div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref699" name="sthref699"></a> <h3 class="sect2"><a name="OUICG328" id="OUICG328"></a><a id="sthref700" name="sthref700"></a><a id="sthref701" name="sthref701"></a>OPatch Utility for Standalone Homes</h3> <p>As with OUI-based patching, you can run the OPatch utility, located in the <code><Path_to_Oracle_Home>/OPatch</code> directory, with various commands and options. The following string shows the syntax for the OPatch utility:</p> <pre xml:space="preserve" class="oac_no_warn"><span class="codeinlineitalic"><Path_to_OPatch></span>/opatch <span class="codeinlineitalic">[-help] [-r[eport]] [command]</span><span class="codeinlineitalic"> [-option]</span> </pre> <p>where:</p> <ul> <li> <p><span class="italic">help</span> — Displays the help message for the command.</p> </li> <li> <p><span class="italic">report</span> — Prints the actions without executing.</p> </li> <li> <p><span class="italic">command</span> — One of the OPatch commands.</p> </li> <li> <p><span class="italic">option</span> — One of the OPatch command options.</p> </li> </ul> <p><a href="#g1496842">Table 7-9</a> lists the commands available for standalone patching.</p> <div class="tblformal"><a id="sthref702" name="sthref702"></a><a id="g1496842" name="g1496842"></a> <p class="titleintable">Table 7-9 OPatch Standalone Commands</p> <table class="Formal" title="OPatch Standalone Commands" summary="Table listing OPatch options." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t20">Command</th> <th align="left" valign="bottom" id="r1c2-t20">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t20" headers="r1c1-t20"> <p><span class="bold">apply</span></p> </td> <td align="left" headers="r2c1-t20 r1c2-t20"> <p>Installs an interim patch. See <a href="#g1495270">"Apply Command for Standalone OPatch"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t20" headers="r1c1-t20"> <p><span class="bold">lsinventory</span></p> </td> <td align="left" headers="r3c1-t20 r1c2-t20"> <p>Lists what is currently installed on the system. See <a href="#g1495691">"Lsinventory Command for Standalone OPatch"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t20" headers="r1c1-t20"> <p><span class="bold">query</span></p> </td> <td align="left" headers="r4c1-t20 r1c2-t20"> <p>Queries a given patch for specific details. See <a href="#g1495872">"Query Command for Standalone OPatch"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t20" headers="r1c1-t20"> <p><span class="bold">rollback</span></p> </td> <td align="left" headers="r5c1-t20 r1c2-t20"> <p>Removes an interim patch. See <a href="#g1496119">"Rollback Command for Standalone OPatch"</a> for more information.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t20" headers="r1c1-t20"> <p><span class="bold">version</span></p> </td> <td align="left" headers="r6c1-t20 r1c2-t20"> <p>Prints the current version of the patch tool. See <a href="#g1496576">"Version Command for Standalone OPatch"</a> for more information.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <p>The following sections provide the syntax and options for each of these commands.</p> <a id="g1495270" name="g1495270"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3"><a name="OUICG329" id="OUICG329"></a>Apply Command for Standalone OPatch</h4> <p><a id="sthref703" name="sthref703"></a><a id="sthref704" name="sthref704"></a>The Apply command applies an interim patch to a standalone home from the current directory.</p> <a id="sthref705" name="sthref705"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch apply [ -force ] [-jre <LOC> ] [-no_bug_superset ] [-no_inventory ] [-oh <ORACLE_HOME> ][-silent ][-verbose ] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped quotes> [-opatch_post_end] ] [-no_sysmod] [-property_file <Path to property file>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report] [<Patch Location>] </pre> <a id="sthref706" name="sthref706"></a> <p class="subhead2">Options</p> <p><a href="#g1495327">Table 7-10</a> lists the options available for the Apply command.</p> <div class="tblformal"><a id="sthref707" name="sthref707"></a><a id="g1495327" name="g1495327"></a> <p class="titleintable">Table 7-10 Apply Options for Standalone Patches</p> <table class="Formal" title="Apply Options for Standalone Patches" summary="Table listing apply option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t21">Option</th> <th align="left" valign="bottom" id="r1c2-t21">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t21" headers="r1c1-t21"> <p>force</p> </td> <td align="left" headers="r2c1-t21 r1c2-t21"> <p>Removes conflicting patches from the system by enabling you to change the product and version number of the standalone Oracle home. OPatch removes all the conflicting patches before applying the current patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t21" headers="r1c1-t21"> <p>init</p> </td> <td align="left" headers="r3c1-t21 r1c2-t21"> <p>Passes parameters to the <code>init</code> script, which executes before prerequisite checks are run. The values for this option must be enclosed in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t21" headers="r1c1-t21"> <p>jre</p> </td> <td align="left" headers="r4c1-t21 r1c2-t21"> <p>Instructs OPatch to use JRE (Java) from the specified location instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t21" headers="r1c1-t21"> <p>no_bug_superset</p> </td> <td align="left" headers="r5c1-t21 r1c2-t21"> <p>Specifies to error out if the current patch's bugs-to-fix is a superset (or same set) of an installed patch's bugs-fixed in the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t21" headers="r1c1-t21"> <p>no_inventory</p> </td> <td align="left" headers="r6c1-t21 r1c2-t21"> <p>Bypasses the inventory for reading and updates. You cannot use this option with the <code>local</code> option. This option places the installation into an unsupported state.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t21" headers="r1c1-t21"> <p>no_relink</p> </td> <td align="left" headers="r7c1-t21 r1c2-t21"> <p>This option does not perform any <code>make</code> operations. You can use it during multiple patch applications and to perform the linking step only once. OPatch does not keep track of the <code>make</code> operations it did not perform. You need to make sure to execute OPatch without this option at the end for compilation.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t21" headers="r1c1-t21"> <p>no_sysmod</p> </td> <td align="left" headers="r8c1-t21 r1c2-t21"> <p>Specifies that OPatch does not need to update the files in the system. It only updates the inventory. It also does not execute the pre and post scripts.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t21" headers="r1c1-t21"> <p>oh</p> </td> <td align="left" headers="r9c1-t21 r1c2-t21"> <p>Specifies the Oracle home directory to use instead of the default. This takes precedence over the environment variable <code>ORACLE_HOME</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t21" headers="r1c1-t21"> <p>opatch_init_end</p> </td> <td align="left" headers="r10c1-t21 r1c2-t21"> <p>Marks the end of the init options. You use this option with the <code>init</code> option. If you do not use this option, everything after <code>init</code> until the end of the command is passed into <code>init</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t21" headers="r1c1-t21"> <p>opatch_post_end</p> </td> <td align="left" headers="r11c1-t21 r1c2-t21"> <p>Marks the end of the <code>post</code> option. You use this option with the <code>post</code> option. If you do not use this option, everything after <code>post</code> until the end of the command is passed into <code>post</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t21" headers="r1c1-t21"> <p>opatch_pre_end</p> </td> <td align="left" headers="r12c1-t21 r1c2-t21"> <p>Marks the end of the <code>pre</code> options. You use this option with the <code>pre</code> option. If you do not use this option, everything after <code>pre</code> until the end of the command is passed into <code>pre</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t21" headers="r1c1-t21"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r13c1-t21 r1c2-t21"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t21" headers="r1c1-t21"> <p>post</p> </td> <td align="left" headers="r14c1-t21 r1c2-t21"> <p>Specifies the parameters to be passed to the <code>post</code> script. This script is executed after the patch is applied. You need to enclose the values for this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t21" headers="r1c1-t21"> <p>pre</p> </td> <td align="left" headers="r15c1-t21 r1c2-t21"> <p>Specifies the parameters to be passed to the <code>pre</code> script. This script is executed before the patch is applied. You need to enclose the values for this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t21" headers="r1c1-t21"> <p>property_file</p> </td> <td align="left" headers="r16c1-t21 r1c2-t21"> <p>Specifies the user-defined property file for OPatch to use. The path to the property file should be absolute. This property file takes precedence over the one that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t21" headers="r1c1-t21"> <p>silent</p> </td> <td align="left" headers="r17c1-t21 r1c2-t21"> <p>Suppresses user interaction, and defaults any answers to "yes."</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r18c1-t21" headers="r1c1-t21"> <p>verbose</p> </td> <td align="left" headers="r18c1-t21 r1c2-t21"> <p>Prints additional OPatch output to the screen as well as to the log file.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --> <a id="g1495691" name="g1495691"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3"><a name="OUICG330" id="OUICG330"></a>Lsinventory Command for Standalone OPatch</h4> <p><a id="sthref708" name="sthref708"></a><a id="sthref709" name="sthref709"></a>The Lsinventory command lists the inventory for a particular Oracle home, or displays all installations that can be found. This command does not have any required options.</p> <a id="sthref710" name="sthref710"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch lsinventory [-all ] [-detail ] [-jre <LOC> ] [-oh <ORACLE_HOME> ] [-patch] [-oh] [-property_file <path to property file>] </pre> <a id="sthref711" name="sthref711"></a> <p class="subhead2">Options</p> <p><a href="#g1495924">Table 7-12</a> lists the options available for the Lsinventory command.</p> <div class="tblformal"><a id="sthref712" name="sthref712"></a><a id="sthref713" name="sthref713"></a> <p class="titleintable">Table 7-11 Lsinventory Options for Standalone Patches</p> <table class="Formal" title="Lsinventory Options for Standalone Patches" summary="Table listing lsinventory option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t22">Option</th> <th align="left" valign="bottom" id="r1c2-t22">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t22" headers="r1c1-t22"> <p>all</p> </td> <td align="left" headers="r2c1-t22 r1c2-t22"> <p>Reports the name and installation directory for each Oracle home directory found.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t22" headers="r1c1-t22"> <p>detail</p> </td> <td align="left" headers="r3c1-t22 r1c2-t22"> <p>Reports the installed products and other details. You cannot use this option with the <code>all</code> option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t22" headers="r1c1-t22"> <p>jre</p> </td> <td align="left" headers="r4c1-t22 r1c2-t22"> <p>Specifies the location of a particular JRE (Java) for OPatch to use instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t22" headers="r1c1-t22"> <p>oh</p> </td> <td align="left" headers="r5c1-t22 r1c2-t22"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the <code>ORACLE_HOME</code> environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t22" headers="r1c1-t22"> <p>patch</p> </td> <td align="left" headers="r6c1-t22 r1c2-t22"> <p>Specifies the patches installed in the Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t22" headers="r1c1-t22"> <p>property_file</p> </td> <td align="left" headers="r7c1-t22 r1c2-t22"> <p>Indicates the user-defined property file that OPatch should use. The path to the property should be absolute. This property file takes precedence over the property file that OPatch supplies.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --> <a id="g1495872" name="g1495872"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3"><a name="OUICG331" id="OUICG331"></a>Query Command for Standalone OPatch</h4> <p><a id="sthref714" name="sthref714"></a><a id="sthref715" name="sthref715"></a>This command queries a specific patch for specific details. It provides information about the patch and the system being patched.</p> <a id="sthref716" name="sthref716"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch query [-all] [-jre <LOC> ] [-oh <LOC> ] [-get_component] [-get_os] [-get_date] [-get_base_bug] [-is_portal_patch] [-is_rolling_patch] [-is_online_patch] [-has_sql] [ <Patch Location> ] </pre> <a id="sthref717" name="sthref717"></a> <p class="subhead2">Options</p> <p><a href="#g1495924">Table 7-12</a> lists the options available for the Query command.</p> <div class="tblformal"><a id="sthref718" name="sthref718"></a><a id="g1495924" name="g1495924"></a> <p class="titleintable">Table 7-12 Query Options</p> <table class="Formal" title="Query Options" summary="Table listing query option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t23">Option</th> <th align="left" valign="bottom" id="r1c2-t23">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t23" headers="r1c1-t23"> <p>all</p> </td> <td align="left" headers="r2c1-t23 r1c2-t23"> <p>Retrieves all information about a patch. This is equivalent to setting all available options.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t23" headers="r1c1-t23"> <p>get_base_bug</p> </td> <td align="left" headers="r3c1-t23 r1c2-t23"> <p>Retrieves bugs fixed by the patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t23" headers="r1c1-t23"> <p>get_component</p> </td> <td align="left" headers="r4c1-t23 r1c2-t23"> <p>Retrieves components the patch affects.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t23" headers="r1c1-t23"> <p>get_date</p> </td> <td align="left" headers="r5c1-t23 r1c2-t23"> <p>Retrieves the patch creation date and time.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t23" headers="r1c1-t23"> <p>has_sql</p> </td> <td align="left" headers="r6c1-t23 r1c2-t23"> <p>Indicates true if the patch has SQL-related actions. Otherwise, the option is false. For information on SQL and PL/SQL patching, see <a href="#CHDHBEEF">"Schema Patching"</a>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t23" headers="r1c1-t23"> <p>is_online_patch</p> </td> <td align="left" headers="r7c1-t23 r1c2-t23"> <p>Indicates true if the patch is an online patch. Otherwise, the option is false.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t23" headers="r1c1-t23"> <p>is_portal_patch</p> </td> <td align="left" headers="r8c1-t23 r1c2-t23"> <p>Indicates true if the patch has portal actions. Otherwise, the option is false.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t23" headers="r1c1-t23"> <p>is_rolling_patch</p> </td> <td align="left" headers="r9c1-t23 r1c2-t23"> <p>Indicates true if the patch is a rolling patch. Otherwise, the option is false.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t23" headers="r1c1-t23"> <p>oh</p> </td> <td align="left" headers="r10c1-t23 r1c2-t23"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the <code>ORACLE_HOME</code> environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t23" headers="r1c1-t23"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r11c1-t23 r1c2-t23"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --> <a id="g1496119" name="g1496119"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3"><a name="OUICG332" id="OUICG332"></a>Rollback Command for Standalone OPatch</h4> <p><a id="sthref719" name="sthref719"></a><a id="sthref720" name="sthref720"></a>The Rollback command removes an existing one-off patch from the appropriate Oracle home directory indicated by the reference ID.</p> <a id="sthref721" name="sthref721"></a> <p class="subhead2">Syntax</p> <p>Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch rollback -id <ID> [-ph <Patch Location>] [-jre <LOC> ] [-oh <ORACLE_HOME>] [-silent] [-verbose] [-no_relink] [-pre <parameters for the pre script in escaped double quotes> [-opatch_pre_end] ] [-post <parameters for the post script in escaped double quotes>[ -opatch_post_end] ] [-no_sysmod] [-property_file <path to property file>] [-init <parameters for the init script in escaped double quotes> [-opatch_init_end] ] [-report] </pre> <a id="sthref722" name="sthref722"></a> <p class="subhead2">Options</p> <p><a href="#g1496212">Table 7-13</a> lists the options available for the Rollback command.</p> <div class="tblformal"><a id="sthref723" name="sthref723"></a><a id="g1496212" name="g1496212"></a> <p class="titleintable">Table 7-13 Rollback Options for Standalone Patches</p> <table class="Formal" title="Rollback Options for Standalone Patches" summary="Table listing rollback option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t24">Option</th> <th align="left" valign="bottom" id="r1c2-t24">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t24" headers="r1c1-t24"> <p>id</p> </td> <td align="left" headers="r2c1-t24 r1c2-t24"> <p>Indicates the patch to be rolled back. Use the <code>lsinventory</code> option to display all patch identifiers. Each one-off patch is indicated by its ID. To successfully roll back a patch, you must provide the patch identifier.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t24" headers="r1c1-t24"> <p>init</p> </td> <td align="left" headers="r3c1-t24 r1c2-t24"> <p>Passes parameters to the init script, which executes before prerequisite checks are run. The values for this option must be enclosed in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t24" headers="r1c1-t24"> <p>jre</p> </td> <td align="left" headers="r4c1-t24 r1c2-t24"> <p>Specifies the location of a particular JRE (Java) for OPatch to use instead of the default location under the Oracle home directory.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t24" headers="r1c1-t24"> <p>no_sysmod</p> </td> <td align="left" headers="r5c1-t24 r1c2-t24"> <p>Specifies that OPatch need not update the files in the system, only the inventory. It also does not execute the pre and post scripts.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r6c1-t24" headers="r1c1-t24"> <p>no_relink</p> </td> <td align="left" headers="r6c1-t24 r1c2-t24"> <p>This option does not perform any <code>make</code> operation in the patch. You can use this option during multiple patch removals and to perform the compilation step only once.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r7c1-t24" headers="r1c1-t24"> <p>oh</p> </td> <td align="left" headers="r7c1-t24 r1c2-t24"> <p>Specifies the Oracle home directory to use instead of the default directory. This takes precedence over the <code>ORACLE_HOME</code> environment variable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r8c1-t24" headers="r1c1-t24"> <p>opatch_init_end</p> </td> <td align="left" headers="r8c1-t24 r1c2-t24"> <p>Marks the end of the <code>init</code> options. Use this option with the <code>init</code> option. If you do not use this option, everything after <code>init</code> until the end of the command is passed into <code>init</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r9c1-t24" headers="r1c1-t24"> <p>opatch_post_end</p> </td> <td align="left" headers="r9c1-t24 r1c2-t24"> <p>Marks the end of the <code>post</code> options. Use this option with the <code>post</code> option. If you do not use this option, everything after <code>post</code> until the end of the command is passed into <code>post</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r10c1-t24" headers="r1c1-t24"> <p>opatch_pre_end</p> </td> <td align="left" headers="r10c1-t24 r1c2-t24"> <p>Marks the end of the <code>pre</code> options. Use this option with the <code>pre</code> option. If you do not use this option, everything after <code>pre</code> until the end of the command is passed into <code>pre</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r11c1-t24" headers="r1c1-t24"> <p><span class="italic">Patch Location</span></p> </td> <td align="left" headers="r11c1-t24 r1c2-t24"> <p>Indicates the path to the patch location. If you do not specify the location, OPatch assumes the current directory is the patch location.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r12c1-t24" headers="r1c1-t24"> <p>ph</p> </td> <td align="left" headers="r12c1-t24 r1c2-t24"> <p>Specifies the valid patch directory area. Rollback uses the command types found in the patch directory to identify which commands are used for the current operating system.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r13c1-t24" headers="r1c1-t24"> <p>post</p> </td> <td align="left" headers="r13c1-t24 r1c2-t24"> <p>Specifies the parameters to be passed inside the <code>post</code> script. This script executes after the patch is removed. You must enclose the value of this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r14c1-t24" headers="r1c1-t24"> <p>pre</p> </td> <td align="left" headers="r14c1-t24 r1c2-t24"> <p>Specifies the parameters to be passed inside the <code>pre</code> script. This script executes before the patch is removed. You must enclose the value of this option in double-quotes.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r15c1-t24" headers="r1c1-t24"> <p>property_file</p> </td> <td align="left" headers="r15c1-t24 r1c2-t24"> <p>Specifies the user-defined property file for OPatch to use. The path to the property file should be absolute. This property file takes precedence over the one that OPatch supplies.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r16c1-t24" headers="r1c1-t24"> <p>report</p> </td> <td align="left" headers="r16c1-t24 r1c2-t24"> <p>Prints the actions to the screen without executing them.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r17c1-t24" headers="r1c1-t24"> <p>silent</p> </td> <td align="left" headers="r17c1-t24 r1c2-t24"> <p>Suppresses user interaction, and defaults any yes|no questions to "yes". An Oracle Real Application Clusters setup does not support this option.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r18c1-t24" headers="r1c1-t24"> <p>verbose</p> </td> <td align="left" headers="r18c1-t24 r1c2-t24"> <p>Prints additional OPatch output to the screen as well as to the log file.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --> <a id="g1496576" name="g1496576"></a> <div class="sect3"><!-- infolevel="all" infotype="General" --> <h4 class="sect3"><a name="OUICG333" id="OUICG333"></a>Version Command for Standalone OPatch</h4> <p><a id="sthref724" name="sthref724"></a><a id="sthref725" name="sthref725"></a>This command shows the current version number of the OPatch utility. Use the following syntax for this command:</p> <pre xml:space="preserve" class="oac_no_warn"><span class="codeinlineitalic"><Path_to_OPatch></span>/opatch version </pre></div> <!-- class="sect3" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref726" name="sthref726"></a> <h3 class="sect2"><a name="OUICG334" id="OUICG334"></a>Use Cases</h3> <p>The following sections provide scenarios that administrators can encounter when implementing standalone patching for the following types of operations:</p> <ul> <li> <p>Inventory</p> </li> <li> <p>Patching</p> </li> <li> <p>Utility</p> </li> </ul> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref727" name="sthref727"></a> <h4 class="sect3"><a name="OUICG335" id="OUICG335"></a><a id="sthref728" name="sthref728"></a><a id="sthref729" name="sthref729"></a>Inventory Operations</h4> <p>The following tables explain the purpose of the use case along with preconditions and the process that occurs during the patching process.</p> <div class="tblformal"><a id="sthref730" name="sthref730"></a><a id="sthref731" name="sthref731"></a> <p class="titleintable">Table 7-14 Getting Patch Information</p> <table class="Formal" title="Getting Patch Information" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t25">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t25">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t25" headers="r1c1-t25"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t25 r1c2-t25"> <p>Show a list of interim patches installed on a standalone Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t25" headers="r1c1-t25"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t25 r1c2-t25"> <p><code>$ORACLE_HOME</code> is set and the Oracle home has been patched using the standalone OPatch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t25" headers="r1c1-t25"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t25 r1c2-t25"> <p>Enter the following command:</p> <p><code>opatch lsinventory</code></p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t25" headers="r1c1-t25"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t25 r1c2-t25"> <ol> <li> <p>OPatch detects that this is a standalone Oracle home.</p> </li> <li> <p>OPatch looks for the standalone inventory file.</p> </li> <li> <p>OPatch prints out a list of installed interim patches.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <div class="tblformal"><a id="sthref732" name="sthref732"></a><a id="sthref733" name="sthref733"></a> <p class="titleintable">Table 7-15 Getting Detailed Patch Information</p> <table class="Formal" title="Getting Detailed Patch Information" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t26">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t26">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t26" headers="r1c1-t26"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t26 r1c2-t26"> <p>Show a detailed list of interim patches installed on a standalone Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t26" headers="r1c1-t26"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t26 r1c2-t26"> <p><code>$ORACLE_HOME</code> is set and the Oracle home has been patched using the standalone OPatch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t26" headers="r1c1-t26"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t26 r1c2-t26"> <p>Enter the following command:</p> <p><code>opatch lsinventory -detail</code></p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t26" headers="r1c1-t26"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t26 r1c2-t26"> <ol> <li> <p>OPatch detects that this is a standalone Oracle home.</p> </li> <li> <p>OPatch looks for the standalone inventory file.</p> </li> <li> <p>OPatch prints out a list of installed interim patches as well as files affected by each interim patch.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref734" name="sthref734"></a> <h4 class="sect3"><a name="OUICG336" id="OUICG336"></a><a id="sthref735" name="sthref735"></a><a id="sthref736" name="sthref736"></a>Patching Operations</h4> <p>The following tables explain the purpose of the use case along with preconditions and the process that occurs during the patching process.</p> <div class="tblformal"><a id="sthref737" name="sthref737"></a><a id="sthref738" name="sthref738"></a> <p class="titleintable">Table 7-16 Applying an Interim Patch - Case 1</p> <table class="Formal" title="Applying an Interim Patch - Case 1" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t27">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t27">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t27" headers="r1c1-t27"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t27 r1c2-t27"> <p>Apply an interim patch on a standalone Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t27" headers="r1c1-t27"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t27 r1c2-t27"> <p><code>$ORACLE_HOME</code> is set and the Oracle home has been patched using the standalone OPatch. The patch has been downloaded.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t27" headers="r1c1-t27"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t27 r1c2-t27"> <p>Enter the following command:</p> <p><code>opatch apply/patch_loc/123451</code></p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t27" headers="r1c1-t27"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t27 r1c2-t27"> <ol> <li> <p>OPatch detects that this is a standalone Oracle home.</p> </li> <li> <p>OPatch looks for the standalone inventory file and checks for conflicts.</p> </li> <li> <p>OPatch performs an automatic rollback if there are conflicting patches.</p> </li> <li> <p>OPatch applies a new patch to the home.</p> </li> <li> <p>OPatch updates its standalone inventory.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <div class="tblformal"><a id="sthref739" name="sthref739"></a><a id="sthref740" name="sthref740"></a> <p class="titleintable">Table 7-17 Applying an Interim Patch - Case 2</p> <table class="Formal" title="Applying an Interim Patch - Case 2" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t28">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t28">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t28" headers="r1c1-t28"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t28 r1c2-t28"> <p>Apply an interim patch on a standalone Oracle home that exists within another OUI-based Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t28" headers="r1c1-t28"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t28 r1c2-t28"> <p><code>$ORACLE_HOME</code> is set and the Oracle home has been patched using a new OPatch. The patch has been downloaded.</p> <p>The standalone Oracle home has a different directory patch than the OUI-based Oracle home. For example, the OUI-based Oracle home path is <code>/path</code>, whereas the standalone Oracle home is <code>/path/dev</code>.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t28" headers="r1c1-t28"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t28 r1c2-t28"> <p>Enter the following command:</p> <p><code>opatch apply/patch_loc/123451</code></p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t28" headers="r1c1-t28"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t28 r1c2-t28"> <ol> <li> <p>OPatch detects that this is a standalone Oracle home.</p> </li> <li> <p>OPatch looks for the standalone inventory file and checks for conflicts.</p> </li> <li> <p>OPatch performs an automatic rollback if there are conflicting patches.</p> </li> <li> <p>OPatch applies a new patch to the home.</p> </li> <li> <p>OPatch updates its standalone inventory.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <div class="tblformal"><a id="sthref741" name="sthref741"></a><a id="sthref742" name="sthref742"></a> <p class="titleintable">Table 7-18 Applying an Interim Patch - Case 3</p> <table class="Formal" title="Applying an Interim Patch - Case 3" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t29">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t29">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t29" headers="r1c1-t29"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t29 r1c2-t29"> <p>Apply an interim patch on a standalone Oracle. It seems to be a standalone Oracle home, but OPatch detects it as OUI-based.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t29" headers="r1c1-t29"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t29 r1c2-t29"> <p><code>$ORACLE_HOME</code> is set and the Oracle home has been patched using a new OPatch. The patch has been downloaded.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t29" headers="r1c1-t29"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t29 r1c2-t29"> <p>Enter the following command:</p> <p><code>opatch apply/patch_loc/123451</code></p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t29" headers="r1c1-t29"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t29 r1c2-t29"> <ol> <li> <p>OPatch detects <code>ORACLE_HOME/oui</code> and believes it is an OUI-based Oracle home.</p> </li> <li> <p>OPatch attempts to apply the patch as OUI-based Oracle home patching (if the patch is compatible with the home).</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <div class="tblformal"><a id="sthref743" name="sthref743"></a><a id="sthref744" name="sthref744"></a> <p class="titleintable">Table 7-19 Rolling Back an Applied Interim Patch</p> <table class="Formal" title="Rolling Back an Applied Interim Patch" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t30">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t30">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t30" headers="r1c1-t30"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t30 r1c2-t30"> <p>Roll back an interim patch applied earlier on a standalone Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t30" headers="r1c1-t30"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t30 r1c2-t30"> <p><code>$ORACLE_HOME</code> is set and the Oracle home has been patched using a standalone OPatch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t30" headers="r1c1-t30"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t30 r1c2-t30"> <p>Enter the following command:</p> <p><code>opatch rollback -id 123451</code></p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t30" headers="r1c1-t30"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t30 r1c2-t30"> <ol> <li> <p>OPatch detects this is a standalone Oracle home.</p> </li> <li> <p>OPatch examines the standalone inventory file to determine if patch 123451 was applied.</p> </li> <li> <p>OPatch rolls back patch 123451.</p> </li> <li> <p>OPatch updates its standalone directory.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref745" name="sthref745"></a> <h4 class="sect3"><a name="OUICG337" id="OUICG337"></a><a id="sthref746" name="sthref746"></a><a id="sthref747" name="sthref747"></a>Utility Operations</h4> <p>The following tables explain the purpose of the use case along with preconditions and the process that occurs during the patching process.</p> <div class="tblformal"><a id="sthref748" name="sthref748"></a><a id="sthref749" name="sthref749"></a> <p class="titleintable">Table 7-20 Loading an Arbitrary XML File</p> <table class="Formal" title="Loading an Arbitrary XML File" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t31">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t31">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t31" headers="r1c1-t31"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t31 r1c2-t31"> <p>Load an XML file, making sure it is XML-parsable.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t31" headers="r1c1-t31"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t31 r1c2-t31"> <p><code>$ORACLE_HOME</code> is set.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t31" headers="r1c1-t31"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t31 r1c2-t31"> <p>Enter the following command:</p> <p><code>opatch util loadXML</code></p> <p>Note that the loadXML utility is often used as a debugging and troubleshooting tool.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t31" headers="r1c1-t31"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t31 r1c2-t31"> <ol> <li> <p>OPatch detects this is a standalone Oracle home.</p> </li> <li> <p>OPatch prompts for the complete path to the XML file that you want to load.</p> </li> <li> <p>OPatch opens the file and uses the XML parser to parse it.</p> </li> <li> <p>OPatch reports that the file is XML-parsable.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --> <div class="tblformal"><a id="sthref750" name="sthref750"></a><a id="sthref751" name="sthref751"></a> <p class="titleintable">Table 7-21 Verifying that the Patch is Applied</p> <table class="Formal" title="Verifying that the Patch is Applied" summary="Table provides the goal, preconditions, user input, and OPatch response for applying a patch with a custom SQL script" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t32">Use Case Category</th> <th align="left" valign="bottom" id="r1c2-t32">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t32" headers="r1c1-t32"> <p><span class="bold">Purpose</span></p> </td> <td align="left" headers="r2c1-t32 r1c2-t32"> <p>Ensure that the patch was applied to the Oracle home.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t32" headers="r1c1-t32"> <p><span class="bold">Preconditions</span></p> </td> <td align="left" headers="r3c1-t32 r1c2-t32"> <p><code>$ORACLE_HOME</code> is set, and the Oracle home has been patched using the standalone OPatch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t32" headers="r1c1-t32"> <p><span class="bold">User Input</span></p> </td> <td align="left" headers="r4c1-t32 r1c2-t32"> <p>Enter the following command:</p> <p><code>opatch util verify -ph/patch_loc/123451</code></p> <p>Note that patch verification is automatically invoked when OPatch applies a patch to an Oracle home. You do not need to rerun <code>verify</code> after applying a patch.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r5c1-t32" headers="r1c1-t32"> <p><span class="bold">OPatch Response</span></p> </td> <td align="left" headers="r5c1-t32 r1c2-t32"> <ol> <li> <p>OPatch detects this is a standalone Oracle home.</p> </li> <li> <p>OPatch examines <code>/patch_loc/123451</code> to make sure it is a valid patch area.</p> </li> <li> <p>OPatch examines the files in <code>/patch_loc/123451</code> to make sure the Oracle home was patched with the same bits.</p> </li> <li> <p>OPatch reports that both the patch inventory and patch binary are in the Oracle home.</p> </li> </ol> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect3" --></div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CHDHBEEF" name="CHDHBEEF"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG338" id="OUICG338"></a>Schema Patching</h2> <p>There are two types of schema patches:</p> <ul> <li> <p><span class="bold">SQL patch</span> — This patches the Oracle database with updated procedures and schema changes.</p> </li> <li> <p><span class="bold">PL/SQL patch</span> — This also patches the Oracle database with updated procedures and schema changes, as for the SQL patch. However, a PL/SQL patch also mentions the procedure names in its patch metadata so that these procedures can be backed up for rollback.</p> </li> </ul> <p>The following sections discuss these topics:</p> <ul> <li> <p>Schema patching options</p> </li> <li> <p>Standalone SQL execution</p> </li> </ul> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref752" name="sthref752"></a> <h3 class="sect2"><a name="OUICG339" id="OUICG339"></a><a id="sthref753" name="sthref753"></a><a id="sthref754" name="sthref754"></a>Schema Patching Options</h3> <p><a href="#g1502950">Table 7-22</a> shows the schema patching options that OPatch supports for Apply and Rollback:</p> <div class="tblformal"><a id="sthref755" name="sthref755"></a><a id="g1502950" name="g1502950"></a> <p class="titleintable">Table 7-22 Schema Patching Options</p> <table class="Formal" title="Schema Patching Options" summary="Table listing lsinventory option command line arguments." dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="31%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t33">Option</th> <th align="left" valign="bottom" id="r1c2-t33">Description</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t33" headers="r1c1-t33"> <p><span class="bold">-runSql</span></p> </td> <td align="left" headers="r2c1-t33 r1c2-t33"> <p>Instructs OPatch to read the SQL script from the patch and run it on the specified SIDs. You must specify this option for the <code>patchmd.xml</code> SQL script specification and custom SQL script.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t33" headers="r1c1-t33"> <p><span class="bold">-sqlScript</span></p> </td> <td align="left" headers="r3c1-t33 r1c2-t33"> <p>Specifies OPatch to run this custom SQL script. This is an optional parameter.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r4c1-t33" headers="r1c1-t33"> <p><span class="bold">-connectString</span></p> </td> <td align="left" headers="r4c1-t33 r1c2-t33"> <p>Provides a list of database instance SIDs, user, and password to be patched. Each entry is separated by a comma ( , ). The value for this option has the following format:</p> <p><code>SID1:USER1:PASSWORD1:NODE1</code>, <code>SID2:USER2:PASSWORD2:NODE2</code></p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref756" name="sthref756"></a> <h3 class="sect2"><a name="OUICG340" id="OUICG340"></a><a id="sthref757" name="sthref757"></a><a id="sthref758" name="sthref758"></a>Standalone SQL Execution</h3> <p>OPatch provides a utility to run only the SQL scripts to patch specified database instances. Use this utility only when you cannot apply or roll back SQL procedure actions using normal Apply or Rollback sessions.</p> <p>The syntax for Apply is as follows:</p> <pre xml:space="preserve" class="oac_no_warn">opatch util applySql –id <patchIDs> -connectString <SID1:USER1:PASSWORD1:NODE1> </pre> <p>The syntax for Rollback is as follows:</p> <pre xml:space="preserve" class="oac_no_warn">opatch util rollbackSql –ph <patchLocation> (or) –phBaseFile <filename> (or) –phBaseDir <dirname> -connectString <SID1:USER1:PASSWORD1:NODE1> </pre></div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CHDCGJEB" name="CHDCGJEB"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG341" id="OUICG341"></a>Online Patching</h2> <p><a id="sthref759" name="sthref759"></a><a id="sthref760" name="sthref760"></a>Regular patches typically contain <code>.o</code> (object) files and/or <code>.a</code> (archive) libraries, and therefore require a relink of the RDBMS binary. Online patches, however, contain <code>.so</code> files, which are dynamic/shared libraries, and do not require a relink of the RDBMS binary. Consequently, since a relink is not needed, you can apply or roll back online patches while the RDBMS instance is running. This simplifies administration, because no downtime is needed, and also results in a much quicker turnaround time for installing or de-installing Online Patches.</p> <p>A regular RDBMS patch can require many minutes to install, since it requires instance shutdown, a relink, and instance startup. On the other hand, you can install an online patch in just a few seconds.</p> <p>Online patches are only applicable for Oracle RDBMS and not any other products. Online patches are currently supported on the following Windows and UNIX platforms:</p> <ul> <li> <p>Linux x86 32-bit</p> </li> <li> <p>Linux IA64</p> </li> <li> <p>Linux PPC 64</p> </li> <li> <p>Solaris 64-bit</p> </li> <li> <p>Windows x86 32-bit</p> </li> <li> <p>Windows x64 64-bit</p> </li> </ul> </div> <!-- class="sect1" --> <a id="CHDECBJA" name="CHDECBJA"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG342" id="OUICG342"></a>Oracle Real Application Clusters Patching</h2> <p>An Oracle Real Application Clusters environment enables active instances to concurrently execute transactions on a shared database. Patching in an Oracle Real Application Clusters environment is slightly different compared to patching a single node.</p> <p>Interim Patching using OPatch follows a similar approach as that performed by Oracle Universal Installer to detect Oracle home and nodes of a cluster. OPatch interacts with the Oracle Universal Installer inventory through the Oracle Universal Installer Java SDK. If OPatch detects a cluster, it queries the inventory through Oracle Universal Installer to find the local node name and node list. If your node list is not updated, you can update it by using the <code>-updateNodeList</code> flag of Oracle Universal Installer. You can bypass remote actions using the <code>-local</code> flag, as shown below:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/oui/bin/<runInstaller or setup.exe> -updateNodeList ORACLE_ HOME=<oracle home location> "CLUSTER_NODES={node1,node2,node3}" -noClusterEnabled </pre> <p>If you want to specify the local node or remote nodes of an Oracle Real Application Clusters setup to OPatch, you can use the <code>LOCAL_NODE</code> or <code>REMOTE_NODES</code> session variable and specify the node name(s), as shown below:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/oui/bin/<runInstaller or setup.exe> ORACLE_HOME=<oracle home location> "REMOTE_NODES={node1,node2,node3}" LOCAL_NODE=<nodelist for example:node1> </pre> <p>If OPatch does not automatically detect Oracle Real Application Clusters or its nodes, you need to investigate the contents of the inventory and ensure that it is complete.</p> <p>You can patch Oracle Real Application Clusters in three different ways:</p> <ul> <li> <p><a href="#g1503595">All Node Patching</a></p> </li> <li> <p><a href="#g1503635">Rolling Patching</a></p> </li> <li> <p><a href="#g1503734">Minimum Downtime Patching</a></p> </li> </ul> <p>The following sections provide detailed information for these types of Oracle Real Application Clusters patching.</p> <a id="g1503595" name="g1503595"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG343" id="OUICG343"></a><a id="sthref761" name="sthref761"></a><a id="sthref762" name="sthref762"></a>All Node Patching</h3> <p>Figure 7–1 shows a basic example of All Node Patching.<a id="sthref763" name="sthref763"></a><a id="sthref764" name="sthref764"></a><a id="sthref765" name="sthref765"></a></p> <div class="figure"><a id="g1503656" name="g1503656"></a> <p class="titleinfigure">Figure 7-1 All Node Patching</p> <img width="554" height="303" src="img/rac_allnode.gif" alt="Figure illustrating all node patching, in which systems A, B, and C converge" title="Figure illustrating all node patching, in which systems A, B, and C converge" /><br /></div> <!-- class="figure" --> <p>Systems A, B, and C are nodes in this cluster. When you perform All Node Patching in this cluster, you bring down systems A, B, and C, apply patches to all these nodes, then bring systems A, B, and C back up again.</p> </div> <!-- class="sect2" --> <a id="g1503635" name="g1503635"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG344" id="OUICG344"></a><a id="sthref766" name="sthref766"></a><a id="sthref767" name="sthref767"></a>Rolling Patching</h3> <p><a id="sthref768" name="sthref768"></a><a id="sthref769" name="sthref769"></a><a id="sthref770" name="sthref770"></a>In Rolling Patching, you shut down each node, apply the patch, then bring up each node again. You do this separately for each node until you patch all nodes in the cluster. This is the most efficient method of applying an interim patch to an Oracle Real Application Clusters setup, because there is absolutely no downtime during the application of patches, as only one system is brought down at any given time. Only some patches can be applied in this mode. The type is generally specified in the patch metadata.</p> <p>Figure 7–2 shows a basic example of Rolling Patching.</p> <div class="figure"><a id="g1503701" name="g1503701"></a> <p class="titleinfigure">Figure 7-2 Rolling Patching</p> <img width="549" height="322" src="img/rac_rolling.gif" alt="Figure illustrating rolling patching in which systems A, B, and C are sequentially shut down and restarted." title="Figure illustrating rolling patching in which systems A, B, and C are sequentially shut down and restarted." /><br /></div> <!-- class="figure" --> <p>When you perform Rolling Patching in this cluster, the patches are applied in a rolling fashion. You initially bring down system A, apply a patch to it, then bring it back up. You do the same thing for systems B and C.</p> </div> <!-- class="sect2" --> <a id="g1503734" name="g1503734"></a> <div class="sect2"><!-- infolevel="all" infotype="General" --> <h3 class="sect2"><a name="OUICG345" id="OUICG345"></a><a id="sthref771" name="sthref771"></a><a id="sthref772" name="sthref772"></a>Minimum Downtime Patching</h3> <p><a id="sthref773" name="sthref773"></a><a id="sthref774" name="sthref774"></a><a id="sthref775" name="sthref775"></a>In Minimum Downtime Patching, the nodes are divided into sets. Initially, you shut down the first set and apply a patch to it. After this, you shut down the second set. You then bring up the first set and apply a patch to the second set. You now bring up the second set. All the nodes in the cluster are now patched. This method leads to less downtime for Oracle Real Application Clusters when both sets are brought down. This mode is executed by using <code>-minimize_downtime</code> command line option. You can also activate this option from the response file.</p> <p>Figure 7–3 shows a basic example of Minimum Downtime Patching.</p> <div class="figure"><a id="g1503764" name="g1503764"></a> <p class="titleinfigure">Figure 7-3 Minimum Downtime Patching</p> <img width="550" height="304" src="img/rac_mindowntime.gif" alt="Figure illustrating minimum downtime patching, which shows the interaction between systems A, B, and C" title="Figure illustrating minimum downtime patching, which shows the interaction between systems A, B, and C" /><br /></div> <!-- class="figure" --> <p>Systems A, B, and C are nodes in this cluster. It is divided into two sets: Set 1 contains systems A and B, and Set 2 contains system C. When you perform Minimum Downtime Patching in this cluster, you shut down Set 1 and apply a patch to it. You now shut down Set 2. Then, you bring up Set 1 and apply a patch to Set 2. After you apply the patch, you bring up Set 2 again. Now both Sets 1 and 2 are patched.</p> </div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="CEGJEJCB" name="CEGJEJCB"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG346" id="OUICG346"></a><a id="sthref776" name="sthref776"></a>About Patch Conflicts</h2> <p>All patches may not be compatible with one another. For example, if you apply a patch, all the bugs the patch fixes could reappear after you apply another patch. This is called a conflict situation. OPatch detects such situations and raises an error when it detects a conflict.</p> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref777" name="sthref777"></a> <h3 class="sect2"><a name="OUICG347" id="OUICG347"></a><a id="sthref778" name="sthref778"></a><a id="sthref779" name="sthref779"></a><a id="sthref780" name="sthref780"></a>Types of Conflicts</h3> <p>OPatch can detect the following types of conflicts.</p> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref781" name="sthref781"></a> <h4 class="sect3"><a name="OUICG348" id="OUICG348"></a><a id="sthref782" name="sthref782"></a><a id="sthref783" name="sthref783"></a><a id="sthref784" name="sthref784"></a>Superset</h4> <p>If all the bugs fixed by a patch in the system are also fixed by the patch to be applied, this patch (the patch to be applied) is considered a superset of the patch already applied. If a bug superset condition is detected, it is not considered an error situation. All the subset patches are removed from the system and the new patch is applied.</p> <p><span class="bold">Example</span></p> <p>Consider the following scenario:</p> <ul> <li> <p>Patch A, installed in the Oracle home, fixed bugs 1, 2, and 3.</p> </li> <li> <p>Patch B, installed in the Oracle home, fixed bugs 10, 11, and 12.</p> </li> <li> <p>Patch C, to be installed, fixes bugs 1, 2, 3, and 4.</p> </li> </ul> <p>Patch C is considered a superset of Patch A.</p> <p><span class="bold">Using the -no bug superset Flag</span></p> <p>If you want OPatch to error out if the current patch bugs-to-fix is a superset or the same as an installed patch bugs-fixed in the Oracle home directory, you can use the <code>-no_bug_superset</code> flag:</p> <p><code>$ OPatch/opatch apply -no_bug_superset <Path_To_Patch></code></p> <p>The following example output shows the message you would see when you use the <code>-no_bug_superset</code> flag:</p> <pre xml:space="preserve" class="oac_no_warn">Oracle interim Patch Installer version 11.2.0.0.1 Copyright (c) 2009, Oracle Corporation. All rights reserved. Oracle Home : /home/oracle_TEST/product/11.1.0/db_1 Central Inventory : /home/OUIHome_Opatch from : /home/oracle_TEST/product/11.2.0/db_1/oraInst.loc OPatch version : 11.1.0.6.6 OUI version : 11.1.0.6.6 OUI location : /home/oracle_TEST/product/11.1.0/db_1/oui Log file location : /home/oracle_TEST/product/11.1.0/db _1/cfgtoollogs/opatch/opatch-2008_May_25_14-03-33-IST_Wed.log ApplySession applying interim patch '111000' to OH '/home/oracle _TEST/product/11.1.0/db_1' Apply Session failed: ApplySession failed to prepare the system. Interim patch 111000 is a superset of the patch(es) [ 111000 ] in OH /home/oracle _TEST/product/11.1.0/db_1 System intact, OPatch will not attempt to restore the system OPatch failed with error code 73 </pre></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref785" name="sthref785"></a> <h4 class="sect3"><a name="OUICG349" id="OUICG349"></a><a id="sthref786" name="sthref786"></a><a id="sthref787" name="sthref787"></a><a id="sthref788" name="sthref788"></a>Subset</h4> <p>Patches to be applied can be subsets of other patches installed in the Oracle home.</p> <p><span class="bold">Example</span></p> <p>Consider the following scenario:</p> <ul> <li> <p>Patch A, installed in the Oracle home, fixed bugs 1, 2, and 3.</p> </li> <li> <p>Patch B, installed in the Oracle home, fixed bugs 10, 11, and 12.</p> </li> <li> <p>Patch D, to be installed, fixes bugs 1 and 2.</p> </li> </ul> <p>Patch D is a subset of Patch A.</p> <p><span class="bold">Using the skip_subset Option</span></p> <p>When you want to skip patches formerly applied in the Oracle home that are now subsets of other patches you want to apply now, you can use the <code>skip_subset</code> option of <code>napply</code>. For example, if you used <code>napply</code> yesterday for patch A that fixed bugs 1 and 2, then you use <code>napply</code> today with the <code>skip_subset</code> option for patch B that fixes bug 1 and patch C that fixes bugs 1, 2, and 3, then subset patch A is skipped, and patch C then becomes a superset of patch A.</p> <p><a href="#g1505589">Example 7-1</a> applies all patches under the <code><patch_location></code> directory. OPatch skips duplicate patches and subset patches (patches under <code><patch_location></code> that are subsets of patches installed in the Oracle home).</p> <div class="example"><a id="g1505589" name="g1505589"></a> <p class="titleinexample">Example 7-1</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply <patch_location> -skip_subset -skip_duplicate </pre></div> <!-- class="example" --> <p><a href="#g1510638">Example 7-2</a> applies patches 1, 2, and 3 that are under the <code><patch_location></code> directory. OPatch skips duplicate patches and subset patches (patches under <code><patch_location></code> that are subsets of patches installed in the Oracle home).</p> <div class="example"><a id="g1510638" name="g1510638"></a> <p class="titleinexample">Example 7-2</p> <pre xml:space="preserve" class="oac_no_warn">opatch napply <patch_location> -id 1,2,3 -skip_subset -skip_duplicate </pre></div> <!-- class="example" --> <p>See the description for the <code>skip_subset</code> option in <a href="#g1316340">Table 7-3</a> for more information.</p> </div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref789" name="sthref789"></a> <h4 class="sect3"><a name="OUICG350" id="OUICG350"></a><a id="sthref790" name="sthref790"></a><a id="sthref791" name="sthref791"></a><a id="sthref792" name="sthref792"></a>Duplicate</h4> <p>A duplicate patch fixes the same set of bugs fixed by another patch. For example, if you applied Patch A that fixed bugs 1, 2 and 3, and now apply Patch B that also fixes bugs 1, 2 and 3, then Patch B is a duplicate of Patch A. A patch is always a duplicate of itself.</p> <p><span class="bold">Using the skip_duplicate Option</span></p> <p>If you specify this option, OPatch removes duplicate patches from the list of patches to be applied. For example, if you used <code>napply</code> yesterday for Patch A discussed above, then use <code>napply</code> today with the <code>-skip_duplicate</code> option for Patch A and other patches, duplicate Patch A is skipped.</p> </div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref793" name="sthref793"></a> <h4 class="sect3"><a name="OUICG351" id="OUICG351"></a><a id="sthref794" name="sthref794"></a><a id="sthref795" name="sthref795"></a>Bug Conflict</h4> <p>A bug conflict occurs if a set of bugs to be fixed by the current interim patch intersects with some bugs already fixed by one or more previously installed interim patches. You must remove the bug conflict before you proceed with the patching by using the <code>apply</code> command with the <code>-force</code> flag, which rolls back the conflicting patches before applying the new one.</p> <p><span class="bold">Example</span></p> <p>Consider the following scenario:</p> <ul> <li> <p>Patch A, installed in the Oracle home, fixed bugs 1, 2, and 3.</p> </li> <li> <p>Patch B, installed in the Oracle home, fixed bugs 10, 11, and 12.</p> </li> <li> <p>Patch E, to be installed, fixes bugs 3 and 4.</p> </li> </ul> <p>Patch E conflicts with Patch A.</p> </div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref796" name="sthref796"></a> <h4 class="sect3"><a name="OUICG352" id="OUICG352"></a><a id="sthref797" name="sthref797"></a><a id="sthref798" name="sthref798"></a>File Conflict</h4> <p>A file conflict occurs if a set of files to be patched by the current interim patch includes files already patched by one or more previously installed interim patches, and it is not a bug superset.</p> <p><span class="bold">Example</span></p> <p>Consider the following scenario:</p> <ul> <li> <p>Patch A, installed in the Oracle home, fixed bugs 1, 2, and 3, which modified files a, b, and c.</p> </li> <li> <p>Patch F, to be installed, fixes bugs 1, 2, 3 and 4, and modifies files a, d, and f.</p> </li> </ul> <p>Patch F conflicts with Patch A.</p> </div> <!-- class="sect3" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref799" name="sthref799"></a> <h3 class="sect2"><a name="OUICG353" id="OUICG353"></a>Patch Conflict Behavior for Apply and Napply</h3> <p>The expected behavior for the <a id="sthref800" name="sthref800"></a>Apply and <a id="sthref801" name="sthref801"></a>Napply commands is listed in <a href="#g1110174">Table 7-23</a>.</p> <div class="tblformal"><a id="sthref802" name="sthref802"></a><a id="g1110174" name="g1110174"></a> <p class="titleintable">Table 7-23 Expected Behavior for Apply and Napply Commands</p> <table class="Formal" title="Expected Behavior for Apply and Napply Commands" summary="UNIX and Linux System-Based Variables for clone.pl" dir="ltr" border="1" width="100%" frame="hsides" rules="groups" cellpadding="3" cellspacing="0"> <col width="14%" /> <col width="21%" /> <col width="21%" /> <col width="22%" /> <col width="*" /> <thead> <tr align="left" valign="top"> <th align="left" valign="bottom" id="r1c1-t34">Command</th> <th align="left" valign="bottom" id="r1c2-t34">Superset</th> <th align="left" valign="bottom" id="r1c3-t34">Subset</th> <th align="left" valign="bottom" id="r1c4-t34">Duplicate</th> <th align="left" valign="bottom" id="r1c5-t34">File Conflict or Bug Conflict Patch</th> </tr> </thead> <tbody> <tr align="left" valign="top"> <td align="left" id="r2c1-t34" headers="r1c1-t34"> <p><span class="bold">Apply</span></p> </td> <td align="left" headers="r2c1-t34 r1c2-t34"> <p>OPatch performs an automatic rollback, then an apply.</p> </td> <td align="left" headers="r2c1-t34 r1c3-t34"> <p>After the merge request, OPatch performs an automatic rollback, then performs an apply.</p> </td> <td align="left" headers="r2c1-t34 r1c4-t34"> <p>OPatch performs an automatic rollback, then performs a reapply.</p> </td> <td align="left" headers="r2c1-t34 r1c5-t34"> <p>OPatch reports the conflict. After the merge request, OPatch performs an automatic rollback, then an apply.</p> </td> </tr> <tr align="left" valign="top"> <td align="left" id="r3c1-t34" headers="r1c1-t34"> <p><span class="bold">Napply</span></p> </td> <td align="left" headers="r3c1-t34 r1c2-t34"> <p>OPatch performs an automatic rollback, then an apply.</p> </td> <td align="left" headers="r3c1-t34 r1c3-t34"> <p>OPatch reports the subset and skips the subset patch. It then continues and applies the other patches.</p> </td> <td align="left" headers="r3c1-t34 r1c4-t34"> <p>OPatch performs an automatic rollback, then a reapply.</p> </td> <td align="left" headers="r3c1-t34 r1c5-t34"> <p>OPatch reports the conflict, then asks you to run again without applying a bug conflict patch.</p> <p>You can use the -force option to instruct OPatch to automatically roll back the conflicting patch, then apply the new patch.</p> </td> </tr> </tbody> </table> <br /></div> <!-- class="tblformal" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref803" name="sthref803"></a> <h3 class="sect2"><a name="OUICG354" id="OUICG354"></a><a id="sthref804" name="sthref804"></a><a id="sthref805" name="sthref805"></a>Patch Conflict Detection and Resolution</h3> <p>OPatch detects and reports any conflicts encountered when applying an Interim patch with a previously applied patch. The patch application fails in case of conflicts. You can use the <code>-force</code> option of OPatch to override this failure. If you use this option, the installer first rolls back any conflicting patches and then proceeds with the installation of the desired interim patch.</p> <p>You may encounter a bug conflict and might want to remove the conflicting patch. This process is known as patch rollback. During patch installation, OPatch saves copies of all the files the new patch replaced before the new versions of these files are loaded and stores them in <code>$ORACLE_HOME/.patch_storage</code>. These saved files are called Rollback files and are the key to making patch rollback possible. When you roll back a patch, these Rollback files are restored to the system. You should only override the default behavior by using the <code>-force</code> flag if you completely understand the patch Rollback process. To roll back a patch, execute the following command:</p> <p><code>$ OPatch/opatch rollback -id <Patch_ID></code></p> </div> <!-- class="sect2" --></div> <!-- class="sect1" --> <a id="g1292661" name="g1292661"></a> <div class="sect1"><!-- infolevel="all" infotype="General" --> <h2 class="sect1"><a name="OUICG355" id="OUICG355"></a>Problem Resolution</h2> <p><a id="sthref806" name="sthref806"></a><a id="sthref807" name="sthref807"></a>The following sections provide information and instructions on the following tasks to resolve problems:</p> <ul> <li> <p>Using logs and traces</p> </li> <li> <p>Recovering from a failed patching session</p> </li> <li> <p>Resolving OPatch application errors</p> </li> </ul> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref808" name="sthref808"></a> <h3 class="sect2"><a name="OUICG356" id="OUICG356"></a>Logging and Tracing</h3> <p><a id="sthref809" name="sthref809"></a><a id="sthref810" name="sthref810"></a><a id="sthref811" name="sthref811"></a><a id="sthref812" name="sthref812"></a>Logging and tracing is a common aid for debugging. OPatch maintains logs for all Apply, Rollback, and Lsinventory operations. Each time you execute OPatch, a new log file is created. The log files are located in the <code><ORACLE_HOME>/cfgtoollogs/opatch</code> directory. Each log file is tagged with the timestamp of the operation. Log files are named as <code>opatch_<date mm-dd-yyyy>_<time hh-mm-ss>.log</code>.</p> <p>For example, if a log file is created on May 17th, 2008 at 11.55 PM, it will be named as follows:</p> <pre xml:space="preserve" class="oac_no_warn">opatch_05-17-2008_23-55-00.log </pre> <div class="infoboxnote"> <p class="notep1">Note:</p> You can set OPatch to debug mode by setting the environment variable <code>OPATCH_DEBUG</code> to <code>TRUE</code>.</div> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref813" name="sthref813"></a> <h4 class="sect3"><a name="OUICG357" id="OUICG357"></a>Command Index</h4> <p>OPatch also maintains an index of the commands executed with OPatch and the log files associated with it in the <code>history.txt</code> file located in the <code><ORACLE_HOME>/cfgtoollogs/opatch</code> directory. An example of the <code>history.txt</code> file is as follows:</p> <pre xml:space="preserve" class="oac_no_warn">Date & Time : Tue Apr 26 23:00:55 PDT 2009 Oracle Home : /private/oracle/product/11.2.0/db_1/ OPatch Ver. : 11.2.0.0.0 Current Dir : /scratch/oui/OPatch Command : lsinventory Log File : /private/oracle/product/11.2.0/db_1/cfgtoollogs/opatch/opatch-2009_Apr_26_23-00-55-PDT_Tue.log </pre></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref814" name="sthref814"></a> <h4 class="sect3"><a name="OUICG358" id="OUICG358"></a>Levels of Logging</h4> <p>OPatch follows the <a id="sthref815" name="sthref815"></a>Oracle Diagnostic Logging (ODL) guidelines. You can set the log level by using the <code>-logLevel <level></code> option available. This controls the amount of logging OPatch performs, according to the ODL guidelines.</p> <p>OPatch supports the following log levels:</p> <ul> <li> <p>SEVERE</p> </li> <li> <p>WARNING</p> </li> <li> <p>INFO</p> </li> <li> <p>CONFIG</p> </li> <li> <p>FINE</p> </li> <li> <p>FINER</p> </li> <li> <p>FINEST</p> </li> </ul> </div> <!-- class="sect3" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref816" name="sthref816"></a> <h3 class="sect2"><a name="OUICG359" id="OUICG359"></a>Recovering from a Failed Patching Session</h3> <p><a id="sthref817" name="sthref817"></a><a id="sthref818" name="sthref818"></a><a id="sthref819" name="sthref819"></a><a id="sthref820" name="sthref820"></a>During patching, updates can occur in two phases:</p> <ul> <li> <p><span class="bold">System Update</span> — In this phase, the files are replaced in the Oracle home.</p> </li> <li> <p><span class="bold">Inventory Update</span> — In this phase, the details of the patch applied is recorded in the inventory.</p> </li> </ul> <p>The following scenarios for single instance setups and Oracle Real Application Clusters setups explain how you can recover from a failed patching session.</p> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref821" name="sthref821"></a> <h4 class="sect3"><a name="OUICG360" id="OUICG360"></a>Single Instance Setup</h4> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref822" name="sthref822"></a>When you apply or roll back a patch, an interim inventory update exception occurs.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This occurs when the files on the system are patched, but the inventory update has failed. A corrupted inventory may cause this problem.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command.</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref823" name="sthref823"></a>When you apply or roll back a patch, an OiiOneoffException occurs.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This occurs when the files on the system are patched, but the inventory update has failed. This may occur because the base component of the interim patch may not be present in the inventory.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> OPatch tries to restore the Oracle home automatically and displays a message for the same. If OPatch does not display a message stating that it has restored the Oracle home, perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command.</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref824" name="sthref824"></a>When you apply a patch and execute opatch lsinventory, it returns nothing.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur because all the patches applied before the application of the current patch are lost, or the patches might not have been updated in the inventory.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command:</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> <li> <p>If the files are properly patched, but the information is not updated in the inventory, execute the following command:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch apply -no_sysmod <Path_To_Patch> </pre> <p>Ensure that the patch has been applied and recorded properly in the inventory by executing the following command:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch lsinventory -detail </pre></li> <li> <p>If the files are still not patched properly, but you are able to see the patch in the <code>lsinventory</code> flag, you need to reapply the patch using the <code>no_inventory</code> flag:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch apply -no_inventory <Path_To_Patch> </pre></li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref825" name="sthref825"></a>When you apply a patch and execute opatch lsinventory, it does not return the details of the patch applied.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> OPatch may not have recorded the details of this patch in the inventory.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command:</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> <li> <p>If the files are properly patched, but the information is not updated in the inventory, execute the following command:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch apply -no_sysmod <Path_To_Patch> </pre> <p>Ensure that the patch has been applied and recorded properly in the inventory by executing the following command:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch lsinventory -detail </pre></li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref826" name="sthref826"></a>When you press Ctrl + C during the application or roll back of a patch and execute opatch lsinventory, it does not return the details of the patch applied or rolled back.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may be because OPatch might have stopped the application or rollback of the patch on pressing Ctrl+c.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command if it is available.</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref827" name="sthref827"></a>When you apply a patch, you quit when OPatch failed to relink and prompted to continue.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur because of a relink failure.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command.</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>Resolve the relink failure issue by ensuring that you are able to invoke <code>make</code> manually on a UNIX shell. After this, apply the patch again.</p> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --></div> <!-- class="sect3" --> <div class="sect3"><!-- infolevel="all" infotype="General" --><a id="sthref828" name="sthref828"></a> <h4 class="sect3"><a name="OUICG361" id="OUICG361"></a>Oracle Real Application Clusters Setup</h4> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref829" name="sthref829"></a>When I apply a patch on an Oracle Real Application Clusters setup and execute 'opatch lsinventory' on the local node, the patch is not listed.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur if OPatch failed to update the inventory.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly in all the nodes of the cluster.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory of each node in the cluster and execute the Restore command as follows:</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) in each node of the cluster as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> <li> <p>Apply the patch in each node in the cluster using the local flag:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch apply -local <Path_To_Patch> </pre> <div class="infoboxnote"> <p class="notep1">Note:</p> Ensure that all the nodes use the same OPatch version.</div> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref830" name="sthref830"></a>When I apply a patch on an Oracle Real Application Clusters setup and execute 'opatch lsinventory' on the local node, it returns nothing.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> You might have lost all the patches applied earlier.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly in each node in the cluster.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command in each node in the cluster.</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) in each node as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> <li> <p>Apply the patch in each node using the local flag:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch apply -local <Path_To_Patch> </pre> <div class="infoboxnote"> <p class="notep1">Note:</p> Ensure that all the nodes use the same OPatch version.</div> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref831" name="sthref831"></a>When I roll back a patch on an Oracle Real Application Clusters setup, and execute 'opatch lsinventory' on the local node, it shows that the patch was not removed.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur if OPatch failed to update the inventory.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly in each node in the cluster.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory in each node in the cluster and execute the restore command as follows:</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) in each node in the cluster as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> <li> <p>Roll back the patch in all the nodes in the cluster using the local flag:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch rollback -local -id <Patch_ID> </pre> <div class="infoboxnote"> <p class="notep1">Note:</p> Ensure that all the nodes use the same OPatch version.</div> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref832" name="sthref832"></a>When I roll back a patch on an Oracle Real Application Clusters setup and execute 'opatch lsinventory' on the local node, it returns nothing.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> You might have lost all the patches applied earlier.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly in each node in the cluster.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command in each node in the cluster:</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> <li> <p>Roll back the patch in the local node using the <code>local</code> flag:</p> <pre xml:space="preserve" class="oac_no_warn">$ORACLE_HOME/OPatch/opatch rollback -local -id <Patch_ID> </pre></li> <li> <p>Roll back the patch on the other nodes also using the <code>local</code> flag.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> Ensure that all the nodes use the same OPatch version.</div> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref833" name="sthref833"></a>When I apply a patch on an Oracle Real Application Clusters setup, the patching in one node is fine (both the files and the inventory are fine), but I am not sure about the other nodes.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur because of a failed system or inventory update.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Copy the Oracle home from the node that is fine to the other nodes.</p> </li> <li> <p>After copying the Oracle home, make sure that the <code>ORACLE_HOME/inventory/ContentsXML/comps.xml</code> file has the latest timestamp.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> On Unix, use <code>touch</code> to change the timestamp.</div> </li> <li> <p>Update the nodes of the cluster. For more information on updating the nodes of the cluster, see <a href="oui2_manage_oracle_homes.htm#CJADBAHJ">"Updating the Nodes of a Cluster"</a>.</p> </li> <li> <p>Ensure that all the prerequisite checks pass that are listed in the section <a href="#CEGHCGJI">"Prerequisite Checks for OPatch"</a>.</p> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref834" name="sthref834"></a>When I apply a patch on an Oracle Real Application Clusters setup, the patching in one node is fine, but when I execute 'opatch lsinventory' on the other nodes, the patch is not listed.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur because of a failed system or inventory update.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Copy the <code>ORACLE_HOME /inventory</code> directory from the node that is fine to the other nodes.</p> </li> <li> <p>After copying the <code>ORACLE_HOME /inventory</code> directory, make sure that the <code>ORACLE_HOME/inventory/ContentsXML/comps.xml</code> file has the latest timestamp.</p> <div class="infoboxnote"> <p class="notep1">Note:</p> On Unix, use <code>touch</code> to change the timestamp.</div> </li> <li> <p>Update the nodes of the cluster. For more information on updating the nodes of the cluster, see <a href="oui2_manage_oracle_homes.htm#CJADBAHJ">"Updating the Nodes of a Cluster"</a>.</p> </li> <li> <p>Ensure that all the prerequisite checks pass that are listed in the section <a href="#CEGHCGJI">"Prerequisite Checks for OPatch"</a>.</p> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --> <div class="msgset"> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref835" name="sthref835"></a>When I apply or roll back a patch on an Oracle Real Application Clusters setup, I am not able to apply or roll back the patch on all nodes.</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> This may occur if the nodes are not properly updated.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform any one or more of the following: <ul> <li> <p>Ensure that all the nodes in the cluster are up-to-date. If they are not, update the nodes of the cluster. For more information on updating the nodes of the cluster, see <a href="oui2_manage_oracle_homes.htm#CJADBAHJ">"Updating the Nodes of a Cluster"</a>.</p> </li> <li> <p>Execute the appropriate command on all nodes of the cluster as follows:</p> <pre xml:space="preserve" class="oac_no_warn">opatch apply -local [patch_location] opatch rollback -local [patch_location] </pre></li> <li> <p>Execute the appropriate command on the local node of the cluster as follows:</p> <pre xml:space="preserve" class="oac_no_warn">opatch apply [-local_node (node_name)] [-remote_nodes (comma separated node_names)] opatch rollback [-local_node (node_name)] [-remote_nodes (comma separated node_names)] </pre></li> </ul> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --></div> <!-- class="sect3" --></div> <!-- class="sect2" --> <div class="sect2"><!-- infolevel="all" infotype="General" --><a id="sthref836" name="sthref836"></a> <h3 class="sect2"><a name="OUICG362" id="OUICG362"></a>Resolving OPatch Application Errors</h3> <p><a id="sthref837" name="sthref837"></a><a id="sthref838" name="sthref838"></a><a id="sthref839" name="sthref839"></a><a id="sthref840" name="sthref840"></a>This section provides solutions to the following errors that may occur during patch application:</p> <ul> <li> <p>Not a valid patch area</p> </li> <li> <p>Opatch cannot find system commands like <code>fuser</code>, <code>make</code></p> </li> <li> <p>Unable to remove a partially-installed interim patch</p> </li> </ul> <div class="msgset"><a id="g1296646" name="g1296646"></a> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref841" name="sthref841"></a>Not a valid patch area</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> The directory that the OPatch utility is using to do the patch does not match the template for what it is checking. This can also occur when you run the utility from an invalid shiphome directory.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> When starting the OPatch utility, the directory needs the following: <ul> <li> <p><code>/etc</code> directory that has the metadata files.</p> </li> <li> <p><code>/files</code> directory that has the payload files.</p> </li> <li> <p><code>/etc/config/inventory</code> file and the actions file under the same directory.</p> </li> </ul> <p>If you did not start the OPatch utility from the <code>patch_id</code> directory, you can use the following command:</p> <pre xml:space="preserve" class="oac_no_warn">opatch apply /<Patch_Shiphome> </pre></div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --> <a id="g1296739" name="g1296739"></a> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref842" name="sthref842"></a>OPatch cannot find system commands like <code>fuser</code>, <code>make</code></span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> The OPatch utility uses <code>fuser</code> on UNIX systems to check for active Oracle instances. On certain hp-ux systems, only a super-user can run <code>fuser</code>.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform these steps to resolve this problem: <ol> <li> <p>Set <code>/tmp</code> in your PATH.</p> <p>For more information, see <a href="#g1297211">"Checks for Single Instances and Oracle Real Application Clusters"</a>.</p> </li> <li> <p>Create an empty file named <code>fuser</code>.</p> </li> <li> <p>Shut down the Oracle instances.</p> </li> <li> <p>Run the OPatch utility.</p> <div class="infoboxnote"> <p class="notep1">Caution:</p> Another way to resolve this problem is to give executable permission to other users for <code>fuser</code>. However, this exposes a potential security issue in the system, and is not recommended.</div> </li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --> <div class="msgentry"> <dl> <dt><span class="msg"><a id="sthref843" name="sthref843"></a>Unable to remove a partially-installed interim patch</span> <!-- class="msg" --></dt> <dd> <div class="msgexplan"><span class="msgexplankw">Cause:</span> Interruption in the patching process potentially causes this problem. This may occur if you press Ctrl+c during the patching process. If the error is the one that OPatch detects, it automatically resolves it.</div> <!-- class="msgexplan" --></dd> <dd> <div class="msgaction"><span class="msgactionkw">Action:</span> Perform the following steps: <ol> <li> <p>Ensure that the environment variable <code>ORACLE_HOME</code> is set properly.</p> </li> <li> <p>Navigate to the <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp></code> directory and execute the Restore command as follows:</p> <pre xml:space="preserve" class="oac_no_warn">For UNIX: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.sh For Windows: $ORACLE_HOME/.patch_storage/<patch-id_timestamp>/restore.bat </pre></li> <li> <p>On UNIX, source <code>$ORACLE_HOME/.patch_storage/<patch-id_timestamp>/make.txt</code> file (if available) as follows:</p> <pre xml:space="preserve" class="oac_no_warn">/bin/sh make.txt </pre></li> </ol> </div> <!-- class="msgaction" --></dd> </dl> </div> <!-- class="msgentry" --></div> <!-- class="msgset" --></div> <!-- class="sect2" --></div> <!-- class="sect1" --></div> <!-- class="ind" --> <div class="footer"> <hr /> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="100%"> <col width="33%" /> <col width="*" /> <col width="33%" /> <tr> <td align="left"> <table class="simple oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="98"> <tr> <td align="center" valign="top"><a href="oui6_cloning.htm"><img width="24" height="24" src="../../dcommon/gifs/leftnav.gif" alt="Go to previous page" /><br /> <span class="icon">Previous</span></a></td> <td align="center" valign="top"><a href="oui8_internationalization.htm"><img width="24" height="24" src="../../dcommon/gifs/rightnav.gif" alt="Go to next page" /><br /> <span class="icon">Next</span></a></td> </tr> </table> </td> <td style="font-size: 90%" align="center" class="copyrightlogo"><img width="144" height="18" src="../../dcommon/gifs/oracle.gif" alt="Oracle" /><br /> Copyright © 1996, 2010, Oracle and/or its affiliates. All rights reserved.<br /> <a href="../../dcommon/html/cpyr.htm">Legal Notices</a></td> <td align="right"> <table class="icons oac_no_warn" summary="" cellspacing="0" cellpadding="0" width="245"> <tr> <td align="center" valign="top"><a href="../../index.htm"><img width="24" height="24" src="../../dcommon/gifs/doclib.gif" alt="Go to Documentation Home" /><br /> <span class="icon">Home</span></a></td> <td align="center" valign="top"><a href="../../nav/portal_booklist.htm"><img width="24" height="24" src="../../dcommon/gifs/booklist.gif" alt="Go to Book List" /><br /> <span class="icon">Book List</span></a></td> <td align="center" valign="top"><a href="toc.htm"><img width="24" height="24" src="../../dcommon/gifs/toc.gif" alt="Go to Table of Contents" /><br /> <span class="icon">Contents</span></a></td> <td align="center" valign="top"><a href="index.htm"><img width="24" height="24" src="../../dcommon/gifs/index.gif" alt="Go to Index" /><br /> <span class="icon">Index</span></a></td> <td align="center" valign="top"><a href="../../dcommon/html/feedback.htm"><img width="24" height="24" src="../../dcommon/gifs/feedbck2.gif" alt="Go to Feedback page" /><br /> <span class="icon">Contact Us</span></a></td> </tr> </table> </td> </tr> </table> </div> <noscript> <p>Scripting on this page enhances content navigation, but does not change the content in any way.</p> </noscript> </body> </html>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de