应该在VMware平台还是物理机平台上运行Oracle RAC?



Oracle真正应用集群(Oracle Real Application Cluster,RAC)和VMware现在都是非常热门的技术产品,但是它们是不是适合一起使用呢?

  根据TechTarget网站的一份调查显示,这两项技术在用户中的认同度和普及率都有所增长。此外,VMware还是针对Oracle产品最受欢迎的虚拟化平台。然而,目前还有网友在讨论,VMware平台运行Oracle RAC是不是一个最好的选择?

  在许多情况下,VMware平台运行Oracle RAC都是业务主管提出的,他们认为数据中心可以通过使用VMware来获得更多的利益,那么为什么不把VMware用在底层工作负载上呢?比如Oracle RAC。所以业务主管提出需求,IT部门人员就需要实现。

  著名出版社爱思维尔的DBA David Robbins表示他正好遇到了上面的情况,爱思维尔是一家科学出版社,最知名子公司包括了LexisNexis。该公司的Oracle数据库就安装了RAC应用,作为它们自己的高可用选项。

  一家Oracle咨询公司的CTO Dave Welch认为,这样的做法在技术层面其实是有它的好处的,如果一个终端用户将VMware层添加到任意的Oracle实例中,不论是单一的实例还是RAC,这都可以使应用拥有更好的灵活性。

  Welch说:“现在,我可以将所有的东西作为一个整体来进行克隆,然后开发部门的非技术人员或者QA都可以简单地点一个按钮就可以克隆同样的环境。你可以将环境的高可用性与硬件的高可用性区别开来。在不使用VMware之前,你可能需要向环境中添加特定的硬件才能达到这样的效果。”

  Welch补充道,当Oracle RAC在进行节点撤回的时候,VMware还可以提供相应的帮助。如果Oracle RAC认为一个集群的性能出现异常情况,它会进行硬件的重置,剩下的Oracle实例将进行所谓的“清理杂乱工作”。在这种情况下,如果你添加了VMware,硬件重置就会利用虚拟机来完成,而无需牵扯整个的硬件设备。这样的话,RAC进行节点撤回的工作负载就降低了,DBA可以添加更多的负载来运行其它的RAC任务。

  然而,我们也听到了一些反对的声音,有些人认为在VMware平台运行Oracle RAC并没有特别明显的效果。同样来自一家Oracle咨询公司的CTO Alex Gorbachev就发表了这样的看法。他表示,终端用户在部署RAC的时候通常是出于两种考虑:高可用性和高扩展性。但是想从小规模扩展到大规模的物理节点比较容易,而扩展到大量的虚拟节点就比较困难了。

  Gorbachev认为Oracle RAC对与IT基础架构来说是非常敏感的一环,极易出现各种各样的故障,因为RAC是一个shared-everything数据库,这意味着操作都需要在所有的节点上进行同步。而当这一情况发生的时候,每一个节点就必须拥有足够的资源才可以保证操作顺利进行。而利用VMware进行虚拟化,这会占用许多CPU和内存资源,因此在VMware平台运行Oracle RAC的负载我们可想而知。

  Gorbachev说:“在VMware上运行RAC,我认为没有任何意义。你可能得到的只是集群之间的独立性,但是集群又是非常容易出现故障的。因为在VMware内部的任何一点点改动都会牵扯到CPU和内存,这就造成集群的更改。”

  在反对VMware平台运行Oracle RAC的声音中,还有人认为甲骨文的技术支持策略是另外一个不利因素,他们觉得甲骨文在技术支持方面做得很不好。爱思维尔出版社的Robbins就希望在VMware平台上部署Oracle RAC,但是处于上述原因,他们至今还踟躇不前。

讨论:是否应该在VMware平台上运行Oracle RAC?

RAC是一个完整的集群应用环境,它不仅实现了集群的功能,而且提供了运行在集群之上的应用程序,即Oracle数据库。无论与普通的集群相比,还是与普通的oracle数据库相比,RAC都有一些独特之处。 RAC由至少两个节点组成,节点之间通过公共网络和私有网络连接,其中私有网络的功能是实现节点之间的通信,而公共网络的功能是提供用户的访问。在每个节点上分别运行一个Oracle数据库实例和一个监听器,分别监听一个IP地址上的用户请求,这个地址称为VIP(Virtual IP)。用户可以向任何一个VIP所在的数据库服务器发出请求,通过任何一个数据库实例访问数据库。Clusterware负责监视每个节点的状态,如果发现某个节点出现故障,便把这个节点上的数据库实例和它所对应的VIP以及其他资源切换到另外一个节点上,这样可以保证用户仍然可通过这个VIP访问数据库。 在普通的Oracle数据库中,一个数据库实例只能访问一个数据库,而一个数据库只能被一个数据库实例打开。在RAC环境中,多个数据库实例同时访问同一个数据库,每个数据库实例分别在不同的节点上运行,而数据库存放在共享的存储设备上。 通过RAC,不仅可以实现数据库的并发访问,而且可以实现用户访问的负载均衡。用户可以通过任何一个数据库实例访问数据库,实例之间通过内部通信来保证事务的一致性。例如,当用户在一个实例修改数据时,需要对数据加锁。当另一个用户在其他实例中修改同样的数据时,便需要等待锁的释放。当前一个用户提交事务时,后一个用户立即可以得到修改之后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值