Upgrade Exadata Machine to Oracle 12c Release 2

Hell All! It’s time to upgrade Exadata Machine infrastructure and database to Oracle 12c Release 2. There are some software and patch requirement you need to meet, before you can upgrade your Exadata machine to Oracle 12c Release 2. You might be able to perform most of the upgrade using rolling manner but database upgrade will require some down time. Ideally you would like to upgrade your infrastructure to 12c release 2 and install Oracle 12c release 2 software on separate mount with our impacting sexting database s running target Exadata machine. Later upgrade your databases to release 2 based on availability and downtime requirements. In any case, I strongly suggest making fool proof recovery plan for your Exadata machine and be prepared for a complete Exadata machine recovery. If possible, start with non-production environment and try to leverage DR Exadata Machine for production environments. This blog will provide you overview of upgrade process for your exadata machine to 12c release 2.

Caution : – I consider this a high risk activity and if you don’t have experience performing these kind of upgrades, hire someone who have experience with such upgrades.  

Software Requirements

Your current Exadata machine configuration should meet following requirement for Oracle 12c Release 2 upgrade:

  • Current Oracle Database and Grid Infrastructure version must be,, or
  • Upgrades from or directly to are not supported.
  • Exadata Storage Server version will be required for full Exadata functionality including  ‘Smart Scan offloaded filtering’, ‘storage indexes’ and’ I/O Resource Management’ (IORM).
  • When available: GI PSU or later (which includes DB PSU To be applied during the upgrade process, before running rootupgrade.sh on the Grid Infrastructure home, or after installing the new Database home, before upgrading the database.
  • Fix for bug 17617807 and bug 21255373 is required to successfully upgrade to from, and The fix is already contained in and
  • Fix for bug 25556203 is required on top of the Grid Infrastructure home before running rootupgrade.sh


Create temporary directory to hold all the software and patches

dcli -l oracle -g ~/dbs_group mkdir /u01/app/oracle/patchdepot

Download following software and patches from E-delivery

  • V840012-01.zip Oracle Database 12c Release 2 Grid Infrastructure
  • ( for Linux x86-64 V839960-01.zip Oracle Database 12c Release
  • ( for Linux x86-64 Exadata Storage Server Software
  • Patch 6880880 – OPatch latest update for 11.2, 12.1 and 12.2

Update OPatch in existing 11.2 and 12.1 Grid Home and Database Homes on All Database Servers

(oracle)$ dcli -l oracle -g ~/dbs_group -f p6880880_121020_Linux-x86-64.zip -d /u01/app/oracle/patchdepot

(oracle)$ dcli -l oracle -g ~/dbs_group unzip -oq -d /u01/app/ \

(oracle)$ dcli -l oracle -g ~/dbs_group unzip -oq -d /u01/app/oracle/product/ \

Apply required patches / updates where required before upgrading proceeds based on your existing configuration

Upgrade Grid Infrastructure to 12.2.01

Grid Infrastructure upgrades from,, or to will be performed out of place and in a RAC rolling manner.

Create the new Grid Infrastructure (GI_HOME) directory

(root)# dcli -g ~/dbs_group -l root mkdir -p /u01/app/
 (root)# dcli -g ~/dbs_group -l root chown oracle:oinstall /u01/app/

Install Grid Software using zip option , runinstaller is no longer supported

(oracle)$ unzip -q /u01/app/oracle/patchdepot/grid_home.zip -d /u01/app/

Validate Readiness for Oracle Clusterware upgrade using CVU

(oracle)$ /u01/app/ stage -pre crsinst -upgrade -rolling \
 -src_crshome /u01/app/ \
 -dest_crshome /u01/app/ \
 -dest_version -fixupnoexec –verbose

Upgrade Grid Infrastructure to

 (oracle)$ export DISPLAY=<your_xserver>:0
 (oracle)$ cd /u01/app/
 (oracle)$ ./gridSetup.sh
 Launching Oracle Grid Infrastructure Setup Wizard...

Execute rootupgrade.sh on each database server


Verify cluster status

(root)# /u01/app/ check cluster -all
 CRS-4537: Cluster Ready Services is online
 CRS-4529: Cluster Synchronization Services is online
 CRS-4533: Event Manager is online
 CRS-4537: Cluster Ready Services is online
 CRS-4529: Cluster Synchronization Services is online
 CRS-4533: Event Manager is online

Install Database Software

Database software installation is performed into a new ORACLE_HOME directory.  The installation is performed with no impact to running applications. As mention earlier, you can upgrade database to 12c release as per your convenience.

Unzip Oracle software to temp directory

(oracle)$ unzip -q /u01/app/oracle/patchdepot/database.zip -d /u01/app/oracle/patchdepot/

Create the new Oracle DB Home directory

(oracle)$ dcli -l oracle -g ~/dbs_group mkdir -p /u01/app/oracle/product/  

Perform Database Software Installation

 (oracle)$ export DISPLAY=<your_xserver>:0
 (oracle)$ cd /u01/app/oracle/patchdepot/database
 (oracle)$ ./runInstaller

Install Latest OPatch 12.2 in the Database Home on All Database Servers

oracle)$ dcli -l oracle -g ~/dbs_group unzip -oq \
 -d /u01/app/oracle/product/ \

Upgrade Database to

Database upgrades from,, or to requires database-wide downtime. You can use many methods to upgrade database to Oracle 12c release 2 based on your migration window.

Post-upgrade steps

Post-upgrade steps include required and optional next steps to perform following the upgrade, such as updating DBFS, performing a general health check, re-configuring for Cloud Control, and cleaning up the old, unused home areas.

Acceptable Hidden Parameters on Exadata Machine

We all have seem hidden parameters being used as a workaround to solve a specific problem, and should be removed once a system has been upgraded to a version level that contains the fix for the specific problem. So what happen when you migrate database to Exadata Machine, specially using physical migration methods? Most likely they are not removed during the migration process, even though the version level might contains the correct fix. Verifying the hidden database initialization parameter usage helps avoid hidden parameters being used any longer than necessary. Otherwise, use of hidden initialization parameters not recommended by Oracle development can introduce instability, performance problems, corruptions, and crashes to your Exadata environments.

Please verify hidden initialization parameter usage in each ASM and database instance using following sql.

select name,value from v$parameter where substr(name,1,1)=’_’;

All being said, there are some acceptable hidden parameters for Exadata Machine. Please review the list of acceptable hidden parameters based on their usage.

Generally Acceptable Hidden Parameters Table

  1. _file_size_increase_increment with possible value of 2143289344
  2. _enable_NUMA_support depend on database versions
  3. _asm_resyncckpt with value of 0 to Turns off resync checkpointing
  4. _smm_auto_max_io_size 1024 to permits 1MB IOs for hash joins that spill to disk
  5. _parallel_adaptive_max_users with value of 2
  6. _assm_segment_repair_bg as false for bug 23734075 work around
  7. _backup_disk_bufcnt as 64 (Only when ZFS based backups are in use)
  8. _backup_disk_bufsz as 1048576 (Only when ZFS based backups are in use)
  9. _backup_file_bufcnt as 64 (Only when ZFS based backups are in use)
  10. _backup_file_bufsz as 1048576 (Only when ZFS based backups are in use)