To manage Oracle software and apply patches in Oracle Real Application Clusters (Oracle RAC) environments, you use Oracle Universal Installer or the OPatch utility.
See Also:
Oracle Database 2 Day DBA for more information about software management and patch releases
Oracle OPatch User's Guide for Windows and UNIX for details on how to get the latest version of OPatch
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:
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 11.2.0.3.0 to Oracle Database 11.2.0.3.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, at
To locate patches on the My Oracle Support website:
Log in to your account on My Oracle Support.
Select the Patches & Updates tab.
If you know the patch number, then you can enter it into the Patch Name or Number field, then click Search.
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 12.1.0.1.0.
Specify the platform on which the software is installed.
Click Search to look for available patches. The Patch Search Results page is displayed.
On the Patch Search Results page, select the number of the patch you want to download. A details page for that patch appears on your screen.
Click the ReadMe button to view the ReadMe file for the patch, or click Download to download the patch to your local computer. 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?
See Also:
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.
The following sections describe the steps to perform in preparation for using OPatch:
See Also:
Oracle Database 2 Day DBA for more information about how to keep your Oracle Database software up-to-date
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:
In a command window, log in to the operating system as the oracle
user.
Use the echo
command to display the current setting of the ORACLE_HOME
environment variable.
echo $ORACLE_HOME
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:
Back up the software installed in the specified Oracle home using:
An operating system utility, such as zip
, cp -r
, tar
, or cpio
, to back up the software in the Oracle home directory to disk.
The Oracle Secure Backup utility to back up the software in the Oracle home directory to tape.
After you download the patch from My Oracle Support, you must copy the patch to each node that runs the software being patched.
See Also:
Oracle Database 2 Day DBA for more information about software management and patch releases
The opatch
binary file is located in the Oracle_home/OPatch
directory. You can either specify this path when executing OPatch, or you can update the PATH
environment variable to include the OPatch
directory.
To update the PATH environment variable on Oracle Linux systems:
In a command window, log in to the operating system as the Oracle home owner, or a user that has write permission for the files in the Oracle home.
Use a shell command similar to the following to update the value of the PATH environment variable, where /u01/app/oracle/product/12.1.0/dbhome_1
is 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.
Before you patch a system, make sure the user equivalency is working. 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".
On the system where you want to run OPatch, log in as the oracle
user.
Use the following command to test user equivalency:
[oracle@racnode1] $ ssh racnode2 date
If the date is returned, then user equivalency between the source and destination node has been configured.
If you see output similar to the following, then SSH user equivalency is not enabled:
Enter passphrase for key '/home/oracle/.ssh/id_rsa':
Enable SSH user equivalency before continuing with the patching operation.
To enable SSH user equivalency:
On the system where you want to run OPatch, open a command window and log in as the oracle
user.
Start the SSH agent and load the SSH keys into memory using the following commands:
$ /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add
These commands start the ssh-agent
on 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.
At the prompt, enter the pass phrase for each key that you generated when configuring Secure Shell, for example:
[oracle@racnode1 .ssh]$ exec /usr/bin/ssh-agent $SHELL [oracle@racnode1 .ssh]$ /usr/bin/ssh-add Enter passphrase for /home/oracle/.ssh/id_rsa Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa) Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
To test if you have configured SSH correctly, run the following command. If you have configured SSH correctly, then you are not prompted for a password or a pass phrase.
[oracle@racnode1] $ ssh racnode2 date
Note:
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.See Also:
"Configuring Operating System Users and Groups on Linux Systems"
Oracle Grid Infrastructure Installation 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 |
This section describes the following tasks:
See Also:
Oracle OPatch User's Guide for Windows and UNIX for information about patch automation
There are two parts to patching Oracle Grid Infrastructure for a cluster:
Unlock the Grid home
Apply patches to the Grid home
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.
To unlock the Grid home, perform the following steps:
Change directory to the path Grid_home
/crs/install
, where Grid_home
is the path to the Grid home, and at the root
user unlock the Grid home using commands similar to the following:
cd /u01/app/12.1.0/grid/crs/install rootcrs.bat -unlock -crshome /u01/app/12.1.0/grid
When you run the rootcrs.bat
script with the -unlock
flag, it stops the Oracle Clusterware stack and unlocks the files in the Grid home so they can be modified.
Note:
Starting with Oracle Database 12c Release 1 (12.1.0.2), therootcrs.bat
script replaces the rootcrs.pl
script in the Oracle Grid Infrastructure home.Change user to the software owner for Oracle Grid Infrastructure for a cluster and apply the patch to the Grid home, using one of the patching methods described in this section.
After you have finished modifying the Grid home, lock it again as the root
user using commands similar to the following:
cd /u01/app/12.1.0/grid/crs/install rootcrs.bat -patch
The rootcrs.bat
script with the -patch
flag 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 minimize_downtime
option.
See Also:
Oracle Real Application Clusters Administration and Deployment Guide for information about SRVCTL commands
Oracle Clusterware Administration and Deployment Guide for information about CRSCTL commands
In rolling patching, one group of nodes is shut down, the patch is applied to those nodes, and the nodes are brought back up. This 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.
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:
Log in to My Oracle Support.
Select the Patches & Updates tab.
Select Quick Links to the Latest Patchsets, Mini Packs, and Maintenance Packs.
Under the heading Latest Oracle Server/Tools Patchsets, select Oracle Database.
A list of operating systems appears.
Place your cursor over the entry that matches your operating system, or use the triangular arrows to search for your operating system.
When you place the cursor over the entry for your operating system, for example, Linux x86, a list of database versions appears.
Select 12.1.0
The Advanced Search page appears.
Scroll to the bottom of this page to see the list of available patch sets.
Select the number in the Patch column for the patch set you want to view or download.
The Patchset description and download page appears.
Click View Readme to see the patch set notes.
On this page you can also click Download to download the patch to your computer.
If you choose to download the patch, then follow the instructions in the ReadMe file of the patch set to apply the patch set to your software.
Applying patches to your Oracle RAC environment can be complicated at times. This section covers some common topics regarding troubleshooting 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.
See Also:
Oracle Database 2 Day DBA for more information about software management and patch releases
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:
If the list of nodes for your cluster is not complete, then you can update it by using Oracle Universal Installer and the -updateNodeList
flag, 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
See Also:
Oracle Universal Installer NextGen Installation Guide for more information about updating the node list
Logging and tracing is a common aid for debugging. OPatch maintains logs for all apply
, rollback
, and lsinventory
operations. 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, 2012 at 11:55 PM, then it is named as follows:
opatch_05-17-2012_23-55-00.log
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 2012 Oracle Home : /u01/app/oracle/product/12.1.0/dbhome_1/ OPatch Ver. : 12.1.0.0.0 Current Dir : /scratch/oui/OPatch Command : lsinventory Log File : /u01/app/oracle/product/12.1.0/dbhome_1/cfgtoollogs/opatch/opatch-2012_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.
The Patch_Shiphome
directory should have the following structure:
An etc
subdirectory that has the metadata files
A files
subdirectory that has the patch files
The etc/config/inventory.xml
file and the actions.xml
file under the same directory
To resolve the "Not a valid patch area" error:
Perform one of the following actions:
Remove the patch shiphome directory and re-create it with the proper structure (by extracting the files again).
Start the OPatch utility from the directory where the patch to be installed has been unzipped and staged on disk.
Use the following command when starting OPatch:
opatch apply /Patch_Shiphome
where 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:
Ensure that the environment variable ORACLE_HOME
is set to the Oracle home directory you are attempting to patch.
Go to the Oracle_home/.patch_storage/
patch-id
_
timestamp
directory and run the restore.sh
script (or restore.bat
on Windows platforms) as follows:
Oracle_home/.patch_storage/patch-id_timestamp/restore.sh
On Linux and UNIX systems, use the Oracle_home/.patch_storage/
patch-id
_
timestamp
/make.txt
file (if available) to modify your operating system environment, as follows:
/bin/sh make.txt
Attempt to apply the patch again.
An upgrade modifies most, if not all, of the installed Oracle software files, whereas a patch typically modifies only a few files. Upgrades are performed when you install a new software release or version, or apply a patch set. 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.
See Also:
Oracle Database 2 Day DBA for more information about using DBUA to upgrade a database
Oracle Grid Infrastructure Installation Guide for your operating system for more information on performing software upgrades