Oracle与SQLServer集群部署方案对比及实例.doc
文本预览下载声明
Oracle与SQLServer集群部署方案对比及实例
一、需求背景
1、大型全国系统的稳定性、安全性必须在现有基础上进一步提高,需要升级到综合性能更强大的硬件,实现更加完善的故障转移、数据冗余、灾难备份等容错手段。
2、全国系统中,以数据量和访问量为代表的系统负载将会大幅度提升,数据库的性能将成为关键瓶颈。数据库服务器需要从现有的双机故障转移集群升级为可支持负载均衡的集群方式,在满足性能要求的同时,为未来的动态性能扩展打下基础。
二、Oracle RAC与SQL Server的集群方案对比
1,方案与需求分析
关键功能与费用矩阵分析表:
对比项Oracle RACSQL Server故障转移支持支持负载均衡支持不支持可扩展性支持支持费用高低集群方案与需求矩阵分析表:
需求
方案高可用性高性能数据冗余灾备故障转移高速网络共享存储负载均衡IORAID
ASMDATA GUARD
集群Oracle RAC√√√√√√√√SQL
Server√√√╳√√╳╳
由上表可见:
集群分两个层面:系统层群集和应用层群集,Oracle RAC 和SQL Server 故障转移集群都是属于应用集群,两种集群都能够实现高可用性即容错的要求。
两者最大的不同之处在于:Oracle RAC虽成本较高,但能实现负载平衡的需求,支持动态添加服务器节点来应对负载的增加。而SQL Server集群成本虽然较低,但系统不具备方便的负载性能扩展的能力,当出现数据库系统的性能不能满足应用的负载时,只能更换更高配置的机器,这个问题也是到目前为止微软自身的集群解决方案具有的通病。尽管也有一些号称是支持SQL Server实现负载均衡的增值开发,但对这样一个全国系统来说,使用非微软原生的第三方系统需要慎重考虑。
另外,对于一个大型全国系统来说,要求的高可用性的需求和场景还应该包括有其他的内容,例如数据的冗余、异地灾难备份,这些需求可能需要我们用集群以外的方式来实现,还需要进一步??定在上述集群之外的方案,而在Oracle数据库所具备的ASM和DATA GUARD功能也为数据冗余和异地灾难备份提供了更多更好的可能性。
2,功能实现方式对比
以下再进一步从故障转移、负载均衡、可扩展性等各个方面的功能实现方式上,对两种集群方式进行更加详细的对比。
SQL Server集群功能实现方式
故障转移
SQL Server集群故障转移功能是通过群集中连接的多个计算机中的冗余或备份实现的,每台计算机都具有独立的故障状态。为了实现冗余或备份,需要在群集中的多个服务器节点上都安装数据库程序。但在故障发生前的任一时刻,应用程序只会在其中一个数据库节点上处于联机状态。仅当该应用程序出现故障或该服务器停机时,此应用程序将在另外一个冗余或备份节点上重新连接或自动接替。
多节点互备
在集群中部署多个数据库应用的情况下。各个不同应用可分别部署在不同节点上运行。当任何一个节点故障时,该节点上运行的应用可自动转移到其他节点上,从而实现多节点互备。
可扩展性
可在不中断服务的情况下,在线增加新节点,获取更多高可用备份,但无论集群中的备份节点如何增加,由于SQL Server只在最新Always On AG集群中可以在不同节点上配置读写分离功能,没有动态的负载均衡功能,所以要实现性能扩展原则上只能通过在现有集群中更换更高档的服务器来实现。
Oracle RAC集群功能实现方式
故障转移
除了通过群集中连接的多个计算机中的冗余或备份实现的故障转移之外,Oracle RAC实现了对客户端透明(TAF)的故障转移。所谓TAF,就是连接建立以后,应用系统运行过程中,如果某个实例发生故障,连接到这个实例上的用户会被自动迁移到其他的健康实例上。采用TAF 这种方式在提升系统的高可用性上带来了很大的进步。
ORACLE RAC故障转移的特点:
访问时应用透明(注意不只是对Oracle 客户端的透明)
程序通过Oracle端访问RAC,访问程序无需了解数据库是双机还是单双机,只通过本地服务名即可访问。
故障时应用透明
一些情况下,应用感受不到某个节点发生了失败,不会收到异常。一些情况下,应用收到异常,但不需要再次连接,即可继续执行访问。一些情况下,应用程序收到异常,并需要重新连接。
负载均衡
服务器端的负载均衡可以根据RAC中各节点的负荷及连接数情况,而自动作出判定,将新的客户端连接分配到集群中负荷最小的节点上去。
可扩展性
可在不中断服务的情况下,在线增加新节点,获取更多高可用备份,同时加入的新节点可通过上面的负载均衡功能来提升系统整体负载能力,从而可以方便地在任何时候通过在现有集群中加入新的
显示全部