What you need
to know about Oracle12c New Features - Multitenant Architecture
Assumptions and Requirements:
of Oracle 11g or lower
that it may takes more than two years that companies start using
Oracle12c Multitenant Architecture features. You can upgrade your
database from Oracle11g to Oracle12c and you do not need to use the
Multitenant Architecture features. If you wish to use it, you should pay
extra money. You will see Oracle did not provide much new features if
you upgrade to Oracle12c. In this tutorial, we are going to focus on the
Oracle Multitenant Architecture feature.
Oracle 12c supports the multitenant architecture. All it
means, you can have more than one database in an instance. Prior to
Oracle12c, you could have only one database in an instance. Each
database in Oracle is called pluggable database.
The multitenant architecture functions as a multitenant
container database (CDB). You have three containers in Oracle12c.
There are one root, one seed (read only), and zero or many pluggable
A PDB (pluggable database) is a collection of schemas,
and schema objects.
Each PDB has a unique DBID and name.
All Oracle databases before Oracle database 12c known as
The root is a collection of schemas, schemas
objects, and non-schemas objects to which all PDBS belong (CDB$ROOT).
It stores metadata and common users. A multitenant container database
(CDB) has only one root.
The seed PDB (PDB$SEED)
is a read only Oracle template that the CDB uses to create PDBs.
The PDB (pluggable databases) created by users.
You will create pluggable databases (PDBs).
The root, seed and every PDB is considered a container.
Non-schemas objects (multitenant container database)
appears logically as a separate database.
Stores the system metadata required to manage PDBs. If
you have 10 pluggable databases, the system metadata is stored only on
one place instead of 10 places. You saving lots of duplication.
All PDBs belong to the root.
The name of the root is CDB$ROOT.
The root does not store user data.
You can create common users and roles. A common user
with the necessary privileges can switch between PDBs.
A local user is a user that is not common and only can
operate within a single PDB.
A common username must begin with C## or c##.
In a CDB, the PUBLIC role is a common role and it should
be granted locally.
A PDB (Pluggable Database) is a user-created set of
schemas, objects and non-schema object (Oracle database directory). It
has its own system metadata about its objects.
The SYSTEM and SYS users are common users in the CDB.
Each PDB is owned by SYS.
Have their own service name.
Store data for a specific application.
Move data into a different CDB.
Isolate grants within PDBs.
Must be unique within a CDB.
Dictionary Architecture in a CDB
On the CDB,
each PDB has their own data dictionary separated with the root data
example: The OBJ$ table contains different metadata between the root and
PDBs. The OBJ$ table in each PDB uses metadata link to point to
the OBJ$ table in the root. To access to the objects in the root such as
AWR, each PDB uses object link. Access to DBA_HIST_BASELINE and
DBA_HIST_ACTIVE_SESS_HISTORY are examples of object link.
using multitenant architecture:
Reduction of duplication.
Ease of database upgrade.
Objects in a CDB
begin with V$ and CDB_.
categories of dictionary views:
CDB_ All of the object in the CDB across all PDBs.
DBA_ All of the object in a container or PDB.
ALL_ All of the objects accessible by the current
USER_ All of the objects owned by the current
One set of control files
One set of online redo log
One set of undo data files
One or more sets of TEMP files
One or more SYSTEM and SYSAUX tablespaces (the root and
Zero or more sets of user data files
Archived Redo Log
files, Archived log files and Flashback log
Container: SYSTEM, SYSAUX, UNDO, TEMP, and Online REDO
Pluggable Databases: SYSTEM, SYSAUX, own DATAFILES (tablespaces)
of Oracle12c will be about above subjects. We are going to talk,
demonstrate and show you over and over about above terms and subjects at
the other lessons.