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:
Bug 24306129 : DBCA HELP DOES NOT MENTION ‘INCLUDE IN PDBS’ CHECKBOX IN DB OPTIONS SELECTION

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

–Mike

2 thoughts on “Be aware of database options selections for PDBs in DBCA

  1. Two questions:
    01. If I do not include these options in PDB (leave the “Include in PDBs” box unchecked), can I install these options later when creating a PDB? If not, then is there any way to install these options subsequently without shutting down all the PDBs?
    02. If I check the “Include in PDBs” box, and I do not have license for these options, then would these show up in the LMS audit scripts from Oracle? Would I be in license violation?

    I created a CDB with one PDB in 18c. Only the Oracle JVM and Oracle Text option were selected and “Include in PDBs” was checked only for these two components. Querying the DBA_REGISTRY while connected to the PDB, I see:

    CATALOG
    CATPROC
    RAC
    JAVAVM
    XML
    CATJAVA
    XDB
    OWM
    CONTEXT

    Thanks,
    Arun

    • Hi Arun,

      I can clearly answer question 2:
      No. DBA_FEATURE_USAGE_STATISTICS would only tick up the counter when you use things. The pure installation does not harm you in any way.

      Regarding question 1:
      Yes, you can. And you can install things in a PDB only of course once it is present in the CDB$ROOT. The “danger” is to try to install for instance SPATIAL in a PDB when it’s not in the CDB$ROOT. This is on my list of blog-posts-to-write – but I haven’t had time for it yet.

      Cheers,
      Mike

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox to comply with GDPR is required

*

I agree

This site uses Akismet to reduce spam. Learn how your comment data is processed.