Tuesday, April 3, 2012

Upgrading from 11.2.0.2 to 11.2.0.3 with Physical Standby - 1

This blog list the steps to upgrade 11gR2 (11.2.0.2) RAC to RAC data guard configuration created earlier to 11.2.0.3. There's another previous post which shows steps to upgrade to 11.2.0.2 to 11.2.0.3, which didn't have a data guard configuration. This post uses the "traditional" method of upgrading a data guard configuration not the transient logical standby method which could be used with 11g databases.

Below are some information related to data guard broker and upgrades from data guard admin guide.
Prior to Release 11.2, the configuration file was restricted to reside only on disks having the same sector size (physical block size) as that upon which the file was initially created. This was not a problem because there was typically a single sector size in use within a given broker configuration. In anticipation of having mixed sector sizes somewhere within a given broker configuration, the 11.2 broker configuration file is now completely insensitive to the underlying sector size, so long as the sector size is 4KB or less.

The DGMGRL command-line interface must also be upgraded to release 11.2 in order to manage and monitor a broker configuration running Oracle Data Guard release 11.2. DGMGRL release 11.2 cannot be used to manage Data Guard releases 10.n or 11.1.

The first time the release 11.2 broker starts, it will detect the existence of the release 10.n and 11.1 broker configuration files and automatically upgrade them to include any new properties that were introduced in release 11.2 (for example, the fast-start failover properties). This automatic conversion is transparent, permanent, and occurs only once.

Mount the physical standby database(s). The standby database(s) should not be opened until the primary database upgrade is completed. If Active Data Guard was being used prior to the upgrade, then reenable it after upgrading.


Many things could be done in parallel to save time. For example upgrade of grid infrastructure could be done parallel at standby site as well as primary site, also the installation of Oracle database software could also be done in parallel. But in this case first the standby site software was upgraded and then primary site software and database was upgraded. This post list the standby site upgrade and part 2 will list the primary site upgrade.

Both primary site's standby site's grid infrastructure (GI) requires patch 12539000. This will be flagged when cluster verification tool is run.
Checking for Oracle patch "12539000" in home "/opt/app/11.2.0/grid".
  Node Name     Applied                   Required                  Comment
  ------------  ------------------------  ------------------------  ----------
  rac5          missing                   12539000                  failed
  rac4          missing                   12539000                  failed
Result: Check for Oracle patch "12539000" in home "/opt/app/11.2.0/grid" failed
Patch's readme.txt is still no good (read the earlier post's patch apply). Use opatch auto to apply patch on GI and Oracle Home.

Create directories on all nodes and set permission as oracle:oinstall
# mkdir -p /opt/app/11.2.0/grid3
# chown oracle:oinstall /opt/app/11.2.0/grid3
Check the pre upgrade configuration setup.
./runcluvfy.sh stage -pre crsinst -upgrade -n rac4b,rac5b -rolling -src_crshome /opt/app/11.2.0/grid -dest_crshome /opt/app/11.2.0/grid3 -dest_version 11.2.0.3.0 -fixup -fixupdir /home/oracle/fixupscript -verbose

Performing pre-checks for cluster services setup

Checking node reachability...

Check: Node reachability from node "rac5b"
  Destination Node                      Reachable?
  ------------------------------------  ------------------------
  rac4b                                 yes
  rac5b                                 yes
Result: Node reachability check passed from node "rac5b"


Checking user equivalence...

Check: User equivalence for user "oracle"
  Node Name                             Status
  ------------------------------------  ------------------------
  rac4b                                 passed
  rac5b                                 passed
Result: User equivalence check passed for user "oracle"

Checking CRS user consistency
Result: CRS user consistency check successful

Checking node connectivity...

Checking hosts config file...
  Node Name                             Status
  ------------------------------------  ------------------------
  rac4b                                 passed
  rac5b                                 passed

Verification of the hosts config file successful


Interface information for node "rac4b"
 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 eth0   192.168.0.94    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:C6:3C:75 1500
 eth0   192.168.0.98    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:C6:3C:75 1500
 eth1   192.168.0.96    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:23:78:BB 1500
 eth1   169.254.206.202 169.254.0.0     0.0.0.0         192.168.0.100   08:00:27:23:78:BB 1500


Interface information for node "rac5b"
 Name   IP Address      Subnet          Gateway         Def. Gateway    HW Address        MTU
 ------ --------------- --------------- --------------- --------------- ----------------- ------
 eth0   192.168.0.93    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:84:50:F5 1500
 eth0   192.168.0.97    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:84:50:F5 1500
 eth0   192.168.0.92    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:84:50:F5 1500
 eth1   192.168.0.95    192.168.0.0     0.0.0.0         192.168.0.100   08:00:27:38:44:B3 1500
 eth1   169.254.64.99   169.254.0.0     0.0.0.0         192.168.0.100   08:00:27:38:44:B3 1500


Check: Node connectivity for interface "eth0"
  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  rac4b[192.168.0.94]             rac4b[192.168.0.98]             yes
  rac4b[192.168.0.94]             rac4b[192.168.0.96]             yes
  rac4b[192.168.0.94]             rac5b[192.168.0.93]             yes
  rac4b[192.168.0.94]             rac5b[192.168.0.97]             yes
  rac4b[192.168.0.94]             rac5b[192.168.0.92]             yes
  rac4b[192.168.0.94]             rac5b[192.168.0.95]             yes
  rac4b[192.168.0.98]             rac4b[192.168.0.96]             yes
  rac4b[192.168.0.98]             rac5b[192.168.0.93]             yes
  rac4b[192.168.0.98]             rac5b[192.168.0.97]             yes
  rac4b[192.168.0.98]             rac5b[192.168.0.92]             yes
  rac4b[192.168.0.98]             rac5b[192.168.0.95]             yes
  rac4b[192.168.0.96]             rac5b[192.168.0.93]             yes
  rac4b[192.168.0.96]             rac5b[192.168.0.97]             yes
  rac4b[192.168.0.96]             rac5b[192.168.0.92]             yes
  rac4b[192.168.0.96]             rac5b[192.168.0.95]             yes
  rac5b[192.168.0.93]             rac5b[192.168.0.97]             yes
  rac5b[192.168.0.93]             rac5b[192.168.0.92]             yes
  rac5b[192.168.0.93]             rac5b[192.168.0.95]             yes
  rac5b[192.168.0.97]             rac5b[192.168.0.92]             yes
  rac5b[192.168.0.97]             rac5b[192.168.0.95]             yes
  rac5b[192.168.0.92]             rac5b[192.168.0.95]             yes
Result: Node connectivity passed for interface "eth0"


Check: TCP connectivity of subnet "192.168.0.0"
  Source                          Destination                     Connected?
  ------------------------------  ------------------------------  ----------------
  rac5b:192.168.0.93              rac4b:192.168.0.94              passed
  rac5b:192.168.0.93              rac4b:192.168.0.98              passed
  rac5b:192.168.0.93              rac4b:192.168.0.96              passed
  rac5b:192.168.0.93              rac5b:192.168.0.97              passed
  rac5b:192.168.0.93              rac5b:192.168.0.92              passed
  rac5b:192.168.0.93              rac5b:192.168.0.95              passed
Result: TCP connectivity check passed for subnet "192.168.0.0"


Check: Node connectivity for interface "eth1"
Checking subnet mask consistency...
Subnet mask consistency check passed for subnet "192.168.0.0".
Subnet mask consistency check passed.

Result: Node connectivity check passed

Checking multicast communication...

Checking subnet "192.168.0.0" for multicast communication with multicast group "230.0.1.0"...
Check of subnet "192.168.0.0" for multicast communication with multicast group "230.0.1.0" passed.

Check of multicast communication passed.

Checking OCR integrity...

OCR integrity check passed

Checking ASMLib configuration.
  Node Name                             Status
  ------------------------------------  ------------------------
  rac4b                                 passed
  rac5b                                 passed
Result: Check for ASMLib configuration passed.

Check: Total memory
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         1.9641GB (2059516.0KB)    1.5GB (1572864.0KB)       passed
  rac5b         1.9641GB (2059516.0KB)    1.5GB (1572864.0KB)       passed
Result: Total memory check passed

Check: Available memory
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         1.0329GB (1083124.0KB)    50MB (51200.0KB)          passed
  rac5b         968.2383MB (991476.0KB)   50MB (51200.0KB)          passed
Result: Available memory check passed

Check: Swap space
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         3.9987GB (4192956.0KB)    2.9462GB (3089274.0KB)    passed
  rac5b         3.9987GB (4192956.0KB)    2.9462GB (3089274.0KB)    passed
Result: Swap space check passed

Check: Free disk space for "rac4b:/opt/app/11.2.0/grid3,rac4b:/tmp"
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /opt/app/11.2.0/grid3  rac4b         /             19.377GB      7.5GB         passed
  /tmp              rac4b         /             19.377GB      7.5GB         passed
Result: Free disk space check passed for "rac4b:/opt/app/11.2.0/grid3,rac4b:/tmp"

Check: Free disk space for "rac5b:/opt/app/11.2.0/grid3,rac5b:/tmp"
  Path              Node Name     Mount point   Available     Required      Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  /opt/app/11.2.0/grid3  rac5b         /             18.296GB      7.5GB         passed
  /tmp              rac5b         /             18.296GB      7.5GB         passed
Result: Free disk space check passed for "rac5b:/opt/app/11.2.0/grid3,rac5b:/tmp"

Check: User existence for "oracle"
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  rac4b         passed                    exists(500)
  rac5b         passed                    exists(500)

Checking for multiple users with UID value 500
Result: Check for multiple users with UID value 500 passed
Result: User existence check passed for "oracle"

Check: Group existence for "oinstall"
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  rac4b         passed                    exists
  rac5b         passed                    exists
Result: Group existence check passed for "oinstall"

Check: Membership of user "oracle" in group "oinstall" [as Primary]
  Node Name         User Exists   Group Exists  User in Group  Primary       Status
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             yes           yes           yes           yes           passed
  rac5b             yes           yes           yes           yes           passed
Result: Membership check for user "oracle" in group "oinstall" [as Primary] passed

Check: Run level
  Node Name     run level                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         3                         3,5                       passed
  rac5b         3                         3,5                       passed
Result: Run level check passed

Check: Hard limits for "maximum open file descriptors"
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  rac4b             hard          65536         65536         passed
  rac5b             hard          65536         65536         passed
Result: Hard limits check passed for "maximum open file descriptors"

Check: Soft limits for "maximum open file descriptors"
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  rac4b             soft          1024          1024          passed
  rac5b             soft          65536         1024          passed
Result: Soft limits check passed for "maximum open file descriptors"

Check: Hard limits for "maximum user processes"
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  rac4b             hard          16384         16384         passed
  rac5b             hard          16384         16384         passed
Result: Hard limits check passed for "maximum user processes"

Check: Soft limits for "maximum user processes"
  Node Name         Type          Available     Required      Status
  ----------------  ------------  ------------  ------------  ----------------
  rac4b             soft          16383         2047          passed
  rac5b             soft          16383         2047          passed
Result: Soft limits check passed for "maximum user processes"

Checking for Oracle patch "12539000" in home "/opt/app/11.2.0/grid".
  Node Name     Applied                   Required                  Comment
  ------------  ------------------------  ------------------------  ----------
  rac4b         12539000                  12539000                  passed
  rac5b         12539000                  12539000                  passed
Result: Check for Oracle patch "12539000" in home "/opt/app/11.2.0/grid" passed

There are no oracle patches required for home "/opt/app/11.2.0/grid3".

Check: System architecture
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         x86_64                    x86_64                    passed
  rac5b         x86_64                    x86_64                    passed
Result: System architecture check passed

Check: Kernel version
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         2.6.18-194.el5            2.6.18                    passed
  rac5b         2.6.18-194.el5            2.6.18                    passed
Result: Kernel version check passed

Check: Kernel parameter for "semmsl"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             3010          3010          250           passed
  rac5b             3010          3010          250           passed
Result: Kernel parameter check passed for "semmsl"

Check: Kernel parameter for "semmns"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             385280        385280        32000         passed
  rac5b             385280        385280        32000         passed
Result: Kernel parameter check passed for "semmns"

Check: Kernel parameter for "semopm"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             3010          3010          100           passed
  rac5b             3010          3010          100           passed
Result: Kernel parameter check passed for "semopm"

Check: Kernel parameter for "semmni"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             128           128           128           passed
  rac5b             128           128           128           passed
Result: Kernel parameter check passed for "semmni"

Check: Kernel parameter for "shmmax"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             68719476736   68719476736   1054472192    passed
  rac5b             68719476736   68719476736   1054472192    passed
Result: Kernel parameter check passed for "shmmax"

Check: Kernel parameter for "shmmni"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             4096          4096          4096          passed
  rac5b             4096          4096          4096          passed
Result: Kernel parameter check passed for "shmmni"

Check: Kernel parameter for "shmall"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             4294967296    4294967296    2097152       passed
  rac5b             4294967296    4294967296    2097152       passed
Result: Kernel parameter check passed for "shmall"

Check: Kernel parameter for "file-max"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             6815744       6815744       6815744       passed
  rac5b             6815744       6815744       6815744       passed
Result: Kernel parameter check passed for "file-max"

Check: Kernel parameter for "ip_local_port_range"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             between 9000.0 & 65500.0  between 9000.0 & 65500.0  between 9000.0 & 65500.0  passed
  rac5b             between 9000.0 & 65500.0  between 9000.0 & 65500.0  between 9000.0 & 65500.0  passed
Result: Kernel parameter check passed for "ip_local_port_range"

Check: Kernel parameter for "rmem_default"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             262144        262144        262144        passed
  rac5b             262144        262144        262144        passed
Result: Kernel parameter check passed for "rmem_default"

Check: Kernel parameter for "rmem_max"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             4194304       4194304       4194304       passed
  rac5b             4194304       4194304       4194304       passed
Result: Kernel parameter check passed for "rmem_max"

Check: Kernel parameter for "wmem_default"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             262144        262144        262144        passed
  rac5b             262144        262144        262144        passed
Result: Kernel parameter check passed for "wmem_default"

Check: Kernel parameter for "wmem_max"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             1048576       1048576       1048576       passed
  rac5b             1048576       1048576       1048576       passed
Result: Kernel parameter check passed for "wmem_max"

Check: Kernel parameter for "aio-max-nr"
  Node Name         Current       Configured    Required      Status        Comment
  ----------------  ------------  ------------  ------------  ------------  ------------
  rac4b             1048576       1048576       1048576       passed
  rac5b             1048576       1048576       1048576       passed
Result: Kernel parameter check passed for "aio-max-nr"

Check: Package existence for "make"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         make-3.81-3.el5           make-3.81                 passed
  rac5b         make-3.81-3.el5           make-3.81                 passed
Result: Package existence check passed for "make"

Check: Package existence for "binutils"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         binutils-2.17.50.0.6-14.el5  binutils-2.17.50.0.6      passed
  rac5b         binutils-2.17.50.0.6-14.el5  binutils-2.17.50.0.6      passed
Result: Package existence check passed for "binutils"

Check: Package existence for "gcc(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         gcc(x86_64)-4.1.2-48.el5  gcc(x86_64)-4.1.2         passed
  rac5b         gcc(x86_64)-4.1.2-48.el5  gcc(x86_64)-4.1.2         passed
Result: Package existence check passed for "gcc(x86_64)"

Check: Package existence for "libaio(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         libaio(x86_64)-0.3.106-5  libaio(x86_64)-0.3.106    passed
  rac5b         libaio(x86_64)-0.3.106-5  libaio(x86_64)-0.3.106    passed
Result: Package existence check passed for "libaio(x86_64)"

Check: Package existence for "glibc(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         glibc(x86_64)-2.5-49      glibc(x86_64)-2.5-24      passed
  rac5b         glibc(x86_64)-2.5-49      glibc(x86_64)-2.5-24      passed
Result: Package existence check passed for "glibc(x86_64)"

Check: Package existence for "compat-libstdc++-33(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         compat-libstdc++-33(x86_64)-3.2.3-61  compat-libstdc++-33(x86_64)-3.2.3  passed
  rac5b         compat-libstdc++-33(x86_64)-3.2.3-61  compat-libstdc++-33(x86_64)-3.2.3  passed
Result: Package existence check passed for "compat-libstdc++-33(x86_64)"

Check: Package existence for "elfutils-libelf(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         elfutils-libelf(x86_64)-0.137-3.el5  elfutils-libelf(x86_64)-0.125  passed
  rac5b         elfutils-libelf(x86_64)-0.137-3.el5  elfutils-libelf(x86_64)-0.125  passed
Result: Package existence check passed for "elfutils-libelf(x86_64)"

Check: Package existence for "elfutils-libelf-devel"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         elfutils-libelf-devel-0.137-3.el5  elfutils-libelf-devel-0.125  passed
  rac5b         elfutils-libelf-devel-0.137-3.el5  elfutils-libelf-devel-0.125  passed
Result: Package existence check passed for "elfutils-libelf-devel"

Check: Package existence for "glibc-common"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         glibc-common-2.5-49       glibc-common-2.5          passed
  rac5b         glibc-common-2.5-49       glibc-common-2.5          passed
Result: Package existence check passed for "glibc-common"

Check: Package existence for "glibc-devel(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         glibc-devel(x86_64)-2.5-49  glibc-devel(x86_64)-2.5   passed
  rac5b         glibc-devel(x86_64)-2.5-49  glibc-devel(x86_64)-2.5   passed
Result: Package existence check passed for "glibc-devel(x86_64)"

Check: Package existence for "glibc-headers"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         glibc-headers-2.5-49      glibc-headers-2.5         passed
  rac5b         glibc-headers-2.5-49      glibc-headers-2.5         passed
Result: Package existence check passed for "glibc-headers"

Check: Package existence for "gcc-c++(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         gcc-c++(x86_64)-4.1.2-48.el5  gcc-c++(x86_64)-4.1.2     passed
  rac5b         gcc-c++(x86_64)-4.1.2-48.el5  gcc-c++(x86_64)-4.1.2     passed
Result: Package existence check passed for "gcc-c++(x86_64)"

Check: Package existence for "libaio-devel(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         libaio-devel(x86_64)-0.3.106-5  libaio-devel(x86_64)-0.3.106  passed
  rac5b         libaio-devel(x86_64)-0.3.106-5  libaio-devel(x86_64)-0.3.106  passed
Result: Package existence check passed for "libaio-devel(x86_64)"

Check: Package existence for "libgcc(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         libgcc(x86_64)-4.1.2-48.el5  libgcc(x86_64)-4.1.2      passed
  rac5b         libgcc(x86_64)-4.1.2-48.el5  libgcc(x86_64)-4.1.2      passed
Result: Package existence check passed for "libgcc(x86_64)"

Check: Package existence for "libstdc++(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         libstdc++(x86_64)-4.1.2-48.el5  libstdc++(x86_64)-4.1.2   passed
  rac5b         libstdc++(x86_64)-4.1.2-48.el5  libstdc++(x86_64)-4.1.2   passed
Result: Package existence check passed for "libstdc++(x86_64)"

Check: Package existence for "libstdc++-devel(x86_64)"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         libstdc++-devel(x86_64)-4.1.2-48.el5  libstdc++-devel(x86_64)-4.1.2  passed
  rac5b         libstdc++-devel(x86_64)-4.1.2-48.el5  libstdc++-devel(x86_64)-4.1.2  passed
Result: Package existence check passed for "libstdc++-devel(x86_64)"

Check: Package existence for "sysstat"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         sysstat-7.0.2-3.el5       sysstat-7.0.2             passed
  rac5b         sysstat-7.0.2-3.el5       sysstat-7.0.2             passed
Result: Package existence check passed for "sysstat"

Check: Package existence for "ksh"
  Node Name     Available                 Required                  Status
  ------------  ------------------------  ------------------------  ----------
  rac4b         ksh-20100202-1.el5        ksh-20060214              passed
  rac5b         ksh-20100202-1.el5        ksh-20060214              passed
Result: Package existence check passed for "ksh"

Checking for multiple users with UID value 0
Result: Check for multiple users with UID value 0 passed

Check: Current group ID
Result: Current group ID check passed

Starting check for consistency of primary group of root user
  Node Name                             Status
  ------------------------------------  ------------------------
  rac4b                                 passed
  rac5b                                 passed

Check for consistency of root user's primary group passed

Starting Clock synchronization checks using Network Time Protocol(NTP)...

NTP Configuration file check started...
Network Time Protocol(NTP) configuration file not found on any of the nodes. Oracle Cluster Time Synchronization Service(CTSS) can be used instead of NTP for time synchronization on the cluster nodes
No NTP Daemons or Services were found to be running

Result: Clock synchronization check using Network Time Protocol(NTP) passed

Checking Core file name pattern consistency...
Core file name pattern consistency check passed.

Checking to make sure user "oracle" is not in "root" group
  Node Name     Status                    Comment
  ------------  ------------------------  ------------------------
  rac4b         passed                    does not exist
  rac5b         passed                    does not exist
Result: User "oracle" is not part of "root" group. Check passed

Check default user file creation mask
  Node Name     Available                 Required                  Comment
  ------------  ------------------------  ------------------------  ----------
  rac4b         0022                      0022                      passed
  rac5b         0022                      0022                      passed
Result: Default user file creation mask check passed
Checking consistency of file "/etc/resolv.conf" across nodes

Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined
File "/etc/resolv.conf" does not have both domain and search entries defined
Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...
domain entry in file "/etc/resolv.conf" is consistent across nodes
Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...
search entry in file "/etc/resolv.conf" is consistent across nodes
Checking file "/etc/resolv.conf" to make sure that only one search entry is defined
All nodes have one search entry defined in file "/etc/resolv.conf"
Checking all nodes to make sure that search entry is "domain.net" as found on node "rac4b"
All nodes of the cluster have same value for 'search'
Checking DNS response time for an unreachable node
  Node Name                             Status
  ------------------------------------  ------------------------
  rac4b                                 passed
  rac5b                                 passed
The DNS response time for an unreachable node is within acceptable limit on all nodes
File "/etc/resolv.conf" is consistent across nodes

UDev attributes check for OCR locations started...
Result: UDev attributes check passed for OCR locations

UDev attributes check for Voting Disk locations started...
Result: UDev attributes check passed for Voting Disk locations

Check: Time zone consistency
Result: Time zone consistency check passed
Checking VIP configuration.
Checking VIP Subnet configuration.
Check for VIP Subnet configuration passed.
Checking VIP reachability
Check for VIP reachability passed.

Checking Oracle Cluster Voting Disk configuration...
ASM Running check passed. ASM is running on all specified nodes
Oracle Cluster Voting Disk configuration check passed
Clusterware version consistency passed
Pre-check for cluster services setup was successful.
Current version of clusterware and database configuration
$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.2.0]
$ crsctl query crs softwareversion
Oracle Clusterware version on node [rac5b] is [11.2.0.2.0]

$ srvctl config database -d rac11g2s
Database unique name: rac11g2s
Database name: rac11g2
Oracle home: /opt/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/rac11g2s/spfilerac11g2s.ora
Domain: domain.net
Start options: mount
Stop options: immediate
Database role: PHYSICAL_STANDBY
Management policy: AUTOMATIC
Server pools: rac11g2s
Database instances: rac11g2s1,rac11g2s2
Disk Groups: DATA,FLASH
Mount point paths:
Services:
Type: RAC
Database is administrator managed
Execute runInstaller and begin the GI upgrade. Select GI and ASM upgrade option.
All nodes are selected by default.
ASM related OS admin groups.
Specify the new location for out of place upgrade.
Summary
When prompted execute the rootupgrade.sh on each node.

Before running the rootupgrade.sh find out the apply instance with
DGMGRL> show database rac11g2s

Database - rac11g2s

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       0 seconds
  Real Time Query: OFF
  Instance(s):
    rac11g2s1
    rac11g2s2 (apply instance)

Database Status:
SUCCESS
Data guard broker is capable of detecting when the apply instance goes down and start the apply process in another surviving instance. For example if rac11g2s2 is the apply instance and if it goes down data guard broker would go through the following process
DGMGRL> show database rac11g2s

Database - rac11g2s

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       0 seconds
  Real Time Query: OFF
  Instance(s):
    rac11g2s1
    rac11g2s2 (apply instance)

Database Status:
SUCCESS

DGMGRL> show database rac11g2s

Database - rac11g2s

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       (unknown)
  Real Time Query: OFF
  Instance(s):
    rac11g2s1
    rac11g2s2 (apply instance)

  Database Error(s):
    ORA-16766: Redo Apply is stopped

Database Status:
ERROR

DGMGRL> show database rac11g2s

Database - rac11g2s

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       (unknown)
  Real Time Query: OFF
  Instance(s):
    rac11g2s1
      Warning: ORA-16813: log apply service not running on apply instance rac11g2s2 recorded by the broker

    rac11g2s2 (apply instance)

Database Status:
WARNING

DGMGRL> show database rac11g2s

Database - rac11g2s

  Role:            PHYSICAL STANDBY
  Intended State:  APPLY-ON
  Transport Lag:   0 seconds
  Apply Lag:       41 seconds
  Real Time Query: OFF
  Instance(s):
    rac11g2s1 (apply instance)
    rac11g2s2

Database Status:
SUCCESS
Even though this happens in few second it's better to manually failover the apply instance to an instance before running the rootupgrade.sh with (assuming rac11g2s2 is brought down)
DGMGRL> edit database rac11g2s set state ='APPLY-ON' with apply instance = 'rac11g2s1';
Once the apply instance is failed over to surviving node run rootupgrade.sh
# /opt/app/11.2.0/grid3/rootupgrade.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /opt/app/11.2.0/grid3

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

Using configuration parameter file: /opt/app/11.2.0/grid3/crs/install/crsconfig_params
Creating trace directory

ASM upgrade has started on first node.

CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac4b'
CRS-2673: Attempting to stop 'ora.crsd' on 'rac4b'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'rac4b'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'rac4b'
CRS-2673: Attempting to stop 'ora.CLUSTERDG.dg' on 'rac4b'
CRS-2673: Attempting to stop 'ora.registry.acfs' on 'rac4b'
CRS-2673: Attempting to stop 'ora.rac11g2s.db' on 'rac4b'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.rac4b.vip' on 'rac4b'
CRS-2677: Stop of 'ora.registry.acfs' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.rac4b.vip' on 'rac4b' succeeded
CRS-2672: Attempting to start 'ora.rac4b.vip' on 'rac5b'
CRS-2677: Stop of 'ora.rac11g2s.db' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'rac4b'
CRS-2673: Attempting to stop 'ora.FLASH.dg' on 'rac4b'
CRS-2676: Start of 'ora.rac4b.vip' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.FLASH.dg' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.CLUSTERDG.dg' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'rac4b'
CRS-2677: Stop of 'ora.asm' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'rac4b'
CRS-2677: Stop of 'ora.ons' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'rac4b'
CRS-2677: Stop of 'ora.net1.network' on 'rac4b' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'rac4b' has completed
CRS-2677: Stop of 'ora.crsd' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.ctssd' on 'rac4b'
CRS-2673: Attempting to stop 'ora.evmd' on 'rac4b'
CRS-2673: Attempting to stop 'ora.asm' on 'rac4b'
CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac4b'
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'rac4b'
CRS-2677: Stop of 'ora.evmd' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.mdnsd' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.asm' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'rac4b'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'rac4b'
CRS-2677: Stop of 'ora.drivers.acfs' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.cssd' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'rac4b'
CRS-2673: Attempting to stop 'ora.crf' on 'rac4b'
CRS-2677: Stop of 'ora.diskmon' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.crf' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'rac4b'
CRS-2677: Stop of 'ora.gipcd' on 'rac4b' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac4b'
CRS-2677: Stop of 'ora.gpnpd' on 'rac4b' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac4b' has completed
CRS-4133: Oracle High Availability Services has been stopped.
OLR initialization - successful
Replacing Clusterware entries in inittab
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
During the upgrade the listener.ora is copied to the new GI home so no need copy it manually.
Failover the apply instance again to surviving node and run rootupgrade.sh on the second node.
# /opt/app/11.2.0/grid3/rootupgrade.sh
Performing root user operation for Oracle 11g

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /opt/app/11.2.0/grid3

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

Using configuration parameter file: /opt/app/11.2.0/grid3/crs/install/crsconfig_params
Creating trace directory
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac5b'
CRS-2673: Attempting to stop 'ora.crsd' on 'rac5b'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'rac5b'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'rac5b'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'rac5b'
CRS-2673: Attempting to stop 'ora.CLUSTERDG.dg' on 'rac5b'
CRS-2673: Attempting to stop 'ora.registry.acfs' on 'rac5b'
CRS-2673: Attempting to stop 'ora.rac11g2s.db' on 'rac5b'
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'rac5b'
CRS-2677: Stop of 'ora.scan1.vip' on 'rac5b' succeeded
CRS-2672: Attempting to start 'ora.scan1.vip' on 'rac4b'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.rac5b.vip' on 'rac5b'
CRS-2677: Stop of 'ora.registry.acfs' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.rac5b.vip' on 'rac5b' succeeded
CRS-2672: Attempting to start 'ora.rac5b.vip' on 'rac4b'
CRS-2677: Stop of 'ora.rac11g2s.db' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'rac5b'
CRS-2673: Attempting to stop 'ora.FLASH.dg' on 'rac5b'
CRS-2676: Start of 'ora.rac5b.vip' on 'rac4b' succeeded
CRS-2676: Start of 'ora.scan1.vip' on 'rac4b' succeeded
CRS-2672: Attempting to start 'ora.LISTENER_SCAN1.lsnr' on 'rac4b'
CRS-2676: Start of 'ora.LISTENER_SCAN1.lsnr' on 'rac4b' succeeded
CRS-2677: Stop of 'ora.DATA.dg' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.FLASH.dg' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.CLUSTERDG.dg' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'rac5b'
CRS-2677: Stop of 'ora.asm' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'rac5b'
CRS-2677: Stop of 'ora.ons' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'rac5b'
CRS-2677: Stop of 'ora.net1.network' on 'rac5b' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'rac5b' has completed
CRS-2677: Stop of 'ora.crsd' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.mdnsd' on 'rac5b'
CRS-2673: Attempting to stop 'ora.crf' on 'rac5b'
CRS-2673: Attempting to stop 'ora.ctssd' on 'rac5b'
CRS-2673: Attempting to stop 'ora.evmd' on 'rac5b'
CRS-2673: Attempting to stop 'ora.asm' on 'rac5b'
CRS-2673: Attempting to stop 'ora.drivers.acfs' on 'rac5b'
CRS-2677: Stop of 'ora.crf' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.evmd' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.mdnsd' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.drivers.acfs' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.asm' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.cluster_interconnect.haip' on 'rac5b'
CRS-2677: Stop of 'ora.cluster_interconnect.haip' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'rac5b'
CRS-2677: Stop of 'ora.cssd' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.gipcd' on 'rac5b'
CRS-2673: Attempting to stop 'ora.diskmon' on 'rac5b'
CRS-2677: Stop of 'ora.gipcd' on 'rac5b' succeeded
CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac5b'
CRS-2677: Stop of 'ora.gpnpd' on 'rac5b' succeeded
CRS-2677: Stop of 'ora.diskmon' on 'rac5b' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac5b' has completed
CRS-4133: Oracle High Availability Services has been stopped.
OLR initialization - successful
Replacing Clusterware entries in inittab
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Started to upgrade the Oracle Clusterware. This operation may take a few minutes.
Started to upgrade the CSS.
The CSS was successfully upgraded.
Started to upgrade the CRS.
The CRS was successfully upgraded.
Oracle Clusterware operating version was successfully set to 11.2.0.3.0

ASM upgrade has finished on last node.

PRKO-2116 : OC4J is already enabled
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
At the end of the rootupgrade.sh continue rest of the configuration by clicking the OK button on configuration script window.

Verify clusterware version is upgrade with
$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.3.0]
$ crsctl query crs softwareversion
Oracle Clusterware version on node [rac4b] is [11.2.0.3.0]
At this strage primary is running on 11.2.0.2 GI and standby is running on 11.2.0.3.

Remove the old GI home with standalone deinstall tool. Set ownership on old home to oracle:oinstall and execute (not all lines shown)
./deinstall -home /opt/app/11.2.0/grid
...
Oracle Grid Infrastructure Home is: /opt/app/11.2.0/grid3
The cluster node(s) on which the Oracle home deinstallation will be performed are:rac4b,rac5b
Oracle Home selected for deinstall is: /opt/app/11.2.0/grid
Inventory Location where the Oracle home registered is: /opt/app/oraInventory
The home being deconfigured is NOT a configured Grid Infrastructure home (/opt/app/11.2.0/grid3)
ASM was not detected in the Oracle Home
Do you want to continue (y - yes, n - no)? [n]: y
A log of this session will be written to: '/opt/app/oraInventory/logs/deinstall_deconfig2012-03-30_04-55-22-PM.out'
Any error messages from this session will be written to: '/opt/app/oraInventory/logs/deinstall_deconfig2012-03-30_04-55-22-PM.err'
Manually cleanup any directories not removed.


Next step is to upgrade the Oracle database software.

Create new directory for the out of place upgrade
mkdir -p /opt/app/oracle/product/11.2.0/db_2
Verify pre upgrade configuration for DB home with
cluvfy stage -pre dbinst -upgrade  -src_dbhome /opt/app/oracle/product/11.2.0/db_1 -dbname rac11g2s -dest_dbhome /opt/app/oracle/product/11.2.0/db_2 -dest_version 11.2.0.3.0 -fixup -fixupdir /home/oracle/fixupscript -verbose
Execute the runInstaller for database software.
Select install database software only option
Select all nodes
Specify the new location
Install summary
Execute root.sh and conclude software install.

What remains is to configure the standby database to run out of new (11.2.0.3) oracle home.
Copy the initialization , password and tnsnames.ora files into new oracle home
cp initrac11g2s1.ora orapwrac11g2s1 /opt/app/oracle/product/11.2.0/db_2/dbs
cp tnsnames.ora /opt/app/oracle/product/11.2.0/db_2/network/admin/
Disbale dg broker configuration and stop dg auto start
DGMGRL> disable configuration ;
Disabled.

SQL>  ALTER SYSTEM SET DG_BROKER_START=FALSE scope=both sid='*';
System altered.
Defer log shipping on primary
SQL> alter system set log_archive_dest_state_2='defer' scope=memory sid='*';
System altered.
Stop the standby database running out of old (11.2.0.2) home and startup mount on new (11.2.0.3) home. If active data guard is used this will not be available from this point onwards until primary is upgraded.

Modify /etc/oratab and .bash_profile to point to new oracle home location.

Also edit the oracle home value set on listener.ora file in GI_HOME/network/admin used for static listener registration.

Shutdown and start the instance using the new Oracle home, manually one instance at a time.
SQL> startup mount
ORACLE instance started.

Total System Global Area  630501376 bytes
Fixed Size                  2230992 bytes
Variable Size             247465264 bytes
Database Buffers          373293056 bytes
Redo Buffers                7512064 bytes
Database mounted.
and verify instance is mounted from new home with alert.log entries
ORACLE_HOME = /opt/app/oracle/product/11.2.0/db_2
System name:    Linux
Using parameter settings in server-side pfile /opt/app/oracle/product/11.2.0/db_2/dbs/initrac11g2s1.ora
If all is fine modify the standby database cluster configuration. Trying to modify the existing cluster configuration with new GI Home or Oracle Home srvctl will fail with
$CRS_HOME/bin/srvctl config database -d rac11g2s
PRCD-1027 : Failed to retrieve database rac11g2s
PRCD-1229 : An attempt to access configuration of database rac11g2s was rejected because its version 
11.2.0.2.0 differs from the program version 11.2.0.3.0. Instead run the program from /opt/app/oracle/product/11.2.0/db_1
To resolve this issue shutdown all instances and use old oracle home's srvctl to remove the database configuration first
/opt/app/oracle/product/11.2.0/db_1/bin/srvctl remove instance -d rac11g2s -i rac11g2s1
/opt/app/oracle/product/11.2.0/db_1/bin/srvctl remove instance -d rac11g2s -i rac11g2s2
/opt/app/oracle/product/11.2.0/db_1/bin/srvctl remove database -d rac11g2s
Remove the database rac11g2s? (y/[n]) y
Add the database back to cluster configuration using the new GI home
$CRS_HOME/bin/srvctl add database -d rac11g2s -o $ORACLE_HOME -m local -p "+DATA/rac11g2s/spfilerac11g2s.ora" -n rac11g2 -r physical_standby -s mount
$CRS_HOME/bin/srvctl add instance -d rac11g2s -i rac11g2s1 -n rac4b
$CRS_HOME/bin/srvctl add instance -d rac11g2s -i rac11g2s2 -n rac5b
Verify the new database configuration
$CRS_HOME/bin/srvctl config database -d rac11g2s
Database unique name: rac11g2s
Database name: rac11g2
Oracle home: /opt/app/oracle/product/11.2.0/db_2
Oracle user: oracle
Spfile: +DATA/rac11g2s/spfilerac11g2s.ora
Domain: local
Start options: mount
Stop options: immediate
Database role: PHYSICAL_STANDBY
Management policy: AUTOMATIC
Server pools: rac11g2s
Database instances: rac11g2s1,rac11g2s2
Disk Groups:
Mount point paths:
Services:
Type: RAC
Database is administrator managed
Start standby database and enable dg broker start (read 2017-09-15 update below)
srvctl start database -d rac11g2s

SQL> ALTER SYSTEM SET DG_BROKER_START=true scope=both sid='*';
Trying to enable dg broker on standby gave the following error
DGMGRL> enable configuration;
ORA-16541: database is not enabled
This was resolved by enable the configuration on primary
DGMGRL> show configuration

Configuration - rac11g2_dgb

  Protection Mode: MaxPerformance
  Databases:
    rac11g2  - Primary database
    rac11g2s - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:
DISABLED

DGMGRL> enable configuration;
Enabled.
Enable log shipping on primary
SQL> alter system set log_archive_dest_state_2='enable' scope=memory sid='*';
This concludes the upgrade on standby site. At this stage standby is on 11.2.0.3 and primary is on 11.2.0.2 and standby will be continue to function as a pre-11g data guard (without active data guard).

Next is to upgrade the primary site.

Update on 2017-09-15
Keeping data guard broker enabled during upgrades seems to cause issue in certain upgrades, though in this case upgrade went through without any issue. As a result of these issues oracle documentation has been updated to clearly state to disable the data guard broker before any upgrade. Also it's better to keep redo shipping deferred until the primary is upgraded.