Please see my other blog for Oracle EBusiness Suite Posts - EBMentors

Search This Blog

Note: All the posts are based on practical approach avoiding lengthy theory. All have been tested on some development servers. Please don’t test any post on production servers until you are sure.

Sunday, May 27, 2012

Applying Patch 6 on RAC 11gR2 (

Environment: 11gRAC/DB ( , Windows Server 2008 R2 x64 Edition
Patch:13965211 - Patch 6 for Windows 64 bit, download patch from metalink.
This patch is RAC rolling upgradable for GRID, and RDBMS homes.
You should administer one Oracle product, one Oracle home at a time, for its particular Bundle Patch Update.

DB Patch 6 includes all bugs fixed in Patch 1 to Patch 5. It must be applied on top of the base release or on top of any earlier bundle patch from Patch 1 to Patch 5.
The order of patching in RAC install is GRID_HOME, then RDBMS_HOME
OPatch Info:
Oracle recommends that you use OPatch utility release or later. You can download it from My Oracle Support with patch 6880880.

Patch Installation Instructions
Patching GRID Home

  1. Before Patching GRID_HOME, stop OCR related resources, Oracle HASD Services (OHASD) Services and all Oracle Services:
    > srvctl stop service -d  
             -s  -i 
    > srvctl stop instance -d DBNAME -i INSTANCE -o abort
    > crsctl stop crs
    make the backup of the Oracle Home being patached (eg; d:\app...)
  2. To verify all resources have been oved to the other nodes, run the following command from another node with GRID running:
    > crsctl status resource -t
  3. Then use the Computer Management Services GUI or the net stop command to stop ALL Oracle services running on that node:
        net stop OracleService
        net stop OracleTNSListenerLISTENER_
        net stop OracleTNSListenerLISTENER_SCANn
        net stop OracleDBConsole
        net stop OracleASMService
        net stop "Oracle VSS Writer Service"
        net stop OracleREMExecService
        net stop OracleOHService
        net stop "Oracle Object Service"
        net stop OracleClusterVolumeService
        net stop ocfs (required only for OCFS installation)
        net stop orafenceservice
        Note: An explicit 'srvctl start listener -n ' should be issued after patching
  4. Set the ORACLE_HOME environment variable properly
    D:\Sources\\Patches\p6880880_112000_MSWIN-x86-64_optach\OPatch>set ORACLE_HOME=D:\app\\grid
  5. Go to the directory where you downloaded the patch:
    D:\Sources\\Patches\p6880880_112000_MSWIN-x86-64_optach\OPatch>cd D:\Sources\\Patches\p13965211_112030_MSWIN-x86-64
    First check the inventory for the existing patches
    D:\Sources\\Patches\p13965211_112030_MSWIN-x86-64>D:\Sources\\Patches\p6880880_112000_MSWIN-x86-64_optach\OPatch\opatch lsinventory
  6. D:\Sources\\Patches\p13965211_112030_MSWIN-x86-64>cd 13965211
  7. D:\Sources\\Patches\p13965211_112030_MSWIN-x86-64\13965211>D:\Sources\\Patches\p6880880_112000_MSWIN-x86-64_optach\OPatch\opatch apply -local

  8. opatch will attempt to apply the patch on all the nodes in the cluster sequentially. However will prompt for user input to start patching other nodes. At this time ensure that the Oracle services on target node are stopped before proceeding to patch. Once the opatch session completes patching this node, start the services and proceed applying patch to the next node.
  9.  Once the opatch session completes patching GRID_HOME on a node, run the following before proceeding to patch GRID_HOME on the next node. %ORACLE_HOME%\bin\acfsroot installD:\Sources\\Patches\p13965211_112030_MSWIN-x86-64\13965211>%ORACLE_HOME%\bin\acfsroot install
    ACFS-9300: ADVM/ACFS distribution files found.
    ACFS-9307: Installing requested ADVM/ACFS software.
    ACFS-9308: Loading installed ADVM/ACFS drivers.
    ACFS-9327: Verifying ADVM/ACFS devices.
    ACFS-9157: Detecting driver 'oracle oks'.
    ACFS-9157: Detecting driver 'oracle advm'.
    ACFS-9157: Detecting driver 'oracle acfs'.
    ACFS-9309: ADVM/ACFS installation correctness verified.

  10. After this you can start the CRS or go for the RDBMS home patch without starting it, I started.
    D:\app\\grid\BIN>crsctl start crs
    CRS-4123: Oracle High Availability Services has been started.

    D:\app\\grid\BIN>crsctl check crs
    CRS-4638: Oracle High Availability Services is online
    CRS-4537: Cluster Ready Services is online
    CRS-4529: Cluster Synchronization Services is online
    CRS-4533: Event Manager is online
  11. Verify the patch installation
  12. opatch lsinventory

Patching RDBMS Home

  1. Before Patching RDBMS_HOME, the GRID and ASM services can be running.
    Stop OCR related resources and Oracle Services on the current node as listed below:
    > srvctl stop service -d -s -i > srvctl stop instance -d -i -o abort
    D:\app\\grid\BIN>srvctl stop instance -d rac -i rac1
    D:\Sources\\Patches\p13965211_112030_MSWIN-x86-64\13965211>set ORACLE_HOME=D:\app\Inam\product\\dbhome_1
  3.  Apply patch
    D:\Sources\\Patches\p13965211_112030_MSWIN-x86-64\13965211>D:\Sources\\Patches\p6880880_112000_MSWIN-x86-64_optach\OPatch\opatch apply

  4. Start the DB instances
    D:\app\\grid\BIN>srvctl start instance -d rac -i rac1

Post installation steps

After installing the patch, perform the following actions:
For each database instance running out of the ORACLE_HOME being patched, connect to the database using SQL*Plus as SYSDBA and run catwinbundle.sql as follows:

> cd %ORACLE_HOME%\Bundle\Patch6
> sqlplus /nolog 
SQL> @catwinbundle.sql

Check all dependent objects are valid and if not then compile them by using 
SQL> select count(*) from dba_objects where status ='INVALID';


You must execute the steps in "Post Installation Steps" for any new database that was created by any of the following methods:
  • Using DBCA (Database Configuration Assistant) to select a sample database (General, Data Warehouse, Transaction Processing)
  • Using a script that was created by DBCA that creates a database from a sample database
  • Cloning a database that was created by either of the two preceding methods, and if "Post Installation Steps"   was not executed after Bundle Patch6 was applied

1 comment:



I have a two node RAC. i am applying bundle patch 11. i started to patch the GRID Home of node 1.opatch succeeded on node1 and it says "The node 'NODE2' will be patched next... Is the node ready for patching? [y|n]

Here i am bit confused.

1. Should i shutdown the oracle services in Node2 and continue to patch the Grid_home ? If yes then the DB will be completely down for user access. This defeats the purpose of rolling mode which says there is no downtime.

2. Should i patch the RDBMS_home on node1 , start all the oracle services on node1 , stop the oracle services on node2 and then resume the opatch on node1 which is waiting to patch the Grid_home on node2 ?

Please advice.