你可能和埋头于数据库部署的数据库管理员一样,对数据库扩展一筹莫展,也可能和做基于schema的共享部署的数据库管理员一样,迟迟不见效果。要扩展数据库,Oracle Database 12c是个不错的工具,它新增的多租户(Multitenant)功能,可以简化并加强数据库整合的工作。
二十多年的数据库部署酿成了今天的IT难题——数据库过多和总体拥有成本(TCO)的持续增长。数据库的扩散,有时称之为数据库扩张,是昂贵且难以管理的。要扭转这一趋势,你必须通过整合数据库来转移至多租户数据库部署模型。
Oracle数据库整合减少了数据库数量,有效管理了数据库资源。见图1
不要混淆数据库整合和服务器及存储整合。服务器整合以操作系统虚拟化加以实现,而存储整合则以共享存储加以实现,即在更少的物理服务器和存储系统上放置相同数量的数据库。数据库整合与前两者不同,它实际上减少了数据库数量。
这样做的好处是降低了成本,减少了复杂性并提高了效率。更少的数据库共享资源提高了利用率,从而减少了对基础设施和管理的需求。基础设施的减少,意味着购买软件许可证、硬件和数据中心设施的成本降低了,同时也减少了对运营的需求,又节省了一项开支。管理员们不需要花太多时间在系统管理,就可以专注于应用程序管理了。最终,服务质量的提高和投入市场的速度的提升都能给企业带来收益。(见图2)。
要了解Oracle数据库整合,需要了解其基本构造,即数据库服务器。一个数据库服务器需要至少一个实例和一个数据库。一个实例包含内存结构和运行于一个结点的进程,用来管理物理的数据文件。Oracle可以做为一个单实例或一个多实例集群进行架构,它被称之为Real Application Cluster(RAC 实时应用程序集群)。数据库就是驻留在存储介质上的物理数据文件,例如,固态或旋转磁盘,在一个或多个实例间共享。数据文件包括应用程序数据,控制文件以及重做日志,如图3中所示:
记住,Oracle数据库整合的目的是减少物理数据库服务器的数量。而要实现这一目标的部署模型不止一种。实际上,大多数企业很可能会采用几个不同的模型将密度整合最大化。这里有一些整合手段可供选择:服务水平协议(SLAs),行业类别(LOB),应用程序,软件开发周期(SDLC)环境,数据库版本,数据库字符集,Oracle功能,负载等等。实际上,在每个整合目标中不会最终得到一个单独的数据库:
大多数数据库都可以进行整合。但是,Oracle数据库整合并非适用于所有应用程序。下面是 关于在什么时候隔离一个应用程序或是限制整合的指南:
你无法控制数据库版本,操作系统或平台的第三方应用程序
要求非标准字符/代码集的应用程序
数据库大小达到服务器对于诸如CPU,内存或管理时间窗口的限制
有性能需求的应用程序需要专门资源
Oracle数据库整合意味着多租户。数据库多租户是一个数据库中的单一实例服务多个用户的架构。每个用户称之为一个租户。租户们是逻辑隔离,物理集成的。在一个典型的多租户数据库中,原本不共享也看不到彼此数据的租户,在运行统一系统,使用统一硬件和存储系统时,就可以分享同一数据库。在云计算中,一个数据库服务(DaaS)提供者可以运行一个实例并提供给对多个用户的访问。
Oracle 12c的多租户功能是一个高密度的Oracle数据库整合平台,它把一个单一的多租户容器数据库(CDB)当做很多的可插拔数据库(PDBs)使用。操作系统会将一个物理CDB视为数据库,而用户或租户则会将一个虚拟PDB视为数据库。一个容器数据库提供了将许多可插拔数据库作为一个数据库加以管理的能力。在对独立数据库保持安全,隔离和资源控制的情况下可插拔数据库共享实例显示了容器数据库的SGA内存和后台进程:(见图5)
数据库内虚拟化将数据库整合简化到了云上。其主要的好处就是降低了成本和复杂性并且以更少的物理数据库,更高的密度和更低的运营开销提高了效率。最重要的是,迁移到Oracle多租户很简单,并不要求对应用程序做出改变。你需要的只是Oracle 12c,支付一项额外的许可费就可以将你的数据库迁移至“可插拔”数据库。这样,应用程序就会准备就绪了。