一. 多租户环境(重大更新)
1. 定义
CDB为数据库容器,PDB为可插拔数据库。
2. 多租用户环境
允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。
3. 实例与数据库对应关系
在ORACLE 12C之前,实例与数据库是一对一或者多对一关系(RAC数据库集群),也就是说一个实例只能与一个数据库相关联,一个数据库可以被多个实例加载,不会出现一个实例对于多个数据库的情况也就是一对多的关系;
在ORACLE 12C之后,实例域数据库可以实现一对多的关系,也就是一个实例可以关联多个数据库。
4. CDB与PDB关系
CDB容器数据库中可以有多个可插拔数据库,并且PDB相互之间相互隔离。
5. 12C CDB安装图片
6. CDB的组成
a) ROOT:又名ROOT¥ROOT,存储ORACLE提供的元数据以及公用用户(common user)。元数据:ORACLE提供的PL/SQL包的源代码;公用用户:指每个容器都存在的用户可以连接到其他容器(注意PDB有自己对应的本地用户,不存放ROOT中)。一个CBD中只能存有一个根。
b) Seed PDB:又名PDB$SEED,是创建PDBS数据库的系统级模板,CDB可以用这个模板创建其他PDB,不能在其中添加或者修改对象,一个CDB中只能有一个SEED。
c) PDB:PDB展现给用户和应用的形象就像是一个没有CDB的普通数据库一样。
7. 迁移的问题
我们可以很轻松将PDB插入到CDB中,相当于将PDB与CDB链接起来,也可以将之拔出,相当于将PDB与CDB解除关系。
在现在的时代下,数据迁移是很常有的事情,面对大量数据,需要将数据从一个数据库迁移到另一个数据库,其中的问题数之不尽,出现CDB以及PDB极大程度的方便数据的迁移。
当然,一个PDB只能在同一时间内插入到CDB中,每一个PDB独有自己独一无二的全局唯一标识符(GUID)来预防PDB的重复错误。具体图片如下:
8. 多租户容器数据库体系结构(12.1版本)
在12.1中,所有在一个实例中的PDB只能共享同一个UNDO表空间。在12.2中它们都有各自的undo表空间了。
这种新的管理机制就叫做本地undo模式。与此同时,在之前的版本中的模式,现在就称之为共享undo模式。
9. 多租户容器数据库的特点
a) 可拔插数据库允许DBA整合大量的小的部门级数据库到一个更庞大的数据库中
b) 成本降低,以更低的成本在集中管理平台中操作多个数据库,更少的实例损耗,更低的存储成本
c) 降低DBA成本并且便于维护安全性
d) 加速重新部署现有的数据库到新的平台的速度
10. PDB操作
a) 创建PDB
CREATE PLUGGABLE DATABASE “NEW_PDB” ADMIN USER “admin” IDENTIFIED BY “admin”
FILE_NAME_CONVERT=NONE
STORAGE UNLTMITED TEMPFILE REUSE
b) 克隆PDB
BEGIN
EXECUTE IMMEDIATE ‘ALTER PLUGGABLE DATABASE “ORCLPDB_COLONE” CLOSE IMMEDIATE’;
EXECUTE IMMEDIATE ‘ALTER PLUGGABLE DATABASE “ORCLPDB_COLONE” OPEN READ ONLY’;
EXECUTE IMMEDIATE ‘CREATE PLUGGABLE DATABASE “ORCLPDB_COLONE2” FROM “ORCLPDB_COLONE”
FILE_NAME_CONVERT=NONE
STORAGE UNLTMITED TEMPFILE REUSE
EXECUTE IMMEDIATE ‘ALTER PLUGGABLE DATABASE “ORCLPDB_COLONE” CLOSE IMMEDIATE’;
EXECUTE IMMEDIATE ‘ALTER PLUGGABLE DATABASE “ORCLPDB_COLONE” OPEN READ WRITE’;
END;
c) 拔出PDB
BEGIN
EXECUTE IMMEDIATE ‘ALTER PLUGGABLE DATABASE “ORCLPDB1” UNPLUG INFO ‘’ORCLPDB1.XML’’’;
EXECUTE IMMEDIATE ‘DROP PLUGGABLE DATABASE “ORCLPDB1” KEEP DATAFILES’;
END;
d) 插入PDB
CREATE PLUGGABLE DATABASE “NEW_PDB” USING ‘ORACLPDB1.XML’
SOURCE_FILE_NAME_CONVERT=NONE
NOCOPY
STORAGE UNLTMITED TEMPFILE REUSE
11. 总结
有关ORACLE 12C 的重大更新就是多租户,还有其他重要更新在下篇说明。
此文是请教多位大佬以及配合自己理解写出来的,如果有错误我会尽快改正。
希望与大家共同进步。