To manage Oracle software and apply patches in Oracle Real Application Clusters (Oracle RAC) environments, you use Oracle Universal Installer or the OPatch utility.
Oracle issues product fixes for its software called patches. They are associated with particular releases and versions of Oracle products.
The patching cycle involves downloading patches, applying patches, and verifying the applied patch to ensure that the bug fixes present in the patch reflect appropriately.
Patching involves migrating from one version of the software product to another, within a particular release, unlike upgrading which involves moving from one release of a product to another newer release of the software product. When you apply the patch to your Oracle software installation, it updates the executable files, libraries, and object files in the software home directory. The patch application can also update configuration files and Oracle-supplied SQL schemas.
Oracle periodically releases the following types of patches to fix the bugs encountered in the Oracle software:
Released to fix a bug, or a collection of bugs. Previously called patch set exceptions (PSE), one-off patches, or hot fixes.
Interim Patches (for Security bug fixes)
Released to provide customer specific security fixes. Previously referred to as a test patch, fix verification binary, or e-fix.
Mainly help diagnose and verify a fix, or a collection of bug fixes.
Bundle Patch Updates
Cumulative collection of fixes for a specific product or component. Previously referred to as a maintenance pack, service pack, cumulative patch, update release, or MLR.
Patch Set Updates (PSU)
Cumulative patch bundles that contain well-tested and proven bug fixes for critical issues. PSUs have limited new content, and do not include any changes that require re-certification.
Security Patch Updates
A cumulative collection of security bug fixes. Previously known as Critical Patch Updates, or CPUs.
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. These patches are not versioned and are generally available in a future patchset and also the next product release. Interim patches are applied by using Enterprise Manager Cloud Control or OPatch, which is included with your Oracle Database installation.
Patch sets updates (PSUs) and patch bundles are mechanisms for delivering fully tested and integrated product fixes. All the fixes in a patch set have been tested and are certified to work with each other. Because a patch set includes only low impact patches, it does not require you to certify applications or tools against the updated Oracle Database software. When you apply a patch set, many different files and utilities are modified. This results in a release number change for your Oracle software, for example, from Oracle Database 126.96.36.199.0 to Oracle Database 188.8.131.52.2. You use OPatch to apply PSUs.
Using Cloud Control with its Provisioning & Patching functionality, you can automate the patching of your Oracle Grid Infrastructure and Oracle RAC software.
Before you can use Cloud Control to patch your Oracle software, you must perform the following system configuration tasks:
Install the Enterprise Manager Agent on all cluster nodes
Use PDP setup to ensure the host user has the necessary privileges to complete patching tasks
Configure named and preferred credentials in Enterprise Manager
Configure a software library for storing patch files
Details on how to perform these tasks, and how to patch your Oracle Grid Infrastructure and Oracle RAC software using Cloud Control are available from the following PDF file: http://www.oracle.com/technetwork/oem/pdf/512066.pdf
The rest of this chapter describes how to install patches without using Cloud Control.
You obtain patches and patch sets from My Oracle Support, which is the Oracle Support Services website.
The Oracle Support Services website is located at: https://support.oracle.com
To locate patches on the My Oracle Support website:
If you want to search for all available patches for your system, then select Product or Family (Advanced Search), which is located above the Patch Name or Number field. Supply the following information:
Choose the products you want to patch (for example, Oracle Clusterware, Oracle Database, or an individual product such as Universal Installer)
Specify the software release for the products you selected, for example, Oracle 184.108.40.206.0.
Specify the platform on which the software is installed.
Click Search to look for available patches.
If you download the patch to a computer that is not a node in the cluster, then you must transfer the file using a binary protocol to a cluster node.
You can also choose to add the patch to your current patch plan or create a new patch plan. A patch plan is a collection of patches that you want to apply as a group. To learn more about using patch plans, in the Add to Plan drop-down list select Why use a Plan?
Oracle Database 2 Day DBA for more information about software management and patch releases
Before you apply the patch to your Oracle RAC database, your Oracle ASM installation, or to your Oracle Clusterware installation, you must prepare the operating system environment and stage the patch locally.
OPatch verifies if the Oracle home is present.
You must ensure that the
ORACLE_HOME environment variable is set to the Oracle home of the product you are trying to patch. Also, you must use a version of OPatch that has the same version number as the Oracle home being patched.
Check the respective vendor documentation for the details to set the environment variable.
To check the current setting of the ORACLE_HOME variable on Linux:
echocommand to display the current setting of the
Oracle strongly recommends that you back up the software directory you are patching before performing any patch operation. This applies to Oracle Database or Oracle Grid Infrastructure software installation directories.
To back up the software installation:
cpio, to back up the software in the Oracle home directory to disk.
After you download the patch from My Oracle Support, you must copy the patch to each node that runs the software being patched.
You can either specify the path to the opatch executable file when running OPatch, or you can update the
PATH environment variable to include the
opatch binary file is located in the
To update the PATH environment variable on Oracle Linux systems:
/u01/app/oracle/product/12.1.0/dbhome_1is the location of your Oracle home directory:
$ export PATH=$PATH:/u01/app/oracle/product/12.1.0/dbhome_1/OPatch
You could also modify the shell profile script for the current user to have this variable configured every time you log in.
User equivalency exists when the operating system user on each node is considered to be identical.
For information on configuring user equivalency, see "Configuring Operating System Users and Groups on Linux Systems".
Use the operating system SSH command to verify the user equivalency is working.
griduser. If you are patching Oracle RAC software, then login as the
[oracle@racnode1] $ ssh racnode2 date
Enter passphrase for key '/home/oracle/.ssh/id_rsa':
Oracle Grid Infrastructure Installation and Upgrade Guide for your specific operating system for instructions on how to configure SSH
Before you patch a system, make sure the user equivalency is working.
To enable SSH user equivalency:
gridif patching Oracle Grid Infrastructure software, or login as
oracleif patching Oracle Database software.
$ /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add
ssh-agenton the local node, and load the RSA and DSA keys into the current session's memory so that you are not prompted to use pass phrases when issuing SSH commands.
[oracle@racnode1 .ssh]$ exec /usr/bin/ssh-agent $SHELL [oracle@racnode1 .ssh]$ /usr/bin/ssh-add Enter passphrase for /home/oracle/.ssh/id_rsa passphrase Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa) Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
[oracle@racnode1] $ ssh racnode2 date
Do not close this command window until you have completed the patch installation. If you must close the command window in which you enabled SSH user equivalency before the patch installation is complete, then repeat Step 1 to Step 4 before starting the patch installation.
Oracle Grid Infrastructure Installation and Upgrade Guide for your specific operating system for instructions on how to configure SSH
Patching in an Oracle RAC environment is slightly different compared to patching a single node. If OPatch detects a cluster, then it uses OUI to query the software inventory to find the local node name and node list.
Before you install a patch, you must stop all the applications running from the software directory that is being patched. In a cluster, you may have to shut down additional applications, depending upon which software is being patched. The following table lists the applications to stop when patching Oracle software.
Table 10-1 Patching Oracle Home Directories
|Oracle Home Directory||Applications to Stop|
Oracle RAC Database
Oracle RAC database, Enterprise Manager Agent, listener, and any other applications that run from the Oracle RAC home directory
Oracle Grid Infrastructure
Oracle RAC database and all applications running from the Oracle RAC home directory, any single-instance databases that use the same Oracle ASM instance as the cluster database, the Oracle ASM instance, all node applications, Oracle Clusterware, and any other applications that run from the Grid home directory
Before you can apply a patch or make other modifications to the software files in the Grid home, you must first unlock the Grid home.
There are two parts to patching Oracle Grid Infrastructure for a cluster:
Unlock the Grid home
Apply patches to the Grid home
To unlock the Grid home, perform the following steps:
Grid_home/crs/install, where Grid_home is the path to the Grid home. As the
rootuser, unlock the Grid home using commands similar to the following:
cd /u01/app/12.1.0/grid/crs/install rootcrs.sh -prepatch -crshome /u01/app/12.1.0/grid
rootcrs.batscript with the
-prepatchoption, it stops the Oracle Clusterware stack and unlocks the files in the Grid home so they can be modified.
Starting with Oracle Database 12c Release 1 (220.127.116.11), on Microsoft Windows systems, the
rootcrs.sh script replaces the
rootcrs.pl script in the Oracle Grid Infrastructure home.
rootuser using commands similar to the following:
cd /u01/app/12.1.0/grid/crs/install rootcrs.sh -postpatch
rootcrs.shscript with the
-postpatchoption locks the Grid home again and restarts the Oracle Clusterware stack.
In all node patching, all the nodes in the cluster are initially shut down and the patch is applied on all the nodes.
After all the nodes have been patched, then the Oracle Clusterware stack and all its registered resources are restarted on each node. This method is typically used for very critical patches and it leads to maximum downtime. OPatch uses this method if the patch cannot be applied in a rolling fashion, and you did not specify the
In rolling patching, one group of nodes is shut down, the patch is applied to those nodes, and the nodes are brought back up.
Rolling patching is performed group by group, separately, until all the nodes in the cluster are patched. This is the most efficient means of applying an interim patch to an Oracle RAC or Oracle Grid Infrastructure for a cluster installation. By patching groups of nodes individually, there is zero downtime for the cluster database because at least one instance is always available on a different node.
While most patches can be applied in a rolling fashion, some patches cannot be applied in this fashion. The
README file for the patch indicates whether you can apply the patch using the rolling patch method. If the patch cannot be applied using the rolling patch method, then you must use either "Minimum Downtime Patching" or "All Node Patching" to apply the patch.
Minimum downtime patching shortens the time that all the nodes have to be down to apply a patch.
In minimum downtime patching, one set of nodes is shut down and the patch is applied to those nodes. After the first set of nodes has been patched, the second set of nodes is shut down. The first set of nodes is then restarted and the patch is applied to the second set of nodes. After the patch has been applied to the second set of nodes, those nodes are restarted. This method leads to less downtime for Oracle RAC, compared to having all the nodes shut down at the same time.
When you use the minimum downtime patching method, the following actions occur:
The local node is always patched first.
The local node is used as a base to patch the other nodes.
The user is prompted for the set of nodes to patch first from the remaining nodes.
For each node in this first set, the user is asked to stop the instance and then the patch is propagated to that node before continuing to the next node. When the initial set of nodes has been patched, the user is asked to shut down the remaining nodes.
After the local node is patched, the patch is propagated to the last set of nodes and the inventory is updated. The last instances are stopped on the remote nodes. You can then start the patched nodes (the first set of nodes) before patching the remaining nodes.
For instructions on applying the latest patch set to your Oracle RAC database and Oracle Clusterware installations on Oracle Linux, search for "Oracle 12c Release 1 (12.1) Support Status and Alerts" documentation on the My Oracle Support website.
This document provides a summary of the patch sets available for Oracle 12c Release 1. Using this document, you can easily locate and view the Patch Set Notes for your platform. The Oracle Database Patch Set Notes document contains the following information:
System requirements and information about how to install or reinstall the patch set
A list of all bugs fixed to date that are specific to Oracle Database for specified platform
A list of known issues relating to Oracle Database for the specified platform
To locate the Patch Set notes on My Oracle Support:
A list of operating systems appears.
When you place the cursor over the entry for your operating system, for example, Linux x86, a list of database versions appears.
The Advanced Search page appears.
The Patchset description and download page appears.
On this page you can also click Download to download the patch to your computer.
Applying patches to your Oracle RAC environment can be complicated at times and you may be required to troubleshoot the patch deployment.
If you have problems applying a patch to your Oracle RAC database, then review these solutions to common problems. If the problem you encountered is not listed, then review the log and trace files and use My Oracle Support to obtain assistance.
If OPatch does not automatically detect Oracle RAC or its nodes, then investigate the contents of the inventory and ensure they are complete.
To update the node list for OPatch:
-updateNodeListflag, as demonstrated in the following example:
Oracle_home/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 CLUSTER_NODES=racnode1,racnode2,racnode3 -noClusterEnabled
Oracle Universal Installer Installation Guide for more information about updating the node list
Logging and tracing is a common aid for debugging. OPatch maintains logs for all
The log files are located in the
Oracle_home/cfgtoollogs/opatch directory. Each log file is tagged with the time stamp of the operation. Log files are named as
opatch_mm-dd-yyyy_hh-mm-ss.log, where mm-dd-yyyy is the current date and hh-mm-ss is the current time. Each time you run OPatch, a new log file is created.
For example, if a log file is created on May 17, 2015 at 11:55 PM, then it is named as follows:
OPatch also maintains an index of the commands processed by OPatch and the log files associated with it in the
opatch_history.txt file located in the
Oracle_home/cfgtoollogs/opatch directory. A sample of the
opatch_history.txt file is as follows:
Date & Time : Tue Apr 26 23:00:55 PDT 2015 Oracle Home : /u01/app/oracle/product/12.1.0/dbhome_1 OPatch Ver. : 18.104.22.168.0 Current Dir : /scratch/oui/OPatch Command : lsinventory Log File : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/opatch-2015_Apr_26_23-00-55-PDT_Tue.log
You might get this error if the directory that the OPatch utility is using to do the patch does not match the template for what it is checking, or if the OPatch utility is run from an invalid directory.
Patch_Shiphome directory should have the following structure:
etc subdirectory that has the metadata files
files subdirectory that has the patch files
etc/config/inventory.xml file and the
actions.xml file under the same directory
To resolve the "Not a valid patch area" error:
opatch apply /Patch_Shiphome
Patch_Shiphome is the location where the patch has been staged on disk.
If the patching process is interrupted, then you might get the error "Unable to remove a partially installed interim patch" when you try to install the patch a second time.
To resolve the partially installed patch error:
ORACLE_HOMEis set to the Oracle home directory you are attempting to patch.
Oracle_home/.patch_storage/patch-id_timestampdirectory and run the
restore.baton Windows platforms) as follows:
Oracle_home/.patch_storage/patch-id_timestamp/make.txtfile (if available) to modify your operating system environment, as follows:
Upgrades are performed when you install a new software release or version, or apply a patch set.
An upgrade modifies most, if not all, of the installed Oracle software files, whereas a patch typically modifies only a few files. You can perform rolling upgrades, or you can shut down the Oracle Database and Oracle Clusterware software to perform the upgrade.
You perform out-of-place upgrades when upgrading the software to a new release. To perform an out-of-place upgrade, you install the Oracle Grid Infrastructure for a cluster into a new Grid home. When performing the upgrade, you specify the location of the new Grid home instead of selecting the existing software location.
When performing an out-of-place upgrade, the old and new version of the software are present on the nodes at the same time, each in a different home location, but only one version of the software is active at any given time. To upgrade your Oracle Database 11g software to Oracle Database 12c Release 1 (12.1), you install Oracle Grid Infrastructure for a cluster and Oracle Database into new Oracle home directories. At the end of the upgrade process, the active version of the software is changed to use the Oracle Grid Infrastructure for a cluster or Oracle Database 12c Release 1 (12.1) software.
You can use Database Upgrade Assistant (DBUA) to upgrade an existing database to the current release of Oracle Database. Database Upgrade Assistant (DBUA) guides you through the upgrade process and configures your database for the new release. DBUA automates the upgrade process and makes appropriate recommendations for configuration options such as tablespaces and online redo log files.
Oracle Database 2 Day DBA for more information about using DBUA to upgrade a database
Oracle Grid Infrastructure Installation and Upgrade Guide for your operating system for more information on performing software upgrades