前言
最近正好给客户安装部署无域控的Always On 。详细说明下安装部署的细节和碰到的坑.欢迎各位同学拍砖和评论,有什么问题都可以在下面留言。
什么是Always On
SQL Server 2012 引入了高可用性组AlwaysOn,用来代替数据库镜像(SQL Server 2005 SP1开始支持的),但是它有一个巨大的局限性:承载副本的节点必须是在同一Windows故障转移群集中。Windows故障转移群集中的安装部署又需要域控。这台域控必须是单独一台或者两台(主备)服务器。这无形中增加了投入的成本。而且对于不熟悉域控的人来说,域控可以说是非常麻烦。出现问题的时候很难排查。好消息是,从Windows Server 2016 开始我们就在需要域控了。在SQL Server 2016之前,高可用性组只能在SQL Server企业版的才能使用。与数据库镜像相比,这是另一个缺点(因为即使在标准版中也有同步镜像)。在SQL Server 2016中,Microsoft现在为SQL Server的标准版提供了基本可用性组,它提供了与数据库镜像相同的功能:
只有2个副本
同步提交
每个可用性组1个数据库
没有可读的副本
使用SQL Server 2016和Windows Server 2016,Always On可以真正的替代数据库镜像,该技术也适用于SQL
Server的标准版。好了,前面的大多都是废话,不多说,开整。
环境准备
(由于客户的真实环境不好截图,我这里的截图,都是使用的本地的截图,但是环境都是一样的)
2台数据库服务器 192.168.1.57 192.168.1.59
操作系统版本
数据库版本
安装WSFC (Windows 故障转移集群)
打开服务器管理器
添加角色和功能
一直点下一步,,直到下面这个界面:
然后点下一步,安装,然后重启服务器。完成安装。到这来故障转移集群功能安装完成。
添加主DNS后缀
为了能够创建无域控的Windows群集,必须在两个节点上创建所谓的主DNS后缀。 在我的情况下,我选择了两个节点上的DNS后缀brsh.com。
点击--》更改设置
点击其他--》添加主DNS后缀。
以上,添加DNS后缀就完成了。
网络名称互通
两台服务器直接通过,FQDN(完全合格域名 )能相互ping 同。我的服务器FQDN就是如下2个名字。
WIN-UE57.brsh.com WIN-UE59.brsh.com
因为我们没有配置DNS服务器,为了保证能够ping通,因此我们需要在HOSTS文件中做个解析(存储在c:\ windows \ system32 \ drivers \ etc)中。如果FQDN无法解析,则无法创建Windows群集。详细见:遇到的错误二
创建WSFC
或者可以使用power shell 运行下面的命令来安装。只需要在一台机器上面运行就可以
New-Cluster –Name MyCluster -Node WIN-UE57,WIN-UE59 -AdministrativeAccessPoint DNS -StaticAddress 192.168.1.56
参数说明:
–Name:集群的名字
-Node:节点,多个节点用英文逗号分隔
-StaticAddress:集群的公共IP
关于仲裁
遇到的错误一
在我安装部署时遇到了下面的错误,集群的名称显示失败。
同时在事件查看器会提示:
根据资源和角色的失败策略,群集服务可能会尝试使资源在此节点上联机,或将组移到群集的其他节点中,然后重新启动它。请使用故障转移群集管理器或 Get-ClusterResource Windows PowerShell cmdlet 检查资源和组状态。
出现这个问题就是主DNS后缀没有配置或者配置的有问题.
遇到的错误二
在添加故障转移集群的时候提示:无法访问计算机(59的计算机名称)
这个问题的原因就是没有做hosts解析。两边网络无法正常通信