摘要:
本文主要阐述如何实现SQL Server双节点群集高可用性部署实施,通过微软MSCS技术使SQL Server达到企业级安全应用要求。另外 ,本文介绍SQL Server 2005中新增的镜像服务功能,相比MSCS SQL Server 群集,SQL Server数据库镜像是基于软件的高可用性解决方案。


1. 概述
本方案目标是通过微软MSCS技术使SQLServer达到企业级应用要求,内容包含双节点主动/被动模式群集和主动/主动模式群集。另外 ,本文介绍SQL Server 2005中新增的镜像服务功能,相比MSCS SQL Server 群集,SQL Server数据库镜像是基于软件的高可用性解决方案。


2. 架构设计
本实施方案使用3台服务器实现双节点主动/主动模式SQL Server 2005群集。使用的SQL Server 版本为SQL Server 2005 Enterprice Edition。

2.1.服务器信息
以下清单描述服务器的基本信息,同时包含虚拟服务器的基本设置。
计算机名称 IP 说明 备注
Contoso-DC 192.168.0.1 域控制器
Contoso-SQLND1 192.168.0.2 SQL Server群集节点1 
Contoso-SQLND2 192.168.0.3 SQL Server群集节点2 
SQLCluster 192.168.0.6 SQL Server群集虚拟IP Virtual
SQLCluster-DTC 192.168.0.7 SQL Server群集DTC虚拟IP Virtual
SQLCluster-SQL1 192.168.0.8 第一个SQL Server虚拟服务器 Virtual
SQLCluster-SQL2 192.168.0.9 第二个SQL Server虚拟服务器 Virtual

一些服务器未包含在以上清单表中,包括备份域控制器,MOM监控服务器等。
 

2.2.系统架构
整个系统架构主要分为三部分,“数据物理存储”,“数据服务”以及“域控制器”,在每个部分分别实现高可用性。
 

数据物理存储
在数据持久性存储方面采用区域网络存储(SAN),实现数据安全和高可用性。
 

数据服务
数据服务包含两台数据库服务器,通过主机总线适配器(HBA)高速访问SAN。在两台服务器上安装SQL Server 2005 Enterprice Edition,实现主动/主动模式群集。使用主动/主动模式群集虽然能够充分利用硬件资源,但是需要考虑最坏的情况,即只有一个节点可用的情况下该节点是否能承受服务负荷。
 

域控制器
由于整个平台实现基于域环境,因此使用两台服务器实现主域控制器和备份域控制器。
对于SQL Server 的双节点群集实现可以有两种方式,

(图1)

(图2)

对于主动/被动模式,只有一台群集虚拟服务器可以访问,在某一时间只有一台物理服务器进行工作,在该物理服务器出故障时,MSCS自动实现切换,虚拟服务器转移到另一台物理服务器。如果采用主动/主动模式对数据库服务器进行群集后会有两台虚拟数据库服务器,如果群集中的某一个节点出现故作,MSCS控制故障转移,这使另一个正常的节点需要承受两个节点的服务。
下图显示了服务器的物理架构部署,

(图3)

 

3. 基础环境
对于基础环境的配置,如果没有了解过群集的相关基础知识,在安装共享磁盘和配置网络的过程中可能会遇到一些问题,建议先了解一下有关方面的知识。本文的附录包含了“共享磁盘安装”的简单介绍。
 

3.1.基础硬件
一台域控服务器
需要符合域控制器安装条件。
二台SQL Server服务器
由于SQL Server采用主动/主动方式进行群集,除了各自的系统盘外,至少需要4个共享磁盘,一个用于群集仲裁,一个用于DTC,另外两个用于SQL Server虚拟服务器。
群集仲裁:盘符设置为“Q”,卷标设置为“Quorum”。设置容量为800MB。
DTC:盘符设置为“D”, 卷标设置为“MSDTC”。容量为600MB。
SQL Server虚拟服务器1数据盘:盘符设置为“R”,卷标设置为“SQLData1”。
SQL Server虚拟服务器2数据盘:盘符设置为“S”,卷标设置为“SQLData2”。
每台SQL Server服务器需要有两块网络适配器,一块用于数据传输,设置名称为“Public”,另一块用于群集节点间的心跳检测,设置名称为“Heartbeat”。关于心跳网络的配置可参考本文附录。
 

3.2.基础软件
服务器操作系统均使用Windows Server 2003 Enterprise Edition with SP2。
二台SQL Server服务器依次安装Internet信息服务6.0、分布式事务处理协调器(MSDTC)、Microsoft .NET Framework 2.0以及SQL Server2005客户端组件。
 

3.2.1. 分布式事务处理协调器的安装
在多计算机环境中安装和配置 SQL Server 2005 之前,必须在要安装 SQL Server 2005 的每台计算机上启用网络 DTC 访问和网络 COM+ 访问。
以下过程在 Windows Server 2003 上启用网络 DTC 访问和网络 COM+ 访问。
1. 单击“开始”,指向“控制面板”,然后单击“添加或删除程序”。
2. 单击“添加/删除 Windows 组件”。
3. 选择“应用程序服务器”,然后单击“详细信息”。
4. 选择“启用网络 DTC 访问”和“启用网络 COM+ 访问”,然后单击“确定”。
5. 单击“下一步”。
6. 单击“完成”。
7. 停止然后重新启动分布式事务处理协调器服务。
8. 停止然后重新启动 Microsoft SQL Server 和其他参与分布式事务的资源管理器服务,例如 Microsoft 消息队列。
 
•. 群集中的SQL Server 节点都必须应用同一远程过程调用 (RPC) 身份验证级别。当计算机运行于不同操作系统,加入工作组或者位于互不信任的各个域中时,DTC 代理不能正确验证 DTC。有关详细信息,请访问http://go.microsoft.com/fwlink/?LinkId=54805
•. 如果有防火墙,必须打开DTC和RPC所需的端口。有关详细信息,请访问http://go.microsoft.com/fwlink/?LinkId=61914
•. 若要确保DTC设置正确,可使用以下DTC测试工具:
•. DTC Tester。可以从http://go.microsoft.com/fwlink/?LinkId=61913  下载
•. DTC Ping。可以从http://go.microsoft.com/fwlink/?LinkId=61915  下载。
 

3.2.2. Internet 信息服务 6.0安装
在下面的过程中,将安装 Internet 信息服务 6.0。
1. 单击“开始”,指向“控制面板”,然后单击“添加或删除程序”。
2. 在“添加或删除程序”对话框中,单击“添加/删除 Windows 组件”。
3. 在“Windows 组件向导”中,选择“应用程序服务器”,然后单击“详细信息”。
4. 选择“ASP.NET”和“Internet 信息服务(IIS)”,单击“确定”,然后单击“下一步”。
5. 在“完成 Windows 组件向导”页上,单击“完成”。
6. 关闭“添加或删除程序”对话框。
 
注意 SQL Server 2005的一些组件需要用到Internet 信息服务。


3.2.3. 安装 SQL Server 2005 客户端工具
如果在基础环境中没有安装 SQL Server20005 客户端工具。在下面的过程中,将安装 SQL Server 2005 客户端工具。
1. 将 SQL Server 2005 安装盘插入 DVD-ROM 驱动器。浏览到“Tools”文件夹,然后双击“setup.exe”。
2. 在“最终用户许可协议”页上,接受许可协议,然后单击“下一步”。
注意   如果系统中缺少某些必需组件,SQL Server 2005 组件更新程序可能会安装这些组件。
3. 在“安装必备组件”页上,单击“下一步”。
4. 在“欢迎使用 Microsoft SQL Server 安装向导”页上,单击“下一步”。
5. 在“系统配置检查”页上,确保没有错误,然后再单击“下一步”继续。
6. 在“注册信息”页上,单击“下一步”。
7. 在“功能选择”页上的“客户端组件”下,右键单击下列组件,然后为这些功能选择“将安装到本地硬盘上”。完成后,单击“下一步”。
•   连接组件
•   管理工具
•   SQLXML 客户端功能
•   早期组件
8. 在“错误和使用情况报告设置”页上,保留默认设置的值,然后单击“下一步”。
9. 在“准备安装”页上,检查信息,然后单击“安装”。
10. 在“安装进度”页上,安装完成后,单击“下一步”。
11. 在“完成 Microsoft SQL Server 2005 安装”页上,单击“完成”。


注意 SQL Server 2005的安装的时候可以一起安装客户端工具。

 

4. 部署域控制器
这里只介绍主域控制器和DNS的配置过程。在安装 Windows Server 2003 时,请使用以下参数:
参数 值 备注
计算机名称 Contoso-DC 
IP地址 192.168.0.1 
子网掩码 255.255.255.0
首先DNS服务器 192.168.0.1 

在安装域控制器的服务器上完成Windows系统安装后,必须使用管理员身份来进行其他操作。
 

4.1.升级域控制器
在下面的过程中,将把计算机升级为Contoso.com的域控制器。
1. 单击“开始”,指向“运行”,在“运行”对话框中输入“dcpromo”,然后按Enter。
2. 在“欢迎使用 Active Directory 安装向导”页上,单击“下一步”。
3. 在“操作系统兼容性”页上,单击“下一步”。
4. 在“域控制器类型”页上,选中“新域的域控制器”,然后单击“下一步”。
5. 在“创建一个新域”页上,选中“在新林中的域”,然后单击“下一步”。
6. 在“新的域名”页的“新域的 DNS 全名”中输入 Contoso.com,然后单击“下一步”。
7. 在“NetBIOS 域名”页中,将“域 NetBIOS 名”保留为 CONTOSO,然后单击“下一步”。
8. 在“数据库和日志文件文件夹”页上,单击“下一步”。
9. 在“共享的系统卷”页上,单击“下一步”。
10. 在“DNS 注册诊断”页上,选中“在这台计算机上安装并配置 DNS 服务器,并将这台 DNS 服务器设为这台计算机的首选 DNS 服务器”,然后单击“下一步”。
11. 在“权限”页上,选中“只与 Windows 2000 或 Windows Server 2003 操作系统兼容的权限”,然后单击“下一步”。
12. 在“目录服务还原模式的管理员密码”页上的“还原模式密码”中输入一个密码,确认此密码,然后单击“下一步”。
13. 在“摘要”页上,单击“下一步”。
14. 在“正在完成 Active Directory 安装向导”页上,单击“完成”,结束将计算机升级为域控制器的过程。
15. 单击“立即重新启动”,重新启动计算机。

 

4.2.创建群集服务帐户和域组
在下面的过程中,将为 SQL Server 群集创建群集服务帐户。
1. 单击“开始”,依次指向“所有程序”、“管理工具”,然后单击“Active Directory 和计算机”。
2. 在“Active Directory 用户和计算机”MMC 中,展开“contoso.com”。
3. 右键单击“用户”,选择“新建”,然后选择“用户”。在“全名”字段中,键入“群集管理员”。
4. 在“用户登录名”字段中,键入 ClusterAdm,然后单击“下一步”。
5. 输入帐户密码,然后单击“下一步”。
6. 单击“完成”,创建群集服务帐户。


在下面的过程中,将创建SQL Server Cluster Administrators组,用于在后面的阶段中配置 SQL Server 2005。
1. 在 Contoso-DC 上,单击“开始”,依次指向“所有程序”、“管理工具”,然后单击“Active Directory 用户和计算机”。
2. 展开“contoso.com”,右键单击“用户”,指向“新建”,然后单击“组”。
3. 在“组名”字段中,键入 SQL Server Cluster Administrators。在“组作用域”中选择“全局”。在“组类型”中选择“安全”。单击“确定”。

注意   在二台SQL Server服务器上添加Contoso\ClusterAdm群集服务帐户到本地管理员组。

 

5. SQL Server群集
在下面的过程中,将对两台SQL Server服务器实现主动/主动模式群集。
在第一台计算机上安装 Windows Server 2003 时,请使用以下参数:
参数 值 备注
计算机名称 Contoso-SQLND1 
域 Contoso
IP地址
子网掩码
首选DNS服务器
192.168.0.2
255.255.255.0
192.168.0.1

心跳IP地址
子网掩码 192.168.200.1
255.255.255.252 

 

在第二台计算机上安装 Windows Server 2003 时,请使用以下参数:
参数 值 备注
计算机名称 Contoso-SQLND2 
域 Contoso 
IP地址
子网掩码
首选DNS服务器 192.168.0.3
255.255.255.0
192.168.0.1 
心跳IP地址
子网掩码 192.168.200.2
255.255.255.252