预计阅读时间:4分钟
背景:
按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。
前言《Introduction to Oracle Database》的历史文章:
《》
《》
《》
《》
《》
《》
《》
《》
《》
有朋友建议,能否将12c的内容加进来,对我来说,工作中基本没怎么接触过,因此也算是小白,这个建议很好,可以从理论层面,整体了解学习下。在每一章节的学习中,我会将12c的《Concept》相比于11g新增的内容,补充进来,或许还会有些变更的内容,可以看出俩版本之间的区别,虽然工作量相当于增加一倍,但还是会利大于弊的,值得这种付出。
在《前言》中,12c增加了新特性,例如2013年发布的12c版本,如“c”所描述的,是为了云设计的,提出了多租户架构、In-Memory列存储、对于JSON文档的支持,这些新的技术。
多租户架构 - Multitenant Architecture
多租户架构能让Oracle成为一个多租户容器数据库,即CDB。CDB是一套独立的物理数据库,它包含了0个、1个或是多个用户创建的可插拔数据库。可插拔数据库,即PDB(Pluggable DataBase),是一个轻量级的集合,其中可能包含了schema方案、schema方案对象、以及非方案对象(表现为一个Oracle Net客户端,通常称为非CDB)。非CDB,即non-CDB,是指不含PDB的传统Oracle数据库。
从12c开始,必须创建一个CDB或非CDB数据库。能将一个非CDB插入一个CDB中作为PDB。要将PDB导入非CDB,必须使用Oracle数据泵。
通过将分散在不同机器上的多套物理数据库整合为部署于一台机器的一套数据库,多租户架构提供了如下好处,
如下所示,多租户架构在管理上的好处,
如下展示了两套独立的非CDB:HR和SALES。每套非CDB拥有自己的内存和数据文件集合,并且贮存于自己的计算机上。每一套非CDB拥有他自己的专有用户应用。
下图展示了将HR和SALES插入名称为MYCDB,
从物理角度,MYCDB就是一套Oralce数据库。MYCDB有一个数据库实例(尽管在RAC下可能有多个实例),以及一系列数据库文件的集合,就像一套非CDB。
MYCDB包含两个PDB:HRDB和SALESPDB。如上图所示,这些PDB拥有自己的应用,就像数据库整合之前一样。为了管理CDB,或者其中任意的PDB,CDB管理员需要连接到CDB根,即方案、方案对象以及所有PDB所属的非方案对象的集合。
CDB和非CDB在架构上各有不同。本文档若未明确指出,则说的就是非CDB。
可以参考《Multitenant Architecture》章节,有针对CDB更具体的介绍。