oracle 12c pdb与cdb

Oracle 12c是Oracle公司发布的一款面向云端的数据库系统,其中的PDB和CDB也是十分重要的概念。PDB是指Pluggable Database,即可插拔数据库,而CDB则是Container Database,即容器数据库,两者之间的关系如同盒子和里面的抽屉一样相互关联。

举个例子,以前的Oracle版本中我们只能创建一个数据库实例,如果需要多个数据库需要开多个Oracle进程。而在12c的CDB架构中,我们可以创建一个CDB容器数据库,然后在其中创建多个PDB可插拔数据库,每个PDB都有属于自己的系统表空间、用户表空间以及单独的配置文件。类比于上述的例子,CDB就相当于整个盒子,里面可以装多个PDB抽屉。其中每个抽屉互相独立,可以拆卸,也可以安装。

下面我们来举个具体的例子,例如我们有两个应用需要分别使用Oracle数据库,而且这两个应用的数据不能相互干扰。我们可以在一个CDB实例中创建两个PDB(assume A and B),其中PDB A用于存放应用A的数据,PDB B则用于存放应用B的数据。如图所示:

CREATE PLUGGABLE DATABASE A ADMIN USER user1 IDENTIFIED BY pwd1 STORAGE (MAXSIZE 100M) DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; CREATE PLUGGABLE DATABASE B ADMIN USER user1 IDENTIFIED BY pwd1 STORAGE (MAXSIZE 100M) DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;