SQLServer2019+AlwaysOn+WSFC+高可用
- 1 环境准备
- 2 部署规划
- 3 安装步骤
- 4 安装DNS+AD
- 1)安装DNS
- 2)安装AD
- 3)DNS与AD安装结果验证
- 4)创建域用户以及sql-node节点加入域控
- 5 安装WSFC
- 1)安装故障转移集群
- 2)验证配置
- 3)创建wsfc
- 4)查看验证群集创建
- 5)集群配置
- 6 安装SQLServer2019
- 1)SQLServer 2019安装
- 2)配置SQLServer以域帐户运行
- 3)授权域账户相关权限
- 7 配置AlwaysOn可用性组
- 1)配置开启AlwaysOn
- 2)新建AlwaysOn可用性组
- 8 确认和验证
- 1)数据库验证
- 2)WSFC故障转移集群验证
- 3)AlwaysOn可用性面板验证
- 4)域控制器验证
- 5)功能验证
- 9 参考
近期项目中使用
SQLServer2019与WSFC构建SQLServer2019高可用集群,借此机会与参考一些前辈相关资料的前提下,构建环境进行整个集群的搭建,在此记录下整个过程,以供后来者借鉴参考学习与相互探讨。
Windows Server 故障转移群集(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性。WSFC提供了各种基础结构功能来支持所承载的服务器应用程序(如 Microsoft SQL Server 和 Microsoft Exchange)的高可用性和灾难恢复方案。 如果一个群集节点或服务失败,则该节点上承载的服务可通过“故障转移”的过程自动或手动转移到另一个可用节点。
AlwaysOn 可用性组和 AlwaysOn 故障转移群集实例将 WSFC 用作一种平台技术,将组件注册为 WSFC 群集资源。相关的资源将合并为一个“资源组”,这些资源可能依赖于其他 WSFC 群集资源。这样,WSFC 群集服务就可以感测并标明是否需要重新启动 SQL Server 实例,或自动将其故障转移到 WSFC 群集中的不同服务器节点上。
“可用性组”是一组共同实现故障转移的用户数据库。一个可用性组包含一个主"可用性副本"和一至四个辅助副本,这些副本通过基于 SQL Server 日志的数据移动来实现数据保护以进行维护,无需共享存储。每个副本均由 WSFC 群集的不同节点上的 SQL Server 实例承载。可用性组和相应的虚拟网络名称注册为 WSFC 群集中的资源。
1 环境准备
VMWare 14 Pro
windows_server_2019
SQLServer 2019
2 部署规划
三台机器: DNS+AD、SQLnode01、SQLnode2、SQLnode3
服务名称 | IP | 部署服务 |
SQL-SERVER | 192.168.65.42 | DNS+AD |
SQL-NODE1 | 192.168.65.44 | Sqlserver2019 |
SQL-NODE2 | 192.168.65.43 | Sqlserver2019 |
SQL-NODE3 | 192.168.65.45 | Sqlserver2019 |
服务名称 | 描述 | VIP-Cluster | Sql AlwaysOn VIP |
SQL-NODE1 | 集群节点1 | 192.168.65.100/24 | 192.168.65.101/24 |
SQL-NODE2 | 集群节点2 | ||
SQL-NODE3 | 集群节点3 |
3 安装步骤
1)DNS+AD ==》2)WSFC安装 ==》 3)SQLServer安装 ==》 4)配置alwaysOn ==》5)测试验证
4 安装DNS+AD
1)安装DNS
设置静态IP和首选DNS服务器ip为本机127.0.0.1
进入服务器管理器开始安装DNS,添加角色和功能。
进入添加角色和功能向导。
下一步
下一步
下一步,选择DNS服务器
下一步
下一步
下一步
选择 如果需要,自动重新启动目标服务器,安装
安装进行中
安装完成,关闭。
2)安装AD
服务管理器 ==》添加角色和功能向导 ==》选择服务器角色
选择Active Directory 域服务,下一步
下一步,选择 如果需要,自动重新启动目标服务器
安装,显示安装进度
安装成功
选择,将此服务器提升为域控制器
域控制器配置,添加新林,设置根域名
选择 域名系统(DNS)服务器,全局编录(GC),安装
忽略提示,下一步
下一步
下一步,默认文件夹地址
下一步
先决条件检查,安装
安装 进入 安装过程
配置成功,重启系统
3)DNS与AD安装结果验证
检查AD状态
DNS检查,DNS管理器
首先检查域控制器是否已经将其主机名与 IP 地址注册到 DNS 服务器内,本域控制器也扮演DNS服务器,则进入DNS中查看,此处应该会有一个名称为shy.com 的区域,主机(A)记录表示域控制器win-ea9jlj4pct2.shy.com 已经正确地将其主机名与 IP 地址注册到 DNS 服务器内。DNS 客户端所提出的请求大多是正向解析,即通过 hostname 来解析 IP 地址对应与此处的正向查找区域;通过 IP 来查找 hostname 即为反向解析,对应于此处的反向查找区域。
如果域控制器已经正确地将其扮演的角色注册到 DNS 服务器,则还应该有对应的 _tcp、_udp 等文件夹。在单击 _tcp 文件夹后可以看到如下所示的界面,其中数据类型为服务位置(SRV)的 _ldap 记录,表示 win-ea9jlj4pct2.shy.com 已经正确地注册为域控制器。其中的 _gc 记录还可以看出全局编录服务器的角色也是由 win-ea9jlj4pct2.shy.com 扮演的。
4)创建域用户以及sql-node节点加入域控
服务器管理器 ==》 工具 ==》Active Directory用户和计算机
域 ==》 右键新建 ==》 用户
录入用户信息
录入密码
完成,创建成功
右键 ==》属性 ==》更改隶属组
依次创建sql-node2,sql-node3
sql-node节点电脑加入域控
调整IP地址设置,设置静态IP以及首选DNS服务器ip地址为DNS的ip.
高级 -> DNS -> 此连接的 dns 后缀,添加域控的完整名称。
计算机右键 -> 属性 -> 高级系统设置 -> 计算机名 -> 更改
修改计算机名sql-node1,修改隶属于域:shy.com
点确定之后弹出一个输入在域控中建立的用户的用户名和密码。
添加域用户为管理员属性
使用本地用户Administrator登录后
服务器管理器 ==》 工具 ==》计算机管理
右键属性
添加
注销本地administrator,使用sql-node1@shy.com用户登录,确认已具有管理员权限。
5 安装WSFC
四种集群的仲裁配置:
多数节点:此配置不会用到仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供服务,否则就停止服务。这种配置适用于奇数节点的集群,例如5个节点的集群,其正常节点数量必须至少3个,集群才会提供服务。
多数节点和磁盘:适用于偶数节点的集群,他在计算法定数量时会将仲裁磁盘计算进来,例如,4个节点+1个仲裁磁盘节点的集群,可以将其视为5个节点的集群,这时正常节点数量必须至少3个,集群才会提供服务。
多数节点和文件共享:它和(多数节点和磁盘)类似,不过仲裁磁盘改为共享文件夹内的文件。
没有多数:只有磁盘,只要仲裁磁盘脱机,集群就会停止提供服务(不建议使用)。
注意:域控不需要安装故障转移集群服务和SQL Server,也不需要加入到故障转移集群;
SQL Server 2012 AlwaysOn只支持最多一个主副本和四个辅助副本,最多允许三个同步提交的可用性副本(包括主副本),最多允许两个自动故障转移副本(包括主副本)。
需要在sql-node1、sql-node2、sql-node3节点同时安装,同时需保证账户在三个节点都拥有管理员权限。
1)安装故障转移集群
服务管理器 ==》添加角色和功能向导 ==》选择服务器角色 ==》功能,选择故障转移集群
下一步
安装完成,关闭。
2)验证配置
服务器管理 ==》 工具 ==》 故障转移群集管理器,创建群集之前建议验证一次所有配置
选择验证配置,进入验证配置向导,下一步
浏览 ==》 高级 ==》查找,选择sql-node1、sql-node2、sql-node3三个节点
在验证配置向导中最好选择运行所有测试,进行全部检测就可以查看到服务器之间建立群集的所有设置,包括网络、共享磁盘、操作系统等。
下一步
下一步,验证中
注意:测试需要一定时间,测试完毕后建议查看报告,报告中可详细查看具体的告警项,对于存储的警告,由于当前没有添加任何的存储设备,可忽略。对于网络警告,由于各个节点只有一个网卡(心跳和业务共用),可忽略。
完成
3)创建wsfc
服务器管理 ==》 工具 ==》 故障转移群集管理器,创建群集
输入群集名称
注意:此IP为集群的管理名称和管理IP,跟AlwaysOn无关。
由于我们当前还没有任何存储,所以不勾选将所有符合条件的存储添加到群集。
下一步
创建成功,完成。
4)查看验证群集创建
服务器 ==》 开始 ==》windows管理工具 ==》故障转移群集管理器
域控进行查看
5)集群配置
集群仲裁配置
进入配置向导
下一步,选择高级仲裁配置
选择所有节点
不配置仲裁见证
提示:对于本环境3个群集节点的情况,不需要仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供服务,否则就停止服务。这种配置适用于奇数节点的集群,例如5个节点的集群,其正常节点数量必须至少3个,集群才会提供服务。
下一步,配置完成
6 安装SQLServer2019
注意:安装SQLServer 2012建议临时将DNS改为外网DNS,可以修改成默认DNS配置,安装过程需要更新相关补丁;
服务器配置,保持默认,安装完毕后修改为域账号即可;
同时建议使用本地用户Administrator登录这三个集群节点进行安装,不要用域用户sql-node登录,如果一开始使用域用户sql-node登录集群节点机器,在安装SQL Server的过程中SQL Server安装程序会连接故障转移集群,但是实际上单机安装SQL Server不需要连接故障转移集群,其他操作一样。
1)SQLServer 2019安装
双击iso ==》setup
进入安装向导
下一步
下一步,接受协议
根据需要选择相关选项
下一步
选择混合模式,输入系统账户密码,选择当前系统账户
添加当前系统用户
默认,下一步
默认,下一步
选择当前系统用户
准备安装
安装进行中
安装成功
安装SSMS,下载
右键,管理员身份运行,安装
安装
重新启动,即完成安装
2)配置SQLServer以域帐户运行
注销Administrator登录,使用域账户重新登录系统,打开SQL Server 配置管理器,修改SQL Server实例的属性,将登录身份改为“shy\sql-node1”。修改之后,重启SQL Server实例。
服务器 ==》 开始 ==》Microsoft SQL Server 2019 ==》SQL Server 2019 Configuration Manager
更换账户查找位置为域控目录
选择域控账户
同样步骤,更新SQL Server Agent(MSSQLSERVER)登录账户为域控账户;
3)授权域账户相关权限
授予域账号sysadmin角色;
使用sa账户登录;
安全性 ==》登录名 ==》右键 新建登录名
搜索 ==》查找位置 ==》域控目录
输入并检查名称
服务器角色 ==》选择public和sysadmin
7 配置AlwaysOn可用性组
1)配置开启AlwaysOn
进入SQL Server配置管理器,SQL Server服务开启AlwaysOn高可用性。
重启服务
AlwaysOn启用成功,在服务器属性里HADR状态置为True。
在集群任意节点的SQL Server中验证各节点的投票数,命令如下:
SELECT * FROM sys.dm_hadr_cluster_members;
SELECT * FROM sys.dm_hadr_cluster;
2)新建AlwaysOn可用性组
进入新建可用性组向导
下一步
输入可用性组名称
根据不同数据库状态进行不同的设置
设置完整恢复模式
数据库 ==》右键 属性 ==》选项 ==》恢复模式 ==》完整
完整备份
刷新后,满足先决条件,下一步;
注意:加入到AlwaysOn可用性组的数据库必须符合下面要求
数据库的恢复模式必须是“完整”恢复模式
数据库已进行了一次完整备份
使用添加副本来将其他节点添加到可用性组中,设置为可读,并选择自动故障转移节点和同步提交节点。
副本,添加sql-node2、sql-node3副本,设置自动故障转移、可用性模式、可读辅助副本
端点和备份首选项默认即可。
提示:端点URL也可使用IP的方式,若服务器存在多个网卡(业务和心跳分开),使用FQDN长名的方式可能不能保证端点数据通过心跳网卡来传送。
配置侦听器,参考如下:
选择数据同步,根据sqlserver各个节点数据库同步情况,选择不同选项。
确认相关验证。
点击“下一步”来检查并确认之前的配置信息,若无误,点击“完成”。同时也可保存建立可用性组脚本,以便分步诊断故障之用。
可用性组创建完成。
8 确认和验证
1)数据库验证
数据库处于已同步状态;
查看辅助副本,辅助副本是可读的,在主副本上对MDB数据库做的更改都能同步到辅助副本上的MDB库。
2)WSFC故障转移集群验证
管理工具 ==》 故障转移群集管理器
可用性组成为一个集群角色。
3)AlwaysOn可用性面板验证
AlwaysOn高可用性 ==》 右键显示面板
4)域控制器验证
服务管理器 ==》工具 ==》 Active Directory用户和计算机管理
5)功能验证
任意节点通过侦听器地址:192.168.65.101登录数据库。
登录成功则表示AliwaysOn可用性组配置成功。