SQL Server 2000 数据库集群使用 MSCS 概述






3.36/5 (7投票s)
2005年5月11日
6分钟阅读

89376
一篇介绍使用 MSCS 进行 SQL Server 数据库群集概述的文章。
引言
您还在为理解数据库群集是什么而绞尽脑汁吗?这篇文章将帮助您理清思路 :-)。
当我开始研究数据库群集时,我的脑海里充满了各种疑问,比如——“我需要有多个数据库吗?”、“如何以及由谁来负责不同数据库之间的数据同步?”、“客户端如何与群集中的数据库服务器通信?”……等等。我发现关于这方面的信息很少,而且很多信息都很含糊不清。所以,我在这里尝试呈现一些抽象信息,这将有助于理解数据库群集。我还会介绍一些实现 SQL Server 数据库群集需要注意的关键问题、限制和要点。本文不会提供关于如何配置群集的任何信息。
什么是数据库群集?
对于任何应用程序来说,不仅性能和可扩展性很重要,应用程序的高可用性也同样重要。特别是像银行、交易、医疗保健等对金融交易和及时信息可用性要求极高的应用程序,可用性比性能和可扩展性更受重视。“数据库群集是实现数据库更高可用性的一种方式”。 请记住,数据库群集是一种故障转移技术,而不是扩展技术。它不关注性能或将流量分发到不同的服务器。它仅仅关注在服务器发生故障时,将执行环境和服务转移到群集中的另一台服务器,从而确保数据库的更高可用性。目前,数据库群集仅受 SQL Server 2000 企业版支持。
术语
- 群集 (Cluster):群集是一组协同工作的计算机,它们以类似的方式为客户端提供服务。
- 节点 (Nodes):群集中参与的每台服务器都称为节点。
- 群集中的最大节点数:在 Windows Server 2003 中,最多可以有 4 个节点(最多 16 个 SQL 实例);而在 Windows NT 中,群集中最多可以有 2 个节点。
- 心跳 (Heartbeats):群集中的节点通过交换称为心跳的周期性消息来保持持续通信。
- 服务器上相同的操作系统:一个群集不能由运行 Windows Server 2003 Enterprise Edition 和 Windows Server 2003 Datacenter Edition 的节点组成。所有节点上安装的操作系统必须相同。
- 虚拟 IP (VIP):客户端系统使用虚拟 IP 与数据库服务器通信。MSCS 负责将客户端请求重定向到活动的服务器,因此客户端不必担心群集中哪个服务器是活动的。
硬件/软件要求
- 至少两台 Windows Server 系列服务器。服务器可以是 Windows NT Server(最低 SP-5)、Windows 2000 Server、Windows 2000 Advanced Server 或 Windows Server 2003(Enterprise 或 Datacenter 版)。
- 每台服务器两个网络适配器(一个用于与客户端系统通信,另一个用于与群集中的其他服务器通信)。
- 共享磁盘阵列/SAN/SCSI 设备(SCSI 发音为“Scuzzy”)。
- MSCS(Microsoft Cluster Service)随操作系统一起提供。
- SQL Server 2000 企业版。
群集是如何实现的
随着 MSCS 的推出,配置数据库群集变得相当容易。请注意,MSCS 服务并非专门用于数据库群集,但可以用于数据库群集。MSCS 提供三种模型:
- 单节点服务器群集(用于组织服务器上的资源以方便管理)。
- 单一仲裁 (Single quorum)(主要用于数据库群集): 此模式将群集配置数据保存在连接到所有节点的一个群集存储设备上。对于 *n* 个节点的群集,只要群集中的最后一个节点还在工作,群集就是活动的。数据存储在单个群集存储设备(SCSI 等)上。因此不需要数据同步。
- 多数节点集 (Majority node set): 每个节点都维护自己的群集配置数据副本。群集中的一半以上节点必须正在运行才能使群集正常工作。此配置适用于需要托管可以进行故障转移的应用程序,但又存在其他特定于应用程序的方法在节点之间复制或镜像数据的情况。
请注意,在单一仲裁模型中,数据库只有一个副本存储在一种特殊的硬件上,因此数据同步等问题永远不会出现。我推荐使用“单一仲裁”模型进行数据库群集。
每种模型的详细描述超出了本文的讨论范围。
图表是我的好朋友 :-)。下面是双节点群集的图示。其思想是在具有相同硬件配置的不同服务器上托管数据库执行环境,并将数据保存在单独的特殊硬件上。
注意下面关于图表的要点
- 在此,DB Server-1 和 DB Server-2 在安装 SQL Server 后托管数据库执行环境。
- DB Server-1 和 DB Server-2 应具有相同的硬件配置。
- 共享设备 (Shared Device) 是一种特殊的硬件(SCSI 设备、共享阵列或 SAN 设备),用于存储数据。
共享设备经过制造和调优,可为数据库服务器提供更快的数据服务,并提供近乎 99.99% 的可用性。
- 在上图中,服务器配置为主动/被动模式。也可以配置为主动/主动模式。这一点将在后续内容中进一步讨论。
- MSCS(Microsoft Cluster Service)最初于 Windows® NT 4™ 中推出。
- 客户端系统使用虚拟 IP (VIP) 与服务器通信。VIP 是为群集中的所有节点配置的通用 IP,因此 MSCS 负责将客户端请求重定向到活动的服务器,客户端不必担心哪个数据库服务器正在为其提供服务。
- 如果您计划进行 SQL 数据库群集,需要遵循特殊的数据库安装过程。我建议在所有服务器上安装操作系统,配置适配器和单一仲裁群集,然后安装 SQL Server 2000。这样 SQL Server 会自动检测到群集环境。
让我们看看主动/被动模式和主动/主动模式。
群集模式
群集可以配置为以下两种模式:
主动/被动模式 (Active/Passive mode):在此模式下,只有活动服务器处理客户端请求。SQL Server 的一个实例安装在两个服务器系统上。在此模式下,群集中的第二台服务器配置为被动节点,仅在第一台服务器发生故障时才会变为活动节点。请注意,此模式仅需要一个 SQL Server 许可证。
主动/主动模式 (Active/Active mode):在此模式下,两台服务器都会处理客户端请求。MSCS 随机选择一台服务器来处理客户端请求。如果任何一个活动节点发生故障,其资源将被移交给另一个活动节点。配置此模式需要每台服务器一个 SQL Server 许可证。
SQL Server 实例
您可以在一台计算机上运行多个 SQL Server 2000 实例,这使得群集配置更有趣。如果您的组织有大量应用程序在服务器上运行,或者您的应用程序有多个数据库,您可以在一台计算机上安装多个 SQL Server 2000 实例。如前所述,在主动/被动模式下,SQL Server 的活动实例由单个服务器节点拥有。多实例服务器群集最多可以拥有 16 个 SQL Server 实例,并且在其中一个实例发生故障时,其他实例仍能为应用程序提供服务。