选择Database Engine Services和管理组件,注意这里只有Database Engine Services和Analysis Services支持集群,其他服务都不支持。其他组件如需要也可以随后再添加,但是添加其他组建时选择Add features to an existing installation,然后选择Perfom a new installation of SQL Server 2012,而不是Add features to an existing instance of SQL Server 2012,否则最后会出现Existing clustered or cluster-prepared instance的错误,具体参考Installing SQL Integration Services after SQL Cluster Setup has Completed。
配置一个网络名称,类似于计算机名称,今后将通过该名称访问数据库实例。
三、配置DTC和SQL Server 集群
分布式事务协调器(Distributed Transaction Coordinator, DTC)在Windows中是默认安装并运行的服务。DTC的主要目的是为了实现分布式事务,确保跨进程通信的一致性,这里的进程可以是同一计算机中的两个进程,也可以是不同计算机中的进程。因而在微软的世界里,常常看到DTC的身影。
如果只是独立安装SQL Server数据库引擎则无需配置DTC。但是在同时运行SQL Serve集成服务(SQL Server Integration Services, SSIS)或者搭建SQL Sever故障转移集群等需要分布式事务的场景中,则需要配置DTC。不配置DTC并不影响SQL Server集群的安装,但是DTC没能正确配置,SQL Server集群的功能将受到影响。
Windows Server 2008及以后版本在一个Windows集群中可以有多个DTC实例,这些DTC实例可以是集群实例也可以是本地实例(这里“实例”概念的类似于SQL Server数据库引擎实例,是作为操作系统服务运行的,是同一个可执行程序的副本,在Windows集群中运行的各类服务都是以实例的形式存在,这些实例依赖Windows集群实现故障转移),甚至可以为SQL Server集群中每个SQL Server实例配置一个专属的DTC实例。SQL Server集群实例按照如下的是顺序选择DTC实例:
使用SQL Server实例专属的DTC实例,该DTC实例作为SQL Server实例以来的资源,如果DTC实例失败,将造成SQL Server实例的失败。SQL Server 2008及以后版本才有此项。
在服务器管理器菜单工具中选择Component Services或者在使用命令dcomcnfg,启动Component Services,配置MyComputer > Properties > Default Protocols,选择 Connection-oriented TCP/IP 属性,加入端口范围,该设置要求重启计算机。在防火墙中加入同样的端口范围例外(这里应开放TCP端口,且端口范围要足够大,最好有100个以上端口,另外Port range assignment 和Default dynamic port allocation都选择Internet range)。同理在应用程序服务器和集群各节点中作同样配置,需要注意的是在集群节点是非有效状态时,配置可能不可用,需要将SQL Server实例移动到该节点后在配置。更多DTC问题可以查阅Troubleshooting MSDTC issues with the DTCPing tool。
在防火墙中同时开放SQL Server的1433端口和SQL Server Agent的135端口,在SQL Server Management Studio测试连接cloud-pm-sql01是否正常,在Failover Cluster Manager中测试集群是否能够正常实现故障转移,至此SQL Server故障转移集群就搭建完成了。