Oracle与SQLServer集群部署方案对比及实例
OracleOracle 与与 SQLServerSQLServer 集群部署方案对比及实例集群部署方案对比及实例 一、需求背景一、需求背景 1、大型全国系统的稳定性、安全性必须在现有基础上进一 步提高,需要升级到综合性能更强大的硬件,实现更加完善的故 障转移、数据冗余、灾难备份等容错手段。 2、全国系统中,以数据量和访问量为代表的系统负载将会 大幅度提升,数据库的性能将成为关键瓶颈。数据库服务器需要 从现有的双机故障转移集群升级为可支持负载均衡的集群方式, 在满足性能要求的同时,为未来的动态性能扩展打下基础。 二、二、OraclOracle eRACRAC 与与 SQLServerSQLServer 的集群方案对比的集群方案对比 1 1,方案与需求分析,方案与需求分析 关键功能与费用矩阵分析表 对比项对比项 故障转移 负载均衡 可扩展性 费用 Oracle RACOracle RAC 支持 支持 支持 高 SQL ServerSQL Server 支持 不支持 支持 低 集群方案与需求矩阵分析表 需求需求高可用性高可用性 故障转移高速网络共享存储 高性能高性能 负载均衡IO 数据冗余数据冗余 RAIDASM 灾备灾备 DATA GUARD 方案方案 集集 群群 OracleOracle RACRAC SQLSQL ServerServer √ √ √ √ √ √ √ ╳ √ √ √ √ √ ╳ √ ╳ 由上表可见 集群分两个层面系统层群集和应用层群集,Oracle RAC 和 SQL Server 故障转移集群都是属于应用集群,两种集群都能够 实现高可用性即容错的要求。 两者最大的不同之处在于Oracle RAC 虽成本较高,但能实 现负载平衡的需求,支持动态添加服务器节点来应对负载的增 加。而 SQL Server 集群成本虽然较低,但系统不具备方便的负 载性能扩展的能力, 当出现数据库系统的性能不能满足应用的负 载时,只能更换更高配置的机器,这个问题也是到目前为止微软 自身的集群解决方案具有的通病。尽管也有一些号称是支持SQL Server 实现负载均衡的增值开发,但对这样一个全国系统来说, 使用非微软原生的第三方系统需要慎重考虑。 另外,对于一个大型全国系统来说,要求的高可用性的需求和 场景还应该包括有其他的内容, 例如数据的冗余、 异地灾难备份, 这些需求可能需要我们用集群以外的方式来实现, 还需要进一步 制定在上述集群之外的方案,而在 Oracle 数据库所具备的 ASM 和 DATA GUARD 功能也为数据冗余和异地灾难备份提供了更多更 好的可能性。 2 2,功能实现方式对比,功能实现方式对比 以下再进一步从故障转移、负载均衡、可扩展性等各个方面的 功能实现方式上,对两种集群方式进行更加详细的对比。 SQL ServerSQL Server 集群功能实现方式集群功能实现方式 1 故障转移 SQL Server 集群故障转移功能是通过群集中连接的多个计算 机中的冗余或备份实现的,每台计算机都具有独立的故障状态。 为了实现冗余或备份, 需要在群集中的多个服务器节点上都安装 数据库程序。但在故障发生前的任一时刻,应用程序只会在其中 一个数据库节点上处于联机状态。 仅当该应用程序出现故障或该 服务器停机时, 此应用程序将在另外一个冗余或备份节点上重新 连接或自动接替。 2 多节点互备 在集群中部署多个数据库应用的情况下。各个不同应用可分 别部署在不同节点上运行。当任何一个节点故障时,该节点上运 行的应用可自动转移到其他节点上,从而实现多节点互备。 3 可扩展性 可在不中断服务的情况下,在线增加新节点,获取更多高可 用备份,但无论集群中的备份节点如何增加,由于 SQL Server 只在最新 Always On AG 集群中可以在不同节点上配置读写分离 功能,没有动态的负载均衡功能,所以要实现性能扩展原则上只 能通过在现有集群中更换更高档的服务器来实现。 Oracle RACOracle RAC集群功能实现方式集群功能实现方式 1 故障转移 除了通过群集中连接的多个计算机中的冗余或备份实现的故 障转移之外,Oracle RAC实现了对客户端透明(TAF)的故障转 移。所谓 TAF,就是连接建立以后,应用系统运行过程中,如果 某个实例发生故障, 连接到这个实例上的用户会被自动迁移到其 他的健康实例上。采用 TAF 这种方式在提升系统的高可用性上 带来了很大的进步。 ORACLE RAC 故障转移的特点 ➢ 访问时应用透明(注意不只是对 Oracle 客户端的透明) 程序通过 Oracle 端访问 RAC,访问程序无需了解数据库是双 机还是单双机,只通过本地服务名即可访问。 ➢ 故障时应用透明 一些情况下,应用感受不到某个节点发生了失败,不会收到 异常。一些情况下,应用收到异常,但不需要再次连接,即 可继续执行访问。一些情况下,应用程序收到异常,并需要 重新连接。 2 负载均衡 服务器端的负载均衡可以根据 RAC 中各节点的负荷及连接数 情况,而自动作出判定,将新的客户端连接分配到集群中负荷 最小的节点上去。 3 可扩展性 可在不中断服务的情况下,在线增加新节点,获取更多高可 用备份, 同时加入的新节点可通过上面的负载均衡功能来提升系 统整体负载能力, 从而可以方便地在任何时候通过在现有集群中 加入新的服务器实现性能扩展。 3 3,硬件配置与租,硬件配置与租/ /买费用对比买费用对比 硬件配置与费用对比表(双机集群,费用为估算) 对比项对比项 自己购买中档硬件费用 IDC 租用及托管费用 自己购买高档硬件费用 IDC 租用及托管费用 硬件在 IDC 托管的费用 Oracle RACOracle RAC 30 万 10 万/年 50 万 16 万/年 6 万/年 SQL ServerSQL Server 35 万 12 万/年 55 万 18 万/年 8 万/年 注 SQL Server 硬件费用比 Oracle RAC 要高的主要原因是需 要增加两台域控制服务器。 由上表可见 由于目前一般都必须将服务器托管在 IDC 以获取必须的网络 服务,如果自己购买硬件,放在IDC 托管显然是不合适的,自己 先花了大把的钱买来服务器, 再花大把的钱去托管显然不如直接 在 IDC 租用硬件,方便又省钱。而且硬件出了问题,租用由IDC 服务商解决处理,而自己购买的硬件当然就要自己处理,或是自 己出钱请原厂商来处理,多了许多麻烦。 另外, 租用 IDC 服务器原则上三年的租用之后 IDC 都会送服务 器产权,按照三年的总费用划算下来,服务器同样也属于你了, 但是直接租用 IDC 硬件比自己购买后再托管就大约可以节省下 了每年托管的费用。 所以,全国系统建议采用硬件在 IDC 直接租用的方式,而不要 自己购买以后再去托管。 4 4,软件费用对比,软件费用对比 软件授权费用对比表(双机集群,费用为 4CPU 的估算) 对比项对比项 双节点授权全价 双节点授权 5 折价 单节点授权全价 单节点授权 5 折价 安装服务费用 每年运营维护费用 Oracle RACOracle RAC