You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

高可用性环境中Listener服务器连接问题求助

Azure AG Listener访问异常排查建议

针对你遇到的Azure环境下AG Listener访问问题——主服务器X能访问,辅助服务器Y无法访问,本地SSMS也连不上,且已排查LB、前端IP、健康探测和防火墙的情况,我整理了几个容易遗漏的排查点:

  • DNS解析一致性验证
    先确认不同节点和本地的DNS解析是否一致:

    • 在Secondary Server Y上执行 nslookup <你的Listener名称>,检查返回的IP是否为负载均衡器的前端IP,和Primary Server上的解析结果对比;
    • 本地客户端也执行同样命令,确认解析到的IP正确。Azure内部DNS偶尔会出现缓存延迟,若解析异常,可尝试在节点上执行 ipconfig /flushdns 刷新缓存。
  • AG Listener与LB健康探测的端口/协议匹配
    虽然你确认健康探测配置无误,但再仔细核对:

    • AG Listener的监听端口(比如默认1433或自定义端口)是否和LB健康探测的端口完全一致?
    • 健康探测的协议是否为TCP?AG场景下不建议用HTTP探测,因为无法准确反映SQL服务状态;
    • 检查NSG的入站规则,是否允许LB健康探测端口的流量(不仅是Listener的业务端口),同时确认节点本地防火墙没有拦截该端口。
  • Secondary Server的网络配置细节

    • 检查Secondary Server的网络接口是否开启了IP转发:在Azure门户找到该VM的网络接口,进入“IP配置”,确认“启用IP转发”选项为“是”;
    • 确认Secondary Server和LB在同一个虚拟网络/子网内,若跨子网,需确认LB的前端IP地址范围覆盖了Secondary所在子网;
    • 检查Secondary上的SQL Server服务账号是否拥有AG Listener相关的权限(比如ALTER AVAILABILITY GROUP权限)。
  • 多子网AG的特殊配置检查(若适用)
    如果你的AG部署在多个子网下:

    • 执行 SELECT * FROM sys.availability_group_listeners,查看subnet_id是否正确对应各个节点的子网;
    • 确认Listener配置了多子网IP,且LB的后端池包含了所有子网的节点;
    • 检查DNS是否支持Round Robin解析,确保多子网场景下流量能正确路由。
  • 本地客户端的网络路由验证
    本地SSMS无法连接时:

    • 在本地执行 tracert <Listener的IP地址>,跟踪数据包是否能到达Azure LB节点,若中途中断,排查VPN/ExpressRoute的路由配置;
    • 确认本地防火墙允许到Listener端口的出站流量,有些企业防火墙会拦截非标准SQL端口的流量。
  • AG与Listener的状态检查
    在Primary和Secondary节点分别执行以下命令,对比状态差异:

    • SELECT * FROM sys.dm_tcp_listener_states:确认Listener状态为STARTED,端口配置正确;
    • SELECT * FROM sys.dm_hadr_availability_group_states:检查AG的同步状态,若为异步模式,Secondary可能无法处理Listener的流量请求。

内容的提问来源于stack exchange,提问作者somu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:48:32