CDB

发布时间 2023-07-14 16:40:25作者: BBBone

CDB(容器数据库)是Oracle Database 12c中的一个新功能,支持多租户体系结构。一个CDB可以包含许多可插拔数据库(PDB),每个PDB都具有自己的系统、表空间和架构。

CDB的主要特点有:

  1. 包含多个PDB:一个CDB可以包含许多PDB,每个PDB都相当于一个独立的数据库,有自己的系统和用户表空间以及架构,但共享CDB的重做日志、控制文件和UNDO段。

  2. 共享后台进程和内存结构:CDB中的所有PDB共享CDB的后台进程、共享内存管理和一些内存结构以及一些Oracle元数据。

  3. 迁移方便:PDB的迁移只需要在源CDB和目标CDB之间复制一个XML文件即可,无需导出/导入数据,方便数据库的迁移和控制。

  4. 统一管理:管理员可以在CDB根容器中集中管理整个CDB,包括PDB的创建、删除、开启、关闭等操作,简化了管理工作。

  5. 共享控制文件和重做日志文件:CDB的所有PDB共享控制文件、重做日志文件和undo表空间,减少了资源占用。

  6. 支持应用程序容器:应用程序根容器包含根PDB和外部应用程序的相关目录对象,用于支持外部应用程序,而无需将对象部署到每个根PDB。

CDB的体系结构如下图所示:

一个CDB包含一个CDB根、一个种子PDB(PDB$SEED)、零个或多个应用程序容器和用户创建的PDB。CDB根和PDB$SEED在CDB创建时自动创建。

CDB通过使用CREATE DATABASE和ALTER DATABASE语句以及DBCA工具创建和管理。PDB通过使用CREATE PLUGGABLE DATABASE和ALTER PLUGGABLE DATABASE语句以及DBCA工具在CDB内创建和管理。

总之,CDB是Oracle Database多租户体系结构的实现,它引入了可插拔数据库(PDB)的概念,多个PDB可以部署在一个CDB中,共享某些资源且易于管理,是Oracle Database中一个非常有价值的功能。