当前位置:首页 > 操作系统 > Windows

在WindowsServer2012R2中搭建SQLServer2012故障转移集群

 

本文讲解下在windows server 2012 r2中搭建sql server 2012故障转移集群的详细过程。

需要说明的是我们搭建的sql server故障转移集群(sql server failover cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服务的性能。

sql server始终在负载均衡集群方面都缺少自己的产品,多由第三方厂家提供,但sql server故障转移集群却由来已久,在sql server 2012还提供了一个可用性组(alwayson high availability groups)的新特性,我们知道微软的故障转移集群(windows server failover clustering , wsfc)一般需要共享存储,sql server故障转移集群也是建立在wsfc的基础之上,可用性组却可以不依赖于共享存储实现sql server的故障转移,这为没有共享存储的环境提供了一个实现sql server高可用的解决方案,关于alwayson特性可以参阅相关文档,这里我们实现的是仍是基于共享存储的包含两个节点的sql server故障转移集群。

一、搭建windows故障转移集群(wsfc)

sql server故障转移集群是基于wsfc的,因而我们需要事先在两个节点中搭建一个wsfc,这里需wsfc仅是一个容器,可以放置多个角色以实现这些角色的故障转移。为搭建一个wsfc,除了需要域环境,还需要在节点,存储,网络等方面做准备。

1、在各节点中添加failover clustering服务器功能。

2、确保各节点操作系统的更新一致,新安装的系统要么更新到最新,要么暂不更新。

3、在各节点中配置管理网络和心跳网络,虽然一个可用网络既可以搭建集群,但是最佳实践还是分开。

4、在各节点中配置共享存储磁盘,初始化并格式化磁盘,分配盘符。这里的共享存储磁盘可以是基于ip san和fc san的磁盘,也可以是基于文件服务器的虚拟磁盘,具体可以参考windows server 2012 虚拟化测试:存储。在节点中可见磁盘如下:

为搭建sql server故障转移集群,至少需要准备两块共享磁盘:集群见证磁盘q、为存储sql server数据库和日志文件准备的集群磁盘s。另外我们需要为sql server的集群实例配置分布式事务协调器(distributed transaction coordinator, dtc),因而需要为dtc准备磁盘m。微软建议将sql server各类文件分开存储,最佳实践需准备两块以上共享磁盘,分别存储user database、backup和user database log文件,这就至少需要另一个集群磁盘l。综上我们对存储做如下配置:

另外值得一提的是到sql server 2014才提供了对集群共享卷的支持,因而这里只能使用集群磁盘。

5、使用failover cluster manager验证并创建集群。完成后的集群磁盘视图如下:

二、安装sql server故障转移集群

windows故障转移集群(wsfc)搭建成功后即完成了sql server故障转移集群的基础,接下来我们继续完成sql server部分。先在一个节点上安装sql server failover cluster,然后再另一个节点安装加入集群节点。

sql server集群部分,先通过验证,这里的警告主要是搭建windows故障转移集群存在警告的警告,升级警告以及防火墙警告,可以继续。

选择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及以后版本才有此项。

  • 使用映射给sql server实例的dtc实例,使用命令msdtc可以为sql server实例映射dtc实例。


  • 【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!