Pluggable databases are the new kid on the block, one of the newfangled features of 12c. According to the documentation, a pluggable database (PDB) is a portable collection of schemas, schema objects, and non-schema objects that appear to an Oracle Net client as a separate database. One or more PDBs together are called a container database (CDB). They are completely transparent to the users and applications and are 100 percent backwardly compatible with pre-12c databases.
The components of the CDB are as follows:
- One or more PDBs
- CDB$ROOT, the keeper of all the PDBs that are part of the collection
- PDB$SEED, a template from which new PDBs can be created
12c refers to each of these components as a container. Each container is assigned a unique ID in the CDB. PDBs can be plugged into and unplugged from a CDB, and can only be associated with one CDB at a time. Administrators can be set up to manage the CDB as well as one or more PDBs.
Oracle encourages the install base to use PDB technology for a number of reasons, including reduction of cost, separation of data and code, ease of management and monitoring, and separation of administrative duties to name a few. Once you wrap up your planning, Oracle’s database configuration assistant (DBCA) can be used to create the CDB. Once that is completed, the process of plugging and unplugging PDBs can begin. The following tasks are associated with pluggable databases:
- Planning Where you decide the number of PDBs that will be plugged into each CDB, the resources required to support the environment, and the configuration options that will be chosen.
- Using the GUI database configuration assistant or sqlplus, create one or more CDBs.
- Using sqlplus, create one or more PDBs and plug them into existing CDBs.
- Ongoing management Activities are performed on the CDB, the root, and one or more PDBs; Oracle Resource Manager can be used to allocate system resources among all players in the pluggable database environment.
Figure 1 shows a newly created CDB with a handful of PDBs plugged in.
Familiar tools are used to execute common tasks associated with the management of CDBs and PDBs:
- Oracle Enterprise Manager Cloud Control
- Oracle SQL Developer
- Server Control (aka srvctl)
- Besides the fact that a CDB can contain one or more PDBs, the major difference between the two is that the former contains little or no user data; user data resides in the PDBs. PDBs can be created by
- Copying files from the seed and then associating the new files with the PDB being created
- Cloning an existing PDB
- Plugging a PDB that has been unplugged from an existing CDB into another CDB
- Creating a new PDB from a 12c non-PDB database and then plugging it into an existing CDB
The data dictionary views that contain information about pluggable databases have the text CDB in their names rather than CONTAINER.