2013年(13)
分类: Oracle
2013-08-07 21:25:19
Oracle 12C推出了一个新特性,叫多租户(Multitenant),据说,这是甲骨文向云计算或者云数据库迈出的一大步。我仔细研究了一下“多租户”的概念,和实际的应用,看不出它与云计算有几毛钱关系。“多租户”确实能够给数据库的管理带来很多便捷(如数据库的移动),也能节省成本,不过,“多租户”对性能的影响,以及如何高效使用内存,还有待考证。
多租户最重要的2个概念是容器数据库(CDB,multitenant container database)和可热插拔数据库(pluggable databases,PDB)。CDB和PDB比较难于理解,我们就不用按照官方的文档进行解释了。大家可以把CDB想象成一个大的容器,这个大的容易在物理上是一个整体,在这个大的容器中还有一些小的容器,一个CDB含有3种类型的容器(如下图所示):
l root容器,包含元数据信息
l seed容器,它就是一个模板,新的PDB可以基于这个模板进行创建
l PDB,也是最重要的,包含用户数据,我们的创建的表就放在这里。root和seed主要出于管理的目的。
CDB其实就是我们以前的数据库,只是它被分成了几部分,每一部分(每个PDB)都能作为一个整体(数据库)对外独立提供服务,就好像你看到了多个以前的Oracle数据库。PDB有点像Schema(模式),最大的差别是,对外界来说,它是一个独立的数据库。暂时不能理解CDB和PDB的概念,也没有关系!!!看完后续的实验,估计你就明白了。
多租户(Multitenant)的好处是:
l 节省成本
l 数据便捷移动
l 职权分离
l 减少数据库管理任务
l 最适合大的数据中心项目
此外,还需要记住下面总结出来的一些有关CDB和PDB的概念:
l 每个CDB有一个活动的UNDO表空间(active undo tablespace)
l redo log属于CDB,而不是PDB
l 控制文件属于CDB,而不是PDB
l 每个PDB都有一个SYSAUX表空间(CDB也有一个SYSAUX表空间)
l 每个PDB都有一个SYSTEM表空间(CDB也有一个SYSTEM表空间)
l 每个PDB有一个临时表空间(可选)(CDB也有一个临时表空间,供所有的PDB共享)