πŸ›οΈ Multitenant Architecture in Oracle Database

The multitenant architecture enables an Oracle database to function as a multitenant container database (CDB).
A CDB includes zero, one, or many customer-created pluggable databases (PDBs).

A PDB is a portable collection of schemas, schema objects, and non schema objects that appears to an Oracle Net client as a non-CDB.
All Oracle databases before Oracle Database 12c were non-CDBs.

A container is a logical collection of data or metadata within the multitenant architecture.

🧩 Containers in a CDB

Every CDB consists of the following containers:

1. CDB Root Container (CDB$ROOT)

  • The CDB root is a collection of schemas, schema objects, and nonschema objects to which all PDBs belong.
  • It stores Oracle-supplied metadata and common users.
  • Example of metadata: 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.

2. System Container

  • The system container includes the CDB root and all PDBs in the CDB.
  • It serves as the logical container for the entire CDB.

3. Application Containers

  • A CDB can include zero or more application containers.
  • Each application container consists of:
    • Exactly one application root, and
    • The PDBs plugged into this root.
  • The system container includes the CDB root and all PDBs within the CDB, whereas the application container includes only the PDBs plugged into the application root.
  • An application root belongs exclusively to the CDB root and no other container.

4. User-Created PDBs

  • A PDB contains the data and code required for a specific set of features or applications.
  • Example: A PDB can support a human resources or sales application.
  • No PDBs exist at the time of CDB creation β€” they are added based on business requirements.
  • A PDB belongs to zero or one application container.
    • If it belongs to one, it is called an application PDB.
    • Example: cust1_pdb and cust2_pdb might belong to the saas_sales_ac application container.
  • An application seed is an optional application PDB used as a template to create new application PDBs quickly.

5. Seed PDB (PDB$SEED)

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

Posted in

Leave a comment