Windows Server 2022 DataCenter上使用SQL Server 2019搭建高可用集群
一、准备工作
- 准备4台虚拟机,需要安装Windows Server 2022 Data Center的操作系统(特别注意,为了方便,在安装完操作系统后,需要将计算机名称重命名,这一个步骤一定要在安装其它服务和软件之前完成,重命名后,记得重启服务器)。IP以及计算机名称如下表:
计算机名称 | IP | 用途 |
---|---|---|
DC | 192.168.3.31 | DNS服务器以及域控服务器 |
SQLA | 192.168.3.28 | SQLSERVER服务器 |
SQLB | 192.168.3.29 | SQLSERVER服务器 |
SQLC | 192.168.3.30 | SQLSERVER服务器 |
二、安装配置DNS服务
安装DNS服务
在名称为【DC】的计算机上安装DNS服务,其它服务器不需要安装。
DNS服务器配置
三、安装域控服务
安装域控服务
在名称为【DC】的计算器上安装域控服务,其它服务器不需要安装。
将此服务器提升为域控制器,进入域控制器服务向导
添加新林
注意:如果是第一次搭建也是你整个内网中的第一台域控制器,那么需要选择 “添加新林”,第一项是内网中已经存在 AD 环境再想搭建额外域控制器的时候使用的。
设置DSRM密码,默认林中的第一棵域树的根域的域控制器必须担当全局编录服务器和必须安装DNS服务,不能是只读域控制器。
设置"域还原密码",此密码相当的重要,后续做数据库迁移、备份、整理、恢复的时候都可能用到,需要谨记!
创建DNS委派(这一步直接跳过,不勾选)
NetBIOS名称设置(默认不用修改)
AD 域的数据库文件、日志文件和共享文件位置设置页面设置(默认不用修改)
执行安装域控服务
提示:安装完成后,建议重启服务器。
此时,AD 域服务已经安装完成。ADDS域控制器已经安装完成,在完成域控制器的安装后,系统会自动的将该服务器的用户账号转移到 AD 数据库中。
域控制器 DC 会将自己扮演的角色注册到 DNS 服务器内,以便让其他计算机能够通过 DNS 服务器来找到这台域控制器,因此先检查 DNS 服务器内是否已经存在这些记录。
首先检查域控制器是否已经将其主机名与 IP 地址注册到 DNS 服务器内,本域控制器也扮演DNS服务器,则进入DNS中查看,此处应该会有一个名称为 jucheap.com 的区域,主机(A)记录表示域控制器 DC.jucheap.com 已经正确地将其主机名与 IP 地址注册到 DNS 服务器内。DNS 客户端所提出的请求大多是正向解析,即通过 hostname 来解析 IP 地址对应与此处的正向查找区域;通过 IP 来查找 hostname 即为反向解析,对应于此处的反向查找区域。
创建域用户
- 在名称为【DC】的计算机上创建一个名称【sqluser】的域账号。域账号可以只用创建一个,三台SQLSERVER服务器都用这一个账号登录。
- 将sqluser加入到administrators管理组中
四、数据库服务器配置
配置SQLSERVER服务器的IP地址以及DNS
分别在【SQLA】、【SQLB】和【SQLC】服务器上配置静态IP地址192.168.3.28、192.168.3.29、192.168.3.30,如下图:
高级 -> DNS -> 此连接的 dns 后缀,添加域控的完整名称
剩余两台服务器,重复上面两个步骤,如下图
将SQLSERVER的三台服务器加入域控
备注:三台SQLSERVER服务器都需要重复执行下面的步骤
安装故障转移服务
四种集群的仲裁配置:
多数节点:此配置不会用到仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供服务,否则就停止服务。这种配置适用于奇数节点的集群,例如5个节点的集群,其正常节点数量必须至少3个,集群才会提供服务。
多数节点和磁盘:适用于偶数节点的集群,他在计算法定数量时会将仲裁磁盘计算进来,例如,4个节点+1个仲裁磁盘节点的集群,可以将其视为5个节点的集群,这时正常节点数量必须至少3个,集群才会提供服务。
多数节点和文件共享:它和(多数节点和磁盘)类似,不过仲裁磁盘改为共享文件夹内的文件。
没有多数:只有磁盘,只要仲裁磁盘脱机,集群就会停止提供服务(不建议使用)。
注意:域控不需要安装故障转移集群服务和SQL Server,也不需要加入到故障转移集群;
SQL Server 2012 AlwaysOn只支持最多一个主副本和四个辅助副本,最多允许三个同步提交的可用性副本(包括主副本),最多允许两个自动故障转移副本(包括主副本)。
服务器管理器 -> 添加角色和功能
备注:故障转移服务,只需要在非域控服务器上安装。
备注:第一步不用勾选任何选项,直接下一步
五、配置集群
配置集群功能,需要在域控服务器(DNS服务器)上配置。把其它三台SQLA、SQLB、SQLC加入到集群里面。
验证集群
这一步只需要把SQLSERVER对应的服务器加入到集群中就可以了。
安装集群
注意:此IP为集群的管理名称和管理IP,跟AlwaysOn无关。
配置群集仲裁设置
备注:对于本环境3个群集节点的情况,不需要仲裁磁盘,而所谓多数节点就是在正常节点数量占多数的情况下,集群才会提供服务,否则就停止服务。这种配置适用于奇数节点的集群,例如5个节点的集群,其正常节点数量必须至少3个,集群才会提供服务。
六、SQLSERVER服务器配置
安装SQLSERVER实例
SQLSERVER的安装这里就略过,唯一需要注意的就是,在安装的时候,将本地Administrator和域控账号(sqluser)都设置为管理员。
将SQLSERVER服务配置成使用域账号运行
设置完成后,重启SQLSERVER服务。
在SQLSERVER中将域账号配置为sysadmin
启用AwaysOn服务
以上操作,需要在三台SQLSERVER服务器上都执行一次。
创建AwaysOn高可用组
在主节点192.168.3.28服务器的SQLSERVER里面,创建AwaysOn高可用组
七、确认验证
数据库验证
故障转移集群验证
AlwaysOn可用性面板验证