Understanding Oracle Multitenant Architecture Options

codeling 1261 - 5415
@2016-03-16 10:37:35

Oracle Multitenant is a new option for Oracle Database 12c Enterprise Edition that helps customers reduce IT costs by simplifying consolidation, provisioning, upgrades, and more. It delivers a new architecture that allows a multitenant container database (CDB) to hold many pluggable databases (PDBs). And it fully complements other options, including Oracle Real Application Clusters and Oracle Active Data Guard. An existing database can be simply adopted, with no change, as a pluggable database; and no changes are needed in the other tiers of the application. The benefits of Oracle Multitenant are brought by implementing a pure deployment choice.

All Oracle databases before Oracle Database 12c were non-CDBs.

Containers in a CDB

A container is either a PDB or the root. The root container is a collection of schemas, schema objects, and nonschema objects to which all PDBs belong.

Every CDB has the following containers:

  • Exactly one root

The root stores Oracle-supplied metadata and common users. An example of metadata is the source code for Oracle-supplied PL/SQL packages. A common user is a database user known in every container. The root container is named CDB$ROOT.

  • Exactly one seed PDB

The seed PDB is a system-supplied template that the CDB can use to create new PDBs. The seed PDB is named PDB$SEED. You cannot add or modify objects in PDB$SEED.

  • Zero or more user-created PDBs

A PDB is a user-created entity that contains the data and code required for a specific set of features. For example, a PDB can support a specific application, such as a human resources or sales application. No PDBs exist at creation of the CDB. You add PDBs based on your business requirements.

The following figure shows a CDB with four containers: the root, seed, and two PDBs. Each PDB has its own dedicated application. A different PDB administrator manages each PDB. A common user exists across a CDB with a single identity. In this example, common user SYS can manage the root and every PDB. At the physical level, this CDB has a database instance and database files, just as a non-CDB does.

Description of

Pluggable Database

A PDB is a portable collection of schemas, schema objects, and nonschema objects that appears to an Oracle Net client as a non-CDB.

The many pluggable databases in a single multitenant container database share its memory and background processes.

A pluggable database can be unplugged from one container database and plugged into another.

Creating pluggable databases, moving pluggable databases between containers, and cloning pluggable databases are done with new SQL commands and take just seconds.


codeling 1261 - 5415
@2016-12-06 13:33:25

The following simple query determines whether the database to which an administrative user is currently connected is a non-CDB, or a container in a CDB:

SQL> select name, cdb, open_mode, con_id from v$database;;

NAME      CDB OPEN_MODE                CON_ID
--------- --- -------------------- ----------
ORCL      YES READ WRITE                    0

From the result with CDB=YES, you can see that you are logged into a multitenant database instance.  All object/files with CON_ID=0 are shared across the entire database (all PDBs). 

The default container database is CDB$ROOT.  You can run the "show con_name" and "show con_id". 

SQL> show con_name con_id

CON_NAME                CON_ID


CDB$ROOT                     1


Users browsing this topic