Observations when upgrading to Oracle Database 18c

2018-08-26 Off By Markus Flechtner

I recently upgraded the repository database of my Enterprise Manager Cloud Control 13.3 playground from release 12.2 to release 18.3. When checking the alert.log of my repository database – which is a Non-CDB – I found some interesting entries in the alert.log file.

Completed: ALTER DATABASE OPEN MIGRATE
2018-08-25T21:48:42.535192+02:00
ALTER SYSTEM SET _enable_cdb_upgrade_capture=TRUE SCOPE=MEMORY;
alter pluggable database application APP$CDB$CATALOG begin install '12.2.0.1.0'
Completed: alter pluggable database application APP$CDB$CATALOG begin install '12.2.0.1.0'
alter pluggable database application APP$CDB$CATALOG end install '12.2.0.1.0'
Completed: alter pluggable database application APP$CDB$CATALOG end install '12.2.0.1.0'
alter pluggable database application APP$CDB$CATALOG begin upgrade
  '!' to '18.0.0.0.0.partial'
Completed: alter pluggable database application APP$CDB$CATALOG begin upgrade
  '!' to '18.0.0.0.0.partial'
2018-08-25T21:50:31.161189+02:00

As I had played around with application containers, which were released as a new feature in Oracle 12.2, I consider these entries really interesting.

For those who are not familiar with application containers, you can find an introduction here. The aspect which is important is, that multiple databases (Application PDBs) can share the same data model, which is defined in another PDB, which is called the “Application Root”. And: multiple versions of this data model can exist in an application container. Application PDB 1 can use version 1.0 of the data model, PDB2 can use version 2.2 and  so on.

But back to my OEM repository database, which was created as a Oracle 12.2-Non-CDB:

There are messages like

“alter pluggable database application APP$CDB$CATALOG begin upgrade'!' to '18.0.0.0.0.partial'

In the alert.log file.

This is strange because my database is neither a CDB nor it is using application containers. But this leads to some thoughts. My assumption (Disclaimer: this is a pure speculation) is:

  • Oracle is on the way to treat the data dictionary (which is the “data model of the RDBMS”) in a similar way as the data model of an application container
  • to some extent, it will be possible to have different versions of the data dictionary in the same database, i.e. in an Container database, the CDB$ROOT is already on 22.x (version numbers are for illustration purposes only), and PDB01 is already using this data dictionary, but there is a (shadow) data dictionary in version 21.x available, which is still in use by PDB02 and PDB03.
  • The PDBs which are using an old version of the data dictionary can be upgraded later, e.g. when the application vendor has certified the application on the new database version
  • This would simplify database upgrades because the new data dictionary can be installed in parallel to the old one.

But remember, this is just guesswork …


Ad (Amazon Link):