Oracle 12c多租户架构及优缺点
Oracle的多租户和MySQL,MSSQL的类似,把之前的一个实例对一个数据库的情形(RAC是多个实例对一个数据库)整合成了一个实例下可以挂多个数据库,并且定义为可插拔的,听起来很炫。就像在没有多租户特性之前,Oracle与MSSQL以及MySQL还是有很大的差异,因此对于Oracle的多租户也有一些不同的地方。本文主要描述Oracle 12c多租户架构。 一、多租户概念Oracle多租户环境包含一个容器数据库(CDB)和零个或多个可插拔数据库(PDB),一个PDB是一个模式,模式对象,以及非模式对象,如到一个Oracle网络客户端作为非CDB。Oracle 12c之前的版本,都是非CDB数据库。 借用从MSSQL或者MySQL架构来看,即一个实例下面可以有多个数据库。Oracle这个多租户其实和他们的架构类似,把PDB按这种思路来理解就容易得多了。这么做最终的目的是可以充分的利用系统资源。想之前维护的一台机器上搞了5-6个实例,资源浪费,管理起来也费劲。 二、CDB容器1、什么是CDB容器一个CDB容器是多租户架构内的数据或元数据的逻辑集合。 每个CDB都有以下容器:
2、没有应用容器的CDB此示例显示一个简单的CDB,其中包含五个容器:系统容器(整个CDB),CDB根,PDB种子和两个PDB。每个PDB都有自己的专用应用程序。不同的PDB管理员管理每个PDB。一个公共用户存在于具有单个身份的CDB上。在这个例子中,公共用户SYS可以管理根和每个PDB。在物理层面上,该CDB具有数据库实例和数据库文件,就像非CDB一样。 如下图没有应用程序容器的CDB 3、带有应用程序容器的CDB在本变体中,CDB包含一个名为的应用程序容器saas_sales_ac。在应用程序容器中,应用程序PDB cust1_pdb支持一个客户的应用程序,并且应用程序PDB cust2_pdb支持不同客户的应用程序。CDB还包含一个名为的PDB hrpdb,它支持HR应用程序,但不属于应用程序容器。 下图为带有应用程序容器的CDB 在这个例子中,多个DBA管理CDB环境: 三、CDB要点理解
四、多租户架构的优缺点1、非CDB架构的挑战整合前,如下图所示
N多的应用服务器对应到N多的数据库服务器 #Author : Leshami 几个或N个数据库服务器实例放在同一台服务器 #Blog : http://blog.csdn.net/leshami
DBA团队必须分别管理每个数据库的SGA,数据库文件,帐户,安全性等 大部分系统资源变成闲置,即使是在一台服务器上放置多个实例,本质上依旧是单独管理(数据库级别) 各个数据库之间的交互远程调用效率低下(dblink) 2、整合后的优点整合后图示如下:
将数据从位于不同服务器上的多个数据库合并到一台服务器上,且无需更改现有模式或应用程序
3、整合后的缺点
参考链接: http://docs.oracle.com/database/122/CNCPT/introduction-to-the-multitenant-architecture.htm#CNCPT89242 (编辑:河池站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |