How To Apply A Rolling Opatch: Rac How To... Fold Patch Installation Instructions Patch Deinstallation Instructions

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

How To Apply A Rolling OPatch

Welcome To ABCdba.com » RAC How To... » How To Apply A Rolling OPatch

Fold
Table of Contents
OVERVIEW
PATCH INSTALLATION INSTRUCTIONS
PATCH DEINSTALLATION INSTRUCTIONS

OVERVIEW
An Oracle OPatch for a RAC configuration can take take one of two forms, either as a
Minimum Downtime OPatch or as a Rolling Opatch. The instructions for applying the
former can be found here. Instructions for performing the latter can be found below.

In addition to being informed by Oracle Support, the type of OPatch can be determined by
checking the <Patch No>/etc/config/inventory file. If the the variable
online_rac_installable is set to true then the patch is a rolling patch.

PATCH INSTALLATION INSTRUCTIONS


 The worked example below will use the following settings:
o CRS_HOME = /u01/crs/oracle/product/10/crs
o RDBMS_HOME = /u01/app/oracle/product/db10.2.0

 The patch being applied is p123456

 The example output from the various commands has been abridged for readability.

1. Make sure all instances running under the ORACLE_HOME being patched are cleanly
shutdown before installing this patch. Also ensure that the tool used to terminate the
instance(s) has exited cleanly.

2. Ensure that the directory containing the opatch script appears in your $PATH. Execute
which opatch to confirm.

oracle:> which opatch


no opatch in /u01/app/oracle/product/db10.2.0/bin /bin /usr/sbin /usr/bin
/usr/local/bin /usr/ccs/bin
/usr/bin /usr/local/bin /u01/crs/oracle/product/10/crs/bin
/u01/crs/oracle/product/10/crs/bin

oracle:> export PATH=$PATH:$ORACLE_HOME/OPatch

oracle:> which opatch


/u01/crs/oracle/product/10/crs/OPatch/opatch
3. Each node of the cluster has its own CRS Home, the patch should be applied as a rolling
upgrade. All of the following
steps should be followed for each node.

 Do not patch two nodes at once.

4. As the Oracle Clusterware (CRS) software owner check CRS_HOME.

oracle:> opatch lsinventory -detail -oh /u01/crs/oracle/product/10/crs


Invoking OPatch 10.2.0.3.0
...
Remote node = <node x>
------------------------------------------------------------------------------
--

OPatch succeeded.

5. As the RDBMS server owner check ORACLE_HOME.

oracle:> opatch lsinventory -detail -oh /u01/app/oracle/product/db10.2.0/


Invoking OPatch 10.2.0.3.0
...
Remote node = <node x>
------------------------------------------------------------------------------
--

OPatch succeeded.

 The above should list the components and the list of nodes. If the Oracle inventory is
not setup correctly the OPatch utility will fail.

6. Unzip the patch set container file, this will create one or more sub-directories.

% unzip p123456.zip

Archive: p123456.zip
creating: 123456/
...

7. Shut down the RDBMS and ASM instances, listeners and nodeapps followed by CRS
daemons on the local node.

 To shutdown RDBMS instance on the local node run the following command:

% $ORACLE_HOME/bin/srvctl stop instance -d dbname -i instance_name

 To shutdown ASM instances run the following command on each node:

% $ORACLE_HOME/bin/srvctl stop asm -n <node_name>

 To shutdown nodeapps run the following comand on each node:


% $ORACLE_HOME/bin/srvctl stop nodeapps -n <node_name>

8. Now shutdown CRS daemons on each node by running as root:

root # $CRS_HOME/bin/crsctl stop crs


Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

9. Prior to applying this part of the fix, invoke the unlock script as root to unlock protected
files.

su -

root # cd <patch directory>/123456


root # custom/scripts/prerootpatch.sh -crshome /u01/crs/oracle/product/10/crs
-crsuser oracle
root # exit

10. Now invoke an additional script as the crs software installer/owner. This script will save
important configuration settings.

oracle:> cd <patch directory>/123456


custom/scripts/prepatch.sh -crshome /u01/crs/oracle/product/10/crs
custom/scripts/prepatch.sh completed successfully.

 Note: Make sure the RDBMS portion is only applied to an RDBMS home that meets
all the pre-requiste versions.

oracle:> cd <patch directory>/123456


oracle:> custom/server/123456/custom/scripts/prepatch.sh -dbhome
/u01/app/oracle/product/db10.2.0
custom/server/123456/custom/scripts/prepatch.sh completed successfully.

11. After unlocking any protected files and saving configuration settings run opatch as the
Oracle Clusterware (CRS) software owner.

cd <patch directory>/123456
oracle:> opatch apply -local -oh /u01/crs/oracle/product/10/crs
Invoking OPatch 10.2.0.3.0

Oracle interim Patch Installer version 10.2.0.3.0


Copyright (c) 2005, Oracle Corporation. All rights reserved..

Oracle Home : /u01/crs/oracle/product/10/crs


Central Inventory : /u01/app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OPatch version : 10.2.0.3.0
OUI version : 10.2.0.3.0
OUI location : /u01/crs/oracle/product/10/crs/oui
Log file location :
/u01/crs/oracle/product/10/crs/cfgtoollogs/opatch/opatch2008-02-28_11-51-
38AM.log

ApplySession applying interim patch '123456' to OH


'/u01/crs/oracle/product/10/crs'
ApplySession: Optional component(s) [ oracle.rdbms, 10.2.0.3.0 ]
not present in the Oracle Home or a higher version is found.
Invoking fuser to check for active processes.

You selected -local option, hence OPatch will patch the local system only.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local
system.
(Oracle Home = '/u01/crs/oracle/product/10/crs')

Is the local system ready for patching?

Do you want to proceed? [y|n]


y
User Responded with: Y
Backing up files and inventory (not for auto-rollback) for the Oracle Home
Backing up files affected by the patch '123456' for restore. This might take a
while...
Backing up files affected by the patch '123456' for rollback. This might take
a while...

Patching component oracle.rdbms.rsf, 10.2.0.3.0...


Updating archive file "/u01/crs/oracle/product/10/crs/lib/libgeneric10.a"
with "lib/libgeneric10.a/skgfr.o"
Updating archive file "/u01/crs/oracle/product/10/crs/lib32/libgeneric10.a"
with "lib32/libgeneric10.a/skgfr.o"
ApplySession adding interim patch '123456' to inventory

Verifying the update...


Inventory check OK: Patch ID 123456 is registered in Oracle Home inventory
with proper meta-data.
Files check OK: Files from Patch ID 123456 are present in Oracle Home.
Running make for target client_sharedlib

The local system has been patched and can be restarted.

OPatch succeeded.

12. Use opatch to patch the RDBMS software.

oracle:> opatch apply -local -oh /u01/app/oracle/product/db10.2.0


Invoking OPatch 10.2.0.3.0

Oracle interim Patch Installer version 10.2.0.3.0


Copyright (c) 2005, Oracle Corporation. All rights reserved..

Oracle Home : /u01/app/oracle/product/db10.2.0


Central Inventory : /u01/app/oracle/oraInventory
from : /var/opt/oracle/oraInst.loc
OPatch version : 10.2.0.3.0
OUI version : 10.2.0.3.0
OUI location : /u01/app/oracle/product/db10.2.0/oui
Log file location :
/u01/app/oracle/product/db10.2.0/cfgtoollogs/opatch/opatch2008-02-28_11-53-
12AM.log

ApplySession applying interim patch '123456' to OH


'/u01/app/oracle/product/db10.2.0'
Invoking fuser to check for active processes.
Invoking fuser on "/u01/app/oracle/product/db10.2.0/bin/oracle"

You selected -local option, hence OPatch will patch the local system only.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local
system.
(Oracle Home = '/u01/app/oracle/product/db10.2.0')

Is the local system ready for patching?

Do you want to proceed? [y|n]


y
User Responded with: Y
Backing up files and inventory (not for auto-rollback) for the Oracle Home
Backing up files affected by the patch '123456' for restore. This might take a
while...
Backing up files affected by the patch '123456' for rollback. This might take
a while...

Patching component oracle.rdbms.rsf, 10.2.0.3.0...


Updating archive file "/u01/app/oracle/product/db10.2.0/lib/libgeneric10.a"
with "lib/libgeneric10.a/skgfr.o"
Updating archive file "/u01/app/oracle/product/db10.2.0/lib32/libgeneric10.a"
with "lib32/libgeneric10.a/skgfr.o"

Patching component oracle.rdbms, 10.2.0.3.0...


ApplySession adding interim patch '123456' to inventory

Verifying the update...


Inventory check OK: Patch ID 123456 is registered in Oracle Home inventory
with proper meta-data.
Files check OK: Files from Patch ID 123456 are present in Oracle Home.
Running make for target client_sharedlib
Running make for target ioracle

The local system has been patched and can be restarted.

OPatch succeeded.

 After opatch completes, some configuration settings need to be applied to the


patched files.

13. As the RDBMS software owner execute the following:

% <patch directory>/123456/custom/server/123456/custom/scripts/postpatch.sh
-dbhome <RDBMS_HOME>
oracle:> <patch
directory>/123456/custom/server/123456/custom/scripts/postpatch.sh \
> -dbhome /u01/app/oracle/product/db10.2.0
Reading ...
...
Reapplying file permissions on
/u01/app/oracle/product/db10.2.0/lib/libsrvmhas10.so

14. Restore the security settings and restart CRS by running the following as root:

su -

Sourcing /root/.profile-EIS.....
root # cd <patch directory>/123456
root # custom/scripts/postrootpatch.sh -crshome /u01/crs/oracle/product/10/crs
Checking to see if Oracle CRS stack is already up...
Checking to see if Oracle CRS stack is already starting
WARNING: directory '/u01/crs/oracle/product/10' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
Startup will be queued to init within 30 seconds.
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)

PATCH DEINSTALLATION INSTRUCTIONS


To roll back the patch, invoke the following opatch commands to roll back the patch in all
homes.

% opatch rollback -id 123456 -local -oh <CRS_HOME>

% opatch rollback -id 123456 -local -oh <RDBMS_HOME>

You might also like