《Oracle Concept》前言-12c内容补充

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!
点击标题下「蓝色微信名」可快速关注

预计阅读时间:4分钟


背景:

按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。


前言《Introduction to Oracle Database》的历史文章:

《Oracle Concept》前言介绍-7

《Oracle Concept》前言介绍-6

《Oracle Concept》前言介绍-5

《Oracle Concept》前言介绍-4

《Oracle Concept》前言介绍-3

《Oracle Concept》前言介绍-2

《Oracle Concept》前言介绍-1

《Oracle Conecpt》 - 目录结构

《Oracle Conecpt》 - 初步认识1


有朋友建议,能否将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数据泵。


通过将分散在不同机器上的多套物理数据库整合为部署于一台机器的一套数据库,多租户架构提供了如下好处,

  • 硬件成本的降低。

  • 更简单和快速的数据、代码迁移。

  • 更简单的物理数据库管理和监控。

  • 数据和代码的分离

  • PDB管理员和CDB管理员职责的区分,前者仅负责管理有权限的PDB,后者则管理整个CDB。


如下所示,多租户架构在管理上的好处,

  • 通过PDB的插入和拔出,提供更便捷的数据和代码升级。

  • 在将PDB插入生产CDB之前,可以更简捷地在开发环境测PDB。

  • 有能力闪回一个独立的PDB到之前的SCN。

  • 有能力在PDB级别,设置内存和I/O的内存限制。

  • 有能力在一个应用容器中(指插入到普通应用根中的PDB数据库集合),安装、升级和管理主应用定义。


如下展示了两套独立的非CDB:HR和SALES。每套非CDB拥有自己的内存和数据文件集合,并且贮存于自己的计算机上。每一套非CDB拥有他自己的专有用户应用。

《Oracle Concept》前言-12c内容补充


下图展示了将HR和SALES插入名称为MYCDB,

《Oracle Concept》前言-12c内容补充


从物理角度,MYCDB就是一套Oralce数据库。MYCDB有一个数据库实例(尽管在RAC下可能有多个实例),以及一系列数据库文件的集合,就像一套非CDB。


MYCDB包含两个PDB:HRDB和SALESPDB。如上图所示,这些PDB拥有自己的应用,就像数据库整合之前一样。为了管理CDB,或者其中任意的PDB,CDB管理员需要连接到CDB根,即方案、方案对象以及所有PDB所属的非方案对象的集合。


CDB和非CDB在架构上各有不同。本文档若未明确指出,则说的就是非CDB。


可以参考《Multitenant Architecture》章节,有针对CDB更具体的介绍。