近期项目中使用 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-SERVER192.168.65.42DNS+AD
SQL-NODE1192.168.65.44Sqlserver2019
SQL-NODE2192.168.65.43Sqlserver2019
SQL-NODE3192.168.65.45Sqlserver2019
服务名称描述 VIP-ClusterSql AlwaysOn VIP
SQL-NODE1集群节点1192.168.65.100/24192.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可用性组配置成功。

9 参考

[1]. https://www.cnblogs.com/itzgr/p/11193824.html
[2]. https://www.cnblogs.com/itzgr/p/11194224.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐