文档在 Database Administrator’s Guide / 36 Overview of Managing a Multitenant Environment
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/admin/overview-of-managing-a-multitenant-environment.html#GUID-528FBE02-2B84-4E97-BD87-36AEF9EA524D
12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB),12C R2增加了application container(由an application root和与其关联的所有application PDBs组成 )
下面是官方文档关于CDB与PDB的关系图。
A Newly Created CDB 关系图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/e279bab91b4026052bf4d619119af6e7.png)
An Application Container 关系图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/640015f999864df488832a760c77a06c.png)
CDB with PDBs 关系图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/c96d7ede1b5c85afe4ead11aa9049728.png)
Application Containers in a CDB 关系图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/f1a53d90b53a9c40be6b01cd070eb8fb.png)
组件说明:
![](https://i-blog.csdnimg.cn/blog_migrate/f009efe8d32b5aec74beb98379149b85.png)
一个CDB数据库容器包含了下面一些组件:
ROOT组件
root又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User是在每个容器中都存在的用户。一个CDB仅有一个root。
SEED组件
seed又叫PDB$SEED,这个是你创建新的PDBS数据库的模板,你不能在seed中添加或修改一个对象。一个CDB中仅有一个seed。
PDBS
PDB对用户和应用程序来说就像是non-CDB一样。例如,PDB可以包含支持特定应用程序所需的数据和代码。在Oracle Database 12c之前,PDB完全向后兼容Oracle数据库版本。
这些组件中的每一个都可以被称为一个容器。因此,root是一个容器,seed是一个容器,和每个PDB是一个容器。每个容器在CDB中都有一个唯一的ID和名称。