默认情况下通过侦听器连接到 SQL Server 的只读辅助副本

Edw*_*ard 1 listener sql-server-2014

我们有 ApplicationIntent=ReadOnly 正确地将我们的用户路由到辅助只读副本。有没有办法让它成为默认行为?

显然,默认行为似乎是 ReadWrite,如果您不指定 ApplicationIntent,它将重定向到主服务器。

AMt*_*two 5

可用性组侦听器(根据文档)只是“域名系统 (DNS) 侦听器名称、侦听器端口指定和一个或多个 IP 地址”。它成为 Windows Server 故障转移群集 (WSFC) 中的资源,并用于将流量路由到适当的可用性组 (AG) 节点。但是,它最终只是一个 DNS 名称和 IP。

当您连接到侦听器时,它将始终路由到主(读/写)副本。在拥有流量路由到二级(只读)副本是明确指定ApplicationIntent=ReadOnly。如果不指定ApplicationIntent.

如果您希望用户在不明确指定 的情况下连接到只读副本ApplicationIntent,则这些用户需要直接连接到辅助服务器。请注意,如果用户直接连接到辅助服务器,则故障转移可能会导致该服务器成为主要服务器,从而不再是只读的。

在您的场景中,如果您在 DB01 和 DB02 之间进行自动故障转移,并且 DB03 将“永远”不是主要的,并且您还希望用户始终连接到 DB03,那么您应该简单地将用户直接连接到 DB03。

但是,如果您想利用只读路由来隐藏服务器名称,并且用户连接到的特定辅助节点对他们来说是透明的,那么您唯一的选择是连接到 AG 侦听器,并且指定ApplicationIntent=ReadOnly