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;
这样我们可以在同一个物理的CDB实例上,同时支持多个独立的PDB实例,从而简化了数据库的管理和维护。同时,每个PDB都可以独立运作,包括备份和恢复操作、SQL语句执行计划、性能监测以及用户权限管理等。因此,CDB+PDB(CDB&PDB)架构可以节约数据库资源、缩短系统的响应时间、提高数据库的安全性及稳定性。
总之,Oracle 12c的CDB+PDB架构是一种十分完备和灵活的架构方式,它将多个传统的单实例数据库融合起来,构建出了一个完整的多租户数据库平台。这个架构不仅能够为企业提供高效可靠性、易用性的数据库服务,而且还能在降低成本、提升开发效率、加强安全性等方面发挥重要作用。