SQL2005, 双机群集
本帖最后由 skagon 于 2010-1-8 09:18 编辑
Windows2003+SQL2005 双机群集Cluster部署手册
原创:skagon 2009-10-31
一、 先准备安装好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 故障转移群集。
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
二、 安装MSDTC 事务管理器
2.1、勾选DTC组件
在第一台节点上(最好是每个节点都勾选此组件),,打开“控制面板” -“添加删除程序”。如图,添加“启用网络 DTC 访问”,然后重新启动计算机(虽然微软文档说重启MSDTC以及消息队列
服务)。
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
关于 MSDTC服务,Windows2003系统默认安装,启动类型为自动。
部署好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
因篇幅问题不能全部显示,请点此查看更多更全内容