Hi,
SAP bundle patches are done every six months once. We have five production systems. To get a downtime for each system and the applying of SBP takes three hour per system. In the below approach i am dong all five systems in three hours time by installing a new oracle home and SBP on that and switching it during the downtime.Our system are running in 11g RAC with ASM.
Pre-requisties are below:
1. Create a new acfs file system using asmca
/oracle/SID/112_03
2. Install the binaries there in the above path
3.Once the Oracle Home 11.2.0.3 is installed apply the SBP patch
3.1- SBP steps:
setenv IHRDBMS /oracle/SID/112_03
setenv OHRDBMS /oracle/SID/112_03
unzip -qd $IHRDBMS/sapbundle SGR11203P_1408-20010084.ZIP 'SBP_1120311_201408/OPatch/*'
mv $IHRDBMS/OPatch $IHRDBMS/OPatch-pre-SBP_1120311_201408
mv $IHRDBMS/sapbundle/SBP_1120311_201408/OPatch $IHRDBMS/OPatch
unzip -qd $IHRDBMS/sapbundle SGR11203P_1408-20010084.ZIP 'SBP_1120311_201408/MOPatch/*'
test -d $IHRDBMS/MOPatch && mv $IHRDBMS/MOPatch $IHRDBMS/MOPatch-pre-SBP_1120311_201408
mv $IHRDBMS/sapbundle/SBP_1120311_201408/MOPatch $IHRDBMS/MOPatch
env ORACLE_HOME=$IHRDBMS $IHRDBMS/MOPatch/bpmig.sh -v verify
test -d GIMERGE11203P_1408-20010084 || unzip -qd GIMERGE11203P_1408-20010084 GIMERGE11203P_1408-20010084.ZIP
./GIMERGE11203P_1408-20010084/19060195/custom/server/19060195/custom/scripts/prepatch.sh -dbhome $IHRDBMS
env ORACLE_HOME=$IHRDBMS $IHRDBMS/MOPatch/mopatch.sh -v -s SGR11203P_1408-20010084.ZIP
test -d GIMERGE11203P_1408-20010084 || unzip -qd GIMERGE11203P_1408-20010084 GIMERGE11203P_1408-20010084.ZIP
./GIMERGE11203P_1408-20010084/19060195/custom/server/19060195/custom/scripts/postpatch.sh -dbhome $IHRDBMS
SBP is done in the new oracle home.
4.copy the file as follows from old home.
(cp -Rp /oracle/SID/oldhome/dbs/* to /oracle/SID/112_03/dbs/ )
(cp -Rp /oracle/SID/oldhome/network/admin/* to /oracle/SID/112_03/networ/admin/)
Downtime activities.
5. Stop applications and database.
6.Detach old oracle home.
cd /oracle/SID/oldhome/oui/bin
"./runInstaller -silent -local -cfs -detachHome ORACLE_HOME=""/oracle/oldhome/112_64"""
7.Detach new home
"cd /oracle/SID/112_03/oui/bin
"./runInstaller -silent -local -cfs -detachHome ORACLE_HOME="/oracle/SID/112_03"
8.unmount FS /oracle/oldhome/112_64
9.Attach home
"cd /oracle/SID/112_03/oui/bin
"./runInstaller -silent -attachhome -local -cfs ORACLE_HOME="/oracle/SID/112_03" ORACLE_HOME_NAME=OraDb11g_home5
10.Start DB on primary node on new home
11.alter system set cluster_database=false scope=spfile;
12.Stop and start DB on primary node
13.Run catsbp.sql on primary node
SQL> @sapbundle/SBP_1120311_201408/catsbp.sql
14.alter system set cluster_database=true scope=spfile;
15.Stop and start DB on primary node
16.Check for the invalid objects using below command and if found run @utlrp.sql script
Select * from dba_objects where status ='invalid' order by object_name;
18.change the parametes for "_FIX_CONTROL" and "EVENT" as per the document for ur SBP
19.Stop and start DB on all nodes
20.start Listener and SAP
This will reduce your downtime.
Regards,
Karthik.R