在 SQL Server 2014 AlwaysOn 可用性组(AG)中,侦听器(Listener)是一个 “虚拟网络名称(VNN)+ 端口” 的组合,核心作用是统一访问入口、自动路由连接。
侦听器的主要作用
-
统一访问入口:
客户端不需要记住主 / 辅助副本的具体服务器名,只需连接侦听器的虚拟名称,就能自动访问到当前的主副本(写操作)或指定的辅助副本(读操作)。
比如:侦听器名是AGListener,客户端连接字符串写Server=AGListener;...即可,无需关心当前主副本是哪台服务器。 -
自动故障转移后的连接无缝切换:
当主副本故障转移到辅助副本后,侦听器会自动将新的主副本 “绑定” 到自己的虚拟名称上,客户端无需修改连接字符串,就能继续访问新主副本(避免手动改配置的麻烦)。 -
支持读写分离路由:
若辅助副本配置为 “可读”,客户端在连接字符串中加ApplicationIntent=ReadOnly,侦听器会自动将请求路由到辅助副本(实现读写分离)。
不添加侦听器的影响
-
客户端连接复杂:
客户端需要直接连接主副本的服务器名,故障转移后必须手动修改连接字符串(改为新主副本的服务器名),否则业务会中断。 -
无法实现自动路由:
没有统一入口,故障转移后无法自动切换连接,需要人工干预,可用性大幅降低。 -
读写分离无法落地:
辅助副本的读流量无法通过侦听器自动路由,只能让客户端手动连接辅助副本服务器名,管理成本高。
简单说:侦听器是 AG 实现 “高可用 + 易用性” 的核心组件,不添加的话,AG 的故障转移优势会大打折扣,客户端连接和维护会变得非常繁琐。
浙公网安备 33010602011771号