合 在Windows非域环境中安装使用MSSQL 2016 Always On Availability Group
Tags: MSSQL高可用Always OnAvailability Group可用性组非域环境
对DBA而言,不需要域就可以搭建SQL Server AlwaysOn是Windows Server 2016中最令人兴奋的功能了,它不仅可以降低搭建的成本,而且还减少了部署和运维的工作量。该特性可以使用户不必额外准备一台或者两台(为了避免单点故障)AD域服务器,从而降低了部署的成本;对DBA而言,可以把更多的精力放在数据库上,而不需要去了解AD域的知识,特别是对MySQL和Oracle转型过来的DBA而言,这绝对是一个非常贴心的特性。
Windows Server 2016可以配置无域的Windows群集,因此也能够以此来配置无域的SQL Server AlwaysOn 高可用。
- 搭建MSSQL 2008R2高可用之发布订阅(数据库复制):https://www.dbaup.com/dajianmssql-2008r2gaokeyongzhifabudingyueshujukufuzhi.html
- 搭建MSSQL 2008R2高可用之日志传输(Log Shipping):https://www.dbaup.com/dajianmssql-2008r2gaokeyongzhirizhichuanshulog-shipping.html
- 在非域环境下搭建MSSQL 2016高可用之镜像传输:https://www.dbaup.com/zaifeiyuhuanjingxiadajianmssql-2016gaokeyongzhijingxiangchuanshu.html
架构
操作系统:Windows Server 2016 数据中心版 64位简体中文
数据库:SQL Server 2016
节点1:mssql101.lhr.com,192.168.0.101
节点2:mssql102.lhr.com,192.168.0.102
节点3:mssql103.lhr.com,192.168.0.103
虚拟IP包括:
- OS集群故障转移VIP:192.168.0.105
- SQL always on VIP(侦听器IP):192.168.0.106
非域搭建Alwayson只是省去搭建域控那一部分,其他大同小异。
通用配置
重新生成Windows使用SID
打开克隆完的虚拟机:C:\windows\System32\Sysprep\Sysprep.exe
勾选“通用”选项即可。
关闭防火墙
关闭3台机器的防火墙。
firewall.cpl 和 wf.msc 防火墙设置
关闭自动更新
显示桌面图标
1 | rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0 |
修改IP
每个节点的计算机不需要加入域,但需要添加DNS后缀,且每个节点的后缀必须要相同
内网网卡:ipv6去掉,禁用TCP/IP上的NetBIOS,设置DNS后缀 lhr.com
其中DNS服务器留空,防止集群转发给DNS服务器注册名称而导致报错
创建账号
所有节点创建相同的帐号、密码,且属于本地Administrators组。
考虑到操作系统已自带了administrator,所以此步骤也可以忽略,但为了安全起见,建议还是自建一个集群专用的账户,专号专用,以便日后管理和安全。
配置注册表
所有节点 打开powershell 输入:
1 | new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1 |
修改主机名
所有节点更改计算机名,加DNS后缀
修改hosts文件
C:\Windows\System32\drivers\etc\
1 2 3 4 5 6 7 8 | 192.168.0.101 mssql101 mssql101.lhr.com 192.168.0.102 mssql102 mssql102.lhr.com 192.168.0.103 mssql103 mssql103.lhr.com 192.168.0.105 LHRSQL LHRSQL.lhr.com 192.168.0.106 AGLSNR AGLSNR.lhr.com |
启用网络发现
控制面板-》网络和 Internet-》网络和共享中心-》高级共享设置-》启用网络发现
云环境绑定虚拟IP
如果你的环境是云环境,那么还需要绑定VIP到相应的云服务器才可以。
安装并配置故障转移集群
所有节点安装故障转移集群,重启机器,建WSFC集群。
也可以使用命令行来创建集群:
1 | New-Cluster –Name LHRSQL -Node mssql101.lhr.com,mssql102.lhr.com,mssql103.lhr.com -AdministrativeAccessPoint DNS -StaticAddress 192.168.0.105 |
参数说明:
–Name:集群的名字
-Node:节点,多个节点用英文逗号分隔
-StaticAddress:集群的公共IP