如何在没有域的环境中搭建AlwaysOn(一)
对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量。
该特性可以使用户不必额外准备一台或者两台(为了避免单点故障)AD域服务器,从而降低了部署的成本;对DBA而言,可以把更多的精力放在数据库上,而不需要去了解AD域的知识,特别是对MySQL和Oracle转型过来的DBA而言,这绝对是一个非常贴心的特性,要知道windows AD 域的复杂度足够用几本书来阐述,尽管在windows server 2016之前部署和运维AlwaysOn时不需要了解和关注AD域的方方面面,但基本的知识也够得上研究一段时间了。
下面我给大家介绍如何在Windows Server 2016中部署AlwaysON,整个过程分了两部分,内容较多,我准备以两篇博客来写
1.搭建故障转移集群;
一.搭建故障转移集群
1.创建集群用户
1.1.在每个节点上创建相同用户名和密码的用户,且把此用户加入到服务器本地管理员组;
说明:考虑到操作系统已自带了administrator,所以此步骤也可以忽略,但为了安全起见,建议还是自建一个集群专用的账户,专号专用,以便日后管理和安全。
1.2.配置注册表
把LocalAccountTokenFilterPolicy的值设置为1,配置方法:
在powershell中执行如下命令:
new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1
配置成功后的截图:
2.安装故障转移功能
在所有的节点上安装故障转移功能:
2.1.打开【服务器管理器】
2.2.点击右上角的【管理】,选择【添加角色和功能】
2.3.按照向导,依次多次点击【下一步】,直到【选择功能】的页面,勾选【故障转移集群】;
说明:在下图截图时我已经安装了【故障转移集群】,所以截图红色框中【故障转移集群】前面已经勾选,且括号内显示已安装,而你在新安装时是没有勾选和已安装的提示的,请知悉。
2.4.连续点击【下一步】,直到完成安装;
2.5.在其他节点上重复步骤1-4;
3.每个节点配置主DNS后缀
3.1.打开系统属性界面;
点击【控制面板】,选择大图标查看方式,然后选择【系统】
3.2.添加主DNS后缀
在每个节点上,点击【更改设置】,在弹出的【系统属性】中选择【更改】,然后在弹出的【计算机名/域更改】的界面中选择【其他】,最后在弹出的【DNS后缀和NetBIOS计算机名】中,增加此计算机的主DNS后缀——如果你的环境中没有DNS服务器,可以用example.com做测试用。
4.名称解析
将各个节点的计算机名和IP配置到DNS服务器中(也就是A记录),如果没有DNS服务器,则把各个节点的计算机名和IP配置到hosts文件中,
配置hosts的方法:
打开每个节点的C:\Windows\System32\drivers\etc\hosts,将所有节点的服务器名字和对应的IP写到hosts文件中,如:
5.创建集群
说明:只需在任意一个节点上执行即可。
New-Cluster –Name MyWGCluster -Node WIN-SRCOJDGEQ3I,WIN-JBRHIAJPMG2 -AdministrativeAccessPoint DNS -StaticAddress 10.5.103.217
参数说明:
–Name:集群的名字
-Node:节点,多个节点用英文逗号分隔
-StaticAddress:集群的公共IP
创建过程的截图:
6.配置仲裁
基于工作组搭建的集群目前还不支持文件共享的方式做仲裁,官方建议使用磁盘做仲裁或者云见证。我这次验证的时候因为没有条件,所以就没有做仲裁了,在实际生产环境中,请大家利用故障转移集群管理器创建仲裁。
FAQ
1.搭建故障转移集群后,集群一直报错,提示注册DNS名称失败。
有两个原因会导致这个问题:
1.1 在集群搭建时,修改主机名、创建集群网络名称都会尝试到网卡中配置的DNS服务器上注册A记录,以便实现主机名、集群网络名称的IP解析,但当DNS服务器与集群在不同的域中时,注册就会因为DNS权限配置问题而失败,解决办法是修改DNS服务器的配置,允许“非安全”的动态更新:
1.2 集群配置时用的hosts文件做的主机名和集群名的IP解析,没有用到DNS服务器,所以当节点尝试通过网卡中配置的DNS服务器去解析集群的网络名称时,会提示找不到。
下一节将为大家介绍SQL Server AlwaysOn的搭建过程,敬请留意,谢谢。