RAC rolling upgrade 11g to 12c


Perform GI Rolling upgrade :


1. Install Cluster ware 12c software :

2. Check node readiness by running pre-upgrade check

 ./runcluvfy.sh stage -pre crsinst 
     -upgrade -rolling 
     -src_crshome /u01/app/11gr2/grid 
     -dest_crshome /u02/app/12.1.0/grid 
     -dest_version 12.1.0.2.0 
     -fixup -verbose

3. Create response file gi.rsp and Execute the runInstaller to upgrade the GI

oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v12.1.0
ORACLE_HOSTNAME=node1.
INVENTORY_LOCATION=/u02/app/oraInventory
SELECTED_LANGUAGES=en
oracle.install.option=UPGRADE
ORACLE_BASE=/u02/app/12.1.0
ORACLE_HOME=/u02/app/grid/12.1.0
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=
oracle.install.crs.config.gpnp.scanPort=
oracle.install.crs.config.ClusterType=STANDARD
oracle.install.crs.config.clusterName=racdb
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=true
oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS
oracle.install.crs.config.gpnp.gnsClientDataFile=
oracle.install.crs.config.gpnp.gnsSubDomain=
oracle.install.crs.config.gpnp.gnsVIPAddress=
oracle.install.crs.config.clusterNodes=node1:,node2:
oracle.install.crs.config.networkInterfaceList=
oracle.install.crs.config.storageOption=LOCAL_ASM_STORAGE
oracle.install.crs.config.sharedFileSystemStorage.votingDiskLocations=
oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=NORMAL
oracle.install.crs.config.sharedFileSystemStorage.ocrLocations=
oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=NORMAL                 
oracle.install.crs.config.useIPMI=false
oracle.install.crs.config.ipmi.bmcUsername=
oracle.install.crs.config.ipmi.bmcPassword=
oracle.install.asm.SYSASMPassword=
oracle.install.asm.diskGroup.name=CRS
oracle.install.asm.diskGroup.redundancy=
oracle.install.asm.diskGroup.AUSize=1
oracle.install.asm.diskGroup.disks=
oracle.install.asm.diskGroup.diskDiscoveryString=
oracle.install.asm.monitorPassword=
oracle.install.asm.ClientDataFile=
oracle.install.crs.config.ignoreDownNodes=false        #if force upgrade enable, turn this to true
oracle.install.config.managementOption=NONE
oracle.install.config.omsHost=
oracle.install.config.omsPort=0
oracle.install.config.emAdminUser=
oracle.install.config.emAdminPassword=


./runInstaller -ignorePrereq -silent -force -responseFile ~/gi.rsp

   a. Run rootupgrade.sh from new 12c GI home as ROOT user on both the nodes starting with the local node
   b. Run configToolAllCommands RESPONSE_FILE=gi.rsp


Verification :

   Check softwareversion and activeversion :  
                 crsctl query crs softwareversion  // 
                 crsctl query crs activeversion
                 crsctl query crs releaseversion
   Check crsctl stat res -t
   Check asm diskgroup COMPATIBILITY    and rdbms COMPATIBILITY    

3. Upgrade force any inactive node add it to cluster 
     $GRID_HOME/rootupgrade -force
     $GRID_HOME/crs/install/rootcrs.pl -join -existNode node1 upgrade_node node2



Performing RDBMS upgrade (need outage)

1. Install RDBMS software :

1. Create response file db_install.rsp 

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=drnode1
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=oinstall
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.BACKUPDBA_GROUP=oinstall
oracle.install.db.DGDBA_GROUP=oinstall
oracle.install.db.KMDBA_GROUP=oinstall
oracle.install.db.rac.configurationType=
oracle.install.db.CLUSTER_NODES=drnode1,drnode2
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.rac.serverpoolName=
oracle.install.db.rac.serverpoolCardinality=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=
oracle.install.db.config.PDBName=
oracle.install.db.config.starterdb.characterSet=
oracle.install.db.config.starterdb.memoryOption=
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.password.PDBADMIN=
oracle.install.db.config.starterdb.managementOption=
oracle.install.db.config.starterdb.omsHost=
oracle.install.db.config.starterdb.omsPort=
oracle.install.db.config.starterdb.emAdminUser=
oracle.install.db.config.starterdb.emAdminPassword=
oracle.install.db.config.starterdb.enableRecovery=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=

COLLECTOR_SUPPORTHUB_URL=


./runInstaller -silent -responseFile /u02/db_install.rsp -ignoreSysPrereqs

Run root.sh : /u01/app/oracle/product/12.1.0.2/db_1/root.sh

2. Pre Upgrade :

Run preupgrd.sql from 12c on the 11g database
which will create  preupgrade_fixups.sql   and postupgrade_fixups.sql

3. Performing upgrade database :


1. Disable archival
2..Make one init file with set cluster_database to false and deleted the remote_listener.
    /home/oracle/init.ora:
#*.cluster_database=true
#srprim1.instance_number=1
#srprim2.instance_number=2
#srprim2.thread=2
#srprim1.thread=1
#srprim2.undo_tablespace='UNDOTBS2'a'

3. set .profile and /ect/oratab for 12c
4.Start Sqlplus from 12c Home : SQL> startup upgrade pfile='/home/oracle/init.ora';
5. Run upgrade utility from 12c Home : nohup $ORACLE_HOME/perl/bin/perl catctl.pl -n 4 > /tmp catupgrd.sql &


4. Post Upgrade :

1. Copy the database password file to new $ORACLE_HOME/dbs.
2. Copy spfile  from 11g home and indicate it's location in initracdb1(2).ora on both nodes
   Note : 11g home already has cluster_database to true
       or
  Create spfile and indicate it's location in initracdb1(2).ora on both nodes
  #modify cluster_database to true, uncomment the remote_listener in the init file

3. Enable ARCHIVELOG


4. Run postupgrade_fixups.sql and others

SQL>@/u01/app/oracle/product/11.2.0.3/db_1/cfgtoollogs/srprim/preupgrade/postupgrade_fixups.sql
SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
SQL> select count(*) from dba_objects where status = 'INVALID';
SQL> @?/rdbms/admin/utlrp.sql
SQL> @?/rdbms/admin/catuppst.sql     
SQL> @?/rdbms/admin/utlu121s.sql


5.  Remove old database in srvctl and add new

SQL> shut immediate

cd /u01/app/oracle/product/11.2.0.3/db_1/bin/
 ./srvctl status database -d srprim
./srvctl remove database -d srprim

cd /u01/app/oracle/product/12.1.0.2/db_1/bin
./srvctl add database -d srprim -o /u01/app/oracle/product/12.1.0.2/db_1
./srvctl add instance -i srprim1 -d srprim -n drnode1
./srvctl add instance -i srprim2 -d srprim -n drnode2


./srvctl status database -d srprim -v -f
./srvctl start database -d srprim


./srvctl add service -s srprim_any -d srprim -r srprim1,srprim2
./srvctl start service -s srprim_any -d srprim




Upgrade the database version in OCR



Change ASM diskgroup’s attribute “compatible.asm” and “compatible.rdbms” to 12.1
Upgrade the TIMEZONE file
Build the tnsnames file and the listener file in the new Oracle 12c home.


Verification ;



De-attach the old  11g grid and rdbms


rolling-upgrade-rac-from-11g-to-12c.html
https://shivanandarao-oracle.com/2017/08/21/grid-infrastructure-gi-upgrade-from-11-2-0-3-to-12-1-0-2-in-silent-mode/
https://shivanandarao-oracle.com/2017/09/06/manual-upgrade-of-rac-database-from-11-2-0-3-to-12-1-0-2/