Oracle 12C以及更高版本中引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。
CDB相当于操作系统,调用并管理各个PDB。PDB相当于真正提供业务需求的数据库实例。Oracle 12C安装后只创建了CDB,需要自己生成相应的PDB。 Oracle 12C在安装时,默认创建为容器数据库。
1、查看当前是否处于容器CDB
show con_name;
如果结果为CDB&ROOT,则为容器状态(CBD),结果为ORCLPDB(这个PDB名字根据自己的实际情况而定,不是固定的),则为可插拔数据库(PDB)。
2、查看容器中的数据库名
show pdbs;
3、切换到PDB
alter session set container=ORCLPDB(这个pdb名字根据自己实际情况而定)
4、切换到CDB
alter session set container=CDB&ROOT
注:处于容器CDB时,新建的用户必须以C##开头