Upgrading a VDB involves Oracle level activity and Delphix GUI/CLI level activity. The Oracle activity, to be performed first, involves upgrading/patching current oracle homes, installing new oracle homes, and managing init.ora/spfile.ora files. The Delphix GUI/CLI activity, to be performed second, involves rediscovering new oracle installations, giving a VDB a new oracle home, and updating the oracle grid home. These are discussed in detail below.
During an Oracle upgrade, refreshing an Environment will generally discover new Oracle installations, allowing for a virtual database (VDB) or dSource upgrade to be handled through the UI. However, if the Oracle Grid home was changed, due to an Oracle upgrade, the crsClusterHome parameter will need to be updated manually through the command line (CLI).
Currently, it is not possible to convert an existing VDB into a vPDB.
PSU/Oracle upgrade procedure
Normally a PSU or Oracle upgrade will have both binary changes and some scripts to run on the database side as well.
There are 3 ways to apply a PSU/Oracle upgrade:
Apply to existing ORACLE_HOME. You must be on Delphix version 4.1.x or higher to do this.
Create a new ORACLE_HOME (could clone the existing one) and then apply the PSU to the new ORACLE_HOME
After a dSource is upgraded, use refresh on the Timeflow tab to upgrade the VDB
Follow Oracle documentation and run the appropriate script(s) and/or steps on the databases using those ORACLE_HOMEs. In option B, stop the instance using the old ORACLE_HOME, then restart the instance with the new ORACLE_HOME from the command line as normal.
Applying to an existing ORACLE_HOME
Following Oracle documentation, patch the ORACLE_HOME, then the database for the VDB(s).
Refresh the environment the VDBs are on in the Delphix Management application.
Creating a new ORACLE_HOME
Refresh the environment from the Delphix Management application. Verify that the new ORACLE_HOME is picked up and displayed in the Databases tab as an ORACLE Installation.
Stop the VDB instance (old ORACLE_HOME) using Oracle tools. Do not use the Delphix VDB stop operation as the VDB should be stopped outside of Delphix.
Export ORACLE_HOME=(newORACLE_HOME). Follow Oracle documentation to patch the database.
Copy the init.ora for that VDB in this new $ORACLE_HOME/dbs directory. The delphix_os user will need the write permissions to this directory.
If there are any database parameter changes, update the spfile located on the Delphix mount base with those values.
Navigate to the Datasets view
Expand the group(s) containing all non-multitenant and multitenant VDBs.
Click the Configuration tab.
From the Actions menu (...) select Upgrade to switch the ORACLE_INSTALLATION to the new one.
If the database is a linked CDB or vCDB, go to any child vPDBs and verify that the Repository and/or Version has been updated under the configuration tab.
Refresh the environment from the Delphix Management application.
Verify that the new ORACLE_HOME is picked up and displayed in the Databases tab of the Environments screen as an ORACLE Installation.
On the VDB Configuration tab, click the stop icon to stop the VDB.
From the Actions menu (...) select upgrade to switch the ORACLE_INSTALLATION to the new upgrade version same as the dSource.
Navigate to the Datasets view, select the VDB, and then select the Timeflow tab.
Click the Refresh button.
Select a new snapshot from the dSource that was taken after the dSource was upgraded. (The database version is on the snapshot card.)
Updating the Oracle user after an upgrade
There may be cases when you upgrade the Oracle home and the Oracle User (who owns the binary) is a different user than the previous Oracle User. You will then need to update the Oracle User for each environment, and then re-connect each VDB to the upgraded Oracle home using the new Oracle User.
The new Oracle User must be in the same OS group (for example, dba or oinstall) as the previous one.
Login to the Delphix Management application using delphix_admin credentials.
Select the environment where you want to add the user.
Next to Environment Users, click the Pencil icon to add the new user.
Set the new user as the default user.
Follow the procedure to upgrade VDBs described in this topic.
Linked CDB upgrade procedure
For vPDBs in the linked CDBs, there are two ways to upgrade the linked CDB:
A. Perform the Oracle upgrade of the current target CDB.
B. Create an entirely new target CDB of the higher version.
Performing the Oracle upgrade of the current target CDB
Perform the Oracle upgrade of the current target CDB.
Login to the Delphix Management application.
Navigate to Manage > Datasets and select the target CDB.
From the Actions menu (...), select Upgrade to switch the ORACLE_INSTALLATION to the new one.
Under the Configuration tab, verify that the Repository and/or Version has been updated.
Creating a new target CDB
You can first disable the vPDB, then use the migrate vPDB feature to select a new container database.
Login to the Delphix Management application.
Navigate to Manage > Datasets.
Select the vPDB you want to migrate.
From the Actions menu (...) select Disable.
Click Disable to confirm.
From the Actions menu (...) select Migrate.
Select the new container database for the vPDB, the user for that environment, and the database installation where the container database of the vPDB will reside.
Click the Migrate option to confirm your selections.
Manually copy the exported keys to the target host's toolkit directory.
From the Actions menu (...) select Enable.
Click Enable to confirm. Your vPDB will re-start in the new environment, and you can continue to work with it as you would any other vPDB.