Talking to customers about Multitenant database several of them complained that you need to install all database features regardless if you have them licensed or if you really need them. Using the Oracle Database Configuration assistant, you will find that it is not possible to deselect any of the database components.
But is this a problem?
Yes and No. There are several other options, which you need to license before you are allowed to use them like advanced compression, partitioning or advanced security option. On the other hand Oracle JVM and Application Express do not require any additional license, so why shouldn’t that be installed in every database?
The answer is: Because you need to patch them!
How to minimize patch time
The best patch is the one you do not need! So, whenever there is a Java patch for the database you can lay back and relax if you do not have the Java virtual machine installed. It is not required for the database. More important even for APEX: As APEX has its own release cycles, which can be different in every PDB, there is absolutely no need to install APEX in a CDB.
But how can you avoid the installation?
The answer is: use DBCA.
Yes, it is still not possible to deselect any option with the dbca, but you can create a custom database as shown in picture 2.
At the end of the installation process you can create the database creation scripts.
There are a bunch of SQL scripts in the destination directory. The one we need is the main one (<Databasename>.sql).
As you can see I made a copy (.org) before I changed the file.
The following is the content of CDBHERB.sql without any additional components:
As XMLDB is required for the database you cannot deselect it with this script.
Yes, the creation of the database might take longer than using a preconfigurated database (OLTP or Datawarehouse) but it will pay back with every patching. Some more information can be found in My Oracle Support DOC ID 2001512.1 “Customization of Database Options in a Multitenant Setup”.