SQL Server Always On AG(WSFC)配置指南(6) - 为SQL Server启用高可用和防火墙配置
分类: SQL Server ◆ 标签: #SQL Server #SQL Server Always on AG ◆ 发布于: 2026-03-16 18:33:06
我们已经完成了如下工作:
- 安装了
Windows Server - 已经配置了网络,禁止了
IPV6 - 创建了域控和
DNS - 将所有的节点都已经加入了域
- 安装了
SQL Server - 安装了故障转移集群
- 创建和配置了
gMSA账户或者专用域账户 - 为
gMSA账户或者专用域账户分配了必要的权限,包括读写SPN以及节点上的文件权限,同时在每个节点上设置了作为服务登录 - 将已经安装好的
SQL Server服务和SQL Agent服务更改成了使用gMSA服务或者专用域账户运行。 - 配置好了基于
SMB共享文件的Witness, 网络路径是:\\hongad\witness - 故障转移集群的配置以及共享文件见证的配置
我们继续为每个SQL节点启用高可用性,启用TCP连接,配置防火墙。
本章的所有动作都需要在每台SQL节点上运行。
以域管理员的身份登录到SQL节点,启动SQL Server配置管理器:

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

注意
- 要启用这个特性一定是在节点上配置好了故障转移集群,否则上述对话框里不会显示任何的故障转移集群名字。
- 如果已经配置好了,还是不显示,重启所有节点并去故障转移集群管理器里观察集群的状态。
为SQL Server启用TCP连接
还是在SQL Server配置管理器里,按如下步骤启用TCP连接:


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




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