Be aware of database options selections for PDBs in DBCA

I did blog about several things-to-know with DBCA (Database Configuration Assistant) in the past. And one issue came up in our internal mailing list the other day. Be aware of database options selections for PDBs in DBCA. Missing one or the other “click” may bring you in trouble later on. I blogged about this already a while ago but this was only part of a larger post: Create Multitenant Databases with DBCA – Things to Know.

Be aware of database options selections for PDBs in DBCA

When you create a custom container database with DBCA you will see this screen. It allows you to select the options you’ll create in the CDB$ROOT and in PDBs.

Be aware of database options selections for PDBs in DBCA

In the past I mentioned already that:

And this post contains also a recommendation about what happens when you don’t click “Include in PDBs”. But as it is hidden in a general blog post I decided to write a separate one (this one here) today again.

If you don’t click, it won’t be in the PDB$SEED

The PDB$SEED is a strange vehicle. The purpose of its existence is the quick provisioning of PDBs. When you “create” a new pluggable database it will be cloned from the PDB$SEED. The Multitenant team has taken this design decision a long time ago. And the PDB$SEED is read-only and not supposed to get any changes by a user. As a result a lot of other things happened. The _ORACLE_SCRIPT parameter got introduced. And so on.

Anyhow, in the above screen shot you spot 6 options/components to be created in the CDB$ROOT. But none of them in PDB$SEED.

  • Don’t include APEX in CDB$ROOT and install it later in the PDB locally
  • Click only the options you want and need in CDB$ROOT
  • Click the same options “Include in PDBs” when necessary

The last bullet point is the one where you need to be careful with. If you miss the click for, lets say “Oracle OLAP” you will have the OLAP option in the CDB$ROOT only. This may or may not be ok. You have to justify carefully. If you dn’t click the check box “Include in PDBs” the OLAP option won’t be in the PDB$SEED. And all newly provisioned PDBs won’t have it.

Be aware of database options selections for PDBs in DBCA

The good part:
If you created the option in the CDB$ROOT only you’ll ease your plugin operations later on as you minimize the chance to see a situation where a PDB has an option/component but the CDB$ROOT misses it.

The not-so-good part:
Your upgrade of the CDB$ROOT will take longer, you may need patches for components you may not even use (OJVM is one of the usual suspects).

I learned today that a bug got logged for the DBCA behavior:

But I didn’t verify the behavior in Oracle 18c yet.


Share this: