ORACLE 12C新特性CDB及PDB一.CDB及PDB结构
CDB及PDB关系图
CDB和PDB是ORACLE 12C一个很亮的新特性,由于他们的引入导致传统的ORACLE数据库管理理念不少发生了改变。在ORACLE12C数据库引入多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,即数据库容器,PDB全称为Pluggable Database,即可插拔数据库。一个CDB数据库容器包含了下面一些组件:
l ROOT组件:
ROOT又叫CDB$ROOT,存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User是指在每个容器中都存在的用户。
l SEED组件
Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能由一个Seed。
l PDBS
CDB中可以有一个或多个PDBS,PDBS向后兼容,可以像以前在数据库中那样操作PDBS,这里指大多数常规操作。
这些组件中的每一个都可以被称为一个容器。ROOT(根)是一个容器,Seed(种子是一个容器),每个PDB是一个容器。每个容器在CDB中都有一个独一无二的ID和名称。二.CDB及PDB环境切换
Ø 如何确定是CDB还是PDB环境
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
如显示CDB$ROOT则代表是CDB环境
SQL> show con_name
CON_NAME
------------------------------
PDORCL(PDB名称)
如显示PDB的某个名称,则处于PDB环境
Ø 如何切换CDB或PDB环境
切换至PDB环境
alter session set container=PDB(某个PDB的具体名称);
切换至CDB环境
alter session set container=CDB$ROOT
Ø 查看当前PDB启动状态及启动数据库
SQL> select con_id,dbid,name,open_mode fromv$pdbs;
CON_ID DBID NAME OPEN_MODE
-------------------------------------------------------------------------
2 3918641363 PDB$SEED READ ONLY
3 2055325419 PDORCL MOUNTED
4 2055325420PDCATE MOUNTED
在CDB环境打开PDB数据库[指定某个PDB名称]
SQL> alter pluggable database PDORCL open;
Pluggable database altered.
在CDB环境下查看PDB状态
SQL> select con_id,dbid,name,open_mode fromv$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- -------------------------------------------------------------
2 3918641363 PDB$SEED READ ONLY
3 2055325419 PDORCL READWRITE
关闭PDB数据库
SQL> alter pluggable database PDORCL close;
Pluggable database altered.
在CDB环境下查看PDB状态
SQL> select con_id,dbid,name,open_mode fromv$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- -------------------------------------------------------------
2 3918641363 PDB$SEED READ ONLY
3 2055325419 PDORCL READWRITE
如果打开CDB容器下所有PDB数据库或者关闭CDB容器下所有PDB数据库,执行脚本如下:
SQL> alter pluggable database all open;
Pluggable database altered.
SQL> alter pluggable database all close;
Pluggable database altered.三.CDB及PDB下建立用户区别
查看当前属于CDB环境
S