Skip to main content

SQL Server Always On AG(WSFC)配置指南(6) - 为SQL Server启用高可用和防火墙配置

分类:  SQL Server 标签:  #SQL Server #SQL Server Always on AG 发布于: 2026-03-16 18:33:06

我们已经完成了如下工作:

  1. 安装了Windows Server
  2. 已经配置了网络,禁止了IPV6
  3. 创建了域控和DNS
  4. 将所有的节点都已经加入了域
  5. 安装了SQL Server
  6. 安装了故障转移集群
  7. 创建和配置了gMSA账户或者专用域账户
  8. gMSA账户或者专用域账户分配了必要的权限,包括读写SPN以及节点上的文件权限,同时在每个节点上设置了作为服务登录
  9. 将已经安装好的SQL Server服务和SQL Agent服务更改成了使用gMSA服务或者专用域账户运行。
  10. 配置好了基于SMB共享文件的Witness, 网络路径是:\\hongad\witness
  11. 故障转移集群的配置以及共享文件见证的配置

我们继续为每个SQL节点启用高可用性,启用TCP连接,配置防火墙。

本章的所有动作都需要在每台SQL节点上运行。

以域管理员的身份登录到SQL节点,启动SQL Server配置管理器:


选择属性后,在属性对话框里按如下图,启用高可用:

注意

  • 要启用这个特性一定是在节点上配置好了故障转移集群,否则上述对话框里不会显示任何的故障转移集群名字。
  • 如果已经配置好了,还是不显示,重启所有节点并去故障转移集群管理器里观察集群的状态。

SQL Server启用TCP连接

还是在SQL Server配置管理器里,按如下步骤启用TCP连接:


SQL Server节点配置防火墙

我们在集群内部通过端口放通防火墙,有如下的端口需要集群内放通

组件端口号协议用户备注
SQL Server数据库引擎1433 (默认)TCP客户端链接,常规数据库操作如果实例使用了非默认端口,需放通实际配置的静态端口。
数据库镜像端点 (HADR)5022(默认)TCP最关键:用于副本间的数据同步、心跳检测、自动故障转移通信此端口在创建 AG 端点时指定,默认为 5022,但可自定义。必须在所有副本间互通。
WSFC 群集服务3343UDP/TCP群集心跳 (Cluster Heartbeat)用于节点间的状态检测。虽然现代 WSFC 动态性较强,但显式开放此端口是标准做法。
WSFC RPC 通信135TCP/UDPRPC 终结点映射 (RPC Endpoint Mapper)群集服务管理、故障转移协调所必需。
WSFC 动态 RPC 端口49152 - 65535 (默认范围)TCP动态 RPC 通信WSFC 和 SQL Server 资源 DLL 通过 RPC 进行深层通信。Windows Server 2008+ 默认使用此高位端口范围。

我们在Windows Server上启动高级安全Windows Defender防火墙按照如下步骤逐一配置:


注意:

  • 我们需要将上述表中所有的服务都通过上述方式配置。
  • 另外如果组件同时支持TCPUDP, 那需要配置两次:TCP一次,UDP一次。
  • 全部配置完成后,重启所有节点