当刚刚接触Oracle数据库12c的时候,J. Marshall Romberg还不知道新的多租户功能会让公司掏更多的钱。
作为世博控股的首席企业数据架构师,Romberg对这一结果感到有些吃惊。当对12c做beta测试的时候,多租户是他们最喜欢的新特性之一。在此之前,多租户功能还叫做Oracle数据库12c可插拔数据库(Pluggable Database),Romberg认为公司可以利用这一功能,对多个数据库进行整合。
但当Oracle数据库12c正式发布之后,人们才发现想要使用多租户功能,你就得多掏钱,甚至比之前已经很贵的企业版还要贵。也就是说,单处理器的企业版许可费用是47500美元,而使用Oracle数据库12c多租户功能的用户还需要多交额外的17500美元,相当于之前价格的137%。那么对于用户而言,这样的价格是不是太贵了?
“对于额外的费用,我们非常失望,” Romberg说:“我们会再考虑预算的问题,再决定明年是不是升级到12c。”
作为Oracle数据库12c的早期测试客户,Romberg对于多租户的技术表示五体投地,但出于成本考虑,他已经不确定公司会不会使用它。现在的问题是,Oracle是不是把12c中最具突破性的技术标价太高了?
Oracle数据库12c多租户功能简介
Oracle数据库12c多租户功能有两个主要的组件:Container Database(CDB)和Pluggable Database(PDB)。CDB主要用来作为数据库实例,它包含数据库操作、元数据和函数。PDB是用户数据库,能够插入到CDB当中。根据Oracle给出的官方文档,一个CDB中最多可以插入250个PDB。这些PDB还可以任意插入到其他的CDB当中,无论是在当前服务器上还是其他服务器上都可以。
这一架构将用户数据库从管理系统中分离出来。通常情况下,数据库虚拟化会将多个虚拟机放在一个服务器上,每个虚拟机都会有一个操作系统和数据库。这对于安全性保障以及数据库功能分离是比较好的,但对系统压力过大,因为有太多的VM、操作系统和数据库都并发运行。它会消耗大量计算资源,而且IT员工需要对每一个VM进行单独的管理。
据了解,甲骨文公司从7年前就开始对12c中的多租户功能进行探索,主要来自客户对数据库整合方面的需求。服务器虚拟化是一种方法,但是对资源的利用过高。另外一种方法是整合schema,这也是Sabre使用的方法。但这也会造成一些问题,比如,一些应用有严格的schema命名规则,这会导致命名空间冲突的问题。
Oracle数据库12c多租户功能可以解决以上的所有问题。
“在使用了多租户功能之后,系统管理的工作负载能够降到很低,”另外一家正在评估多租户功能的电信运营商发言人说:“你可以使用一个OS,然后所有Oracle都安装在这个OS上,然后在数据库层面进行虚拟化。我们的DBA工作压力也降低了,因为他们无需在对所有的数据库实例进行维护。”
这位匿名的技术发言人表示,他的公司正在就Oracle数据库12c多租户的价格问题与甲骨文进行谈判。最终甲骨文的价格还是要看是不是使用了多租户。
另外这家电信运营商比较感兴趣的功能是数据可视化热图(Heat Map),它将数据的冷热程度用图表的形式表现出来:使用频率更多的,它的热度就更高;反之亦然。这对于存储归档有很大帮助,他的公司将使用这个功能进行更深程度的压缩。
在接下来的几个月中,甲骨文肯定会推出更多的客户参考案例,展示Oracle数据库12c多租户功能的优势。而当更多的企业开始使用12c之后,也许还会有更多的有趣的用例会涌现出来。但出于Oracle的定价考虑,我认为对于大型企业整合上千个数据库的应用场景之下, Oracle数据库12c的多租户功能才会展现更好的ROI。