Windows2003+SQL2005 双机群集Cluster 部署手册
一、先准备安装好Windows 群集MSCS 先安装好群集服务。步骤请参考论坛其他文章。 可以预安装 Microsoft .NET Framework 2.0
Microsoft 官方文档:
在故障转移群集上安装 SQL Server 2005 之前,请确定是否必须创建 Microsoft 分布式事务处理协调器 (MSDTC) 群集资源。如果只安装数据库引擎,则 MSDTC 群集资源不是必需
的。如果安装数据库引擎、SSIS、Notification Services 或工作站组件,则必须安装 MSDTC。此要求适用于 Windows 2000 和 Windows Server 2003 操作系统。
注意事项:
1、若要减少安装 SQL Server 2005 故障转移群集所需的时间,可以在运行 SQL Server 安装程序之前在所有故障转移群集节点上预安装 Microsoft .NET Framework 2.0 版。 2、SQL Server 安装程序要求 SQL Server IP 接口虚拟引用注册动态域名服务 (DDNS)。如果无法完成动态注册,安装程序将失败,安装将回滚。如果无可用的动态注册,则必须在 DNS 中预注册服务器。
3、群集节点作为域控制器的位置默认不支持 SQL Server 故障转移群集(修改DTC 执行权限 为域管理员组即可)。
二、安装MSDTC 事务管理器
2.1、勾选DTC 组件
在第一台节点上(最好是每个节点都勾选此组件),,打开“控制面板” -“添加删除程序”。如图,添加“启用网络 DTC 访问”,然后重新启动计算机(虽然微软文档说重启MSDTC 以及消息队列服务)。
----------------------------------------------------------------------------------------------------------------------
Windows2003 MSDTC
关于 服务, 系统默认安装,启动类型为自动。
部署好MSCS 群集服务后,“Distributed Transaction Coordinator(MSDTC)”服务启动类型仍 然是自动,但是并没有启动。
2.2、在群集中添加MSDTC 资源
群集资源类型中有“分布式事务协调器(DTC)”,然后添加此类型资源时,需要“共享磁盘” “网络名称”两种资源为依存(其实需要三种,还包括“IP 地址”,因为“网络名称”需要 “IP 地址”为依存)。
微软文档建议,单独新建一个名为 MSDTC GROUP 的资源组,然后分别新建这4 种资源:
MSDTC Physical disk (共享磁盘)
MSDTC IP ADDRESS (IP 地址)
MSDTC NETWORK NAME (网络名称,需要IP 地址为依存)
MSDTC (DTC,需要网络名称和共享磁盘为依存)
2.2.1 使用仲裁盘和群集命名添加MSDTC 资源因为没有多余的共享磁盘可用,只能用仲裁磁盘Q:作为 MSDTC 资源的依存磁盘,然后用群集名称和群集IP 地址分别作为MSDTC 的依存资源。因此,省略新建MSDTC GROUP 资源组这一部。直接将MSDTC 资源建立在群集组即可。
此时,尝试对群集组,进行“移动租”操作。
成功,MSDTC 安装完毕。
安装完毕后,所有节点的“Distributed Transaction Coordinator(MSDTC)”服务的启动类型全 部变成“手动”,而且,只有在拥有MSDTC 资源的那个节点中,该服务是启动状态,其他节点中,该服务未启动。它将由MSCS 群集服务负责启动和停止。 三、安装SQL SERVER 2005 群集
只在一个节点上安装即可。不需要所有节点都安装一遍,因为安装程序会使用当前登陆用户名往其他节点上安装实例。
如果安装时,只选择“SQL Server Database Services”,那么将没有SQL Server Management Studio 工具(连接客户端)可以使用。一般推荐只在一台节点上安装“工作站组件、联机丛书和开发工具”,因为它可以连接所有节点上的SQL Server Database Services。先只勾选“SQL Server Database Services”和“创建SQL Server 故障转移群集”。
因为没有安装IIS 服务,所以Reporting Service 呈现灰色不可安装状态。而且,Reporting Service 本身不支持群集,只支持NLB 负载均衡,因为它本身是基于IIS 的。初次安装SQLSERVER2005,可以不安装“工作站组件、联机丛书和开发工具”,等SQL Server 2005 群集服务工作正常以后再安装也可以。
也可以创建命名实例, SQL SERVER2005 可以在一台服务器上安装多个实例。每个实例对应一个实例名和虚拟服务器名。(会自动往域控制器DNS 中注册)一个实例可以包含多个数据库。
在安装过程中,安装程序会自动往域控制器中注册虚拟服务器的DNS 记录,远程应用也将以虚拟服务器的名字访问数据库。
确保,“组0”中有可以使用的共享磁盘,否则数据库无法安装成功。
使用“Domain Users”组即可。
注明:安装群集服务的帐号,必须具有将SQL SERVER 服务的启动帐号(services.msc中看)加入这个组(这里是Domain User)的权限,如果没有,就应该事先将SQL SERVER 服务的启动帐号加入该组。使用Domain User 最方便。
节点 SQL1 上的安装进度
节点SQL2 上的安装进度
通过在节点SQL2 上查看可以得知,安装程序通过445 端口,管理共享来安装的实例。 C:\\Documents and Settings\\sqlcluster>netstat -n Proto Local Address Foreign Address State
TCP 192.168.10.112:1127 192.168.10.111:445 ESTABLISHED TCP 192.168.10.112:1187 192.168.10.111:135 ESTABLISHED
四、配置远程访问功能 SQL SERVER 2005 默认只支持连接本机,但是架设群集服务以后,所有节点本机都不能提供远程访问功能。只能由 SQL IP ADDRESS 以及 SQL Network Name 等群集资源提供远程访问。所以,需要对SQL SERVER 2005 进行一定的配置。
五、测试 C:\\>sqlcmd -S sql2005 -U sa -P Password12
1> use master;
2> go
已将数据库上下文更改为 'master'。
1> select * from sys.databases
2> go
然后使用“移动组”,将资源转移到另外一个节点,重复此步骤。
六、安装SQL 2005 客户端连接工具
安装 SQL Sserver Management Studio
这里以实例的虚拟机器名来访问数据库服务器。
对应的IP 地址,就是SQL IP ADDRESS,使用IP 地址 192.168.10.116 也可以连接。 但是以节点自身名称、或者IP 地址将无法访问。
七、附录案例:域控制器宕机域控制器宕机了,对SQL 2005 群集有巨大影响,如图首先群集管理器打不开群集节点,因为群集的名字无法通过域控制器解析。已经正常启用的SQLSERVER2005 节点虽然可以提供服务,但是无法切换资源到其他节点。
通过IP 地址可以打开群集管理器:
但是对MSCS 没有影响,使用MSCS 甚至可以各个节点切换资源,只是速度偏慢:
此时可以添加host 记录,就可以正常打开群集管理器:
在两台节点或者多台节点上,添加节点、群集名、SQL 群集名的NetBIOS、FQDN 的HOSTS 记录,然后重启各服务器,可以打开群集管理器,如图:
192.168.10.111 SQL1
192.168.10.111 SQL1.SKAGON.COM 192.168.10.112 SQL2
192.168.10.112 SQL2.SKAGON.COM 192.168.10.113 SQL
192.168.10.113 SQL.SKAGON.COM 192.168.10.116 SQL2005
192.168.10.116 SQL2005.SKAGON.COM 当切换资源的时候,会变的稍慢,切换“群集组”,没有问题。
切换“SQLSERVER”,变得很慢。
域控制器起来后,再次联机,恢复正常。
节点和域控制器之间的通信192.168.10.5(PDC):
192.168.10.112:1456 192.168.10.5:135 ESTABLISHED 192.168.10.112:1457 192.168.10.5:1025 ESTABLISHED 192.168.10.112:1458 192.168.10.5:135 ESTABLISHED 192.168.10.112:1459 192.168.10.5:1025 ESTABLISHED