Edward Asked: 2017-03-31 16:56:37 +0800 CST2017-03-31 16:56:37 +0800 CST 2017-03-31 16:56:37 +0800 CST 默认通过Listener连接SQL Server只读副本 772 我们有 ApplicationIntent=ReadOnly 正确地将我们的用户路由到辅助只读副本。有没有办法让它成为默认行为? 显然,默认行为似乎是 ReadWrite,如果您不指定 ApplicationIntent,它将重定向到主服务器。 listener sql-server-2014 1 个回答 Voted Best Answer AMtwo 2017-04-01T07:37:14+08:002017-04-01T07:37:14+08:00 可用性组侦听器是(根据文档),只是“域名系统 (DNS) 侦听器名称、侦听器端口名称和一个或多个 IP 地址”。它成为 Windows Server 故障转移群集 (WSFC) 中的资源,用于将流量路由到相应的可用性组 (AG) 节点。但是,它最终只是一个 DNS 名称和 IP。 当您连接到侦听器时,它将始终路由到主(读/写)副本。将流量路由到辅助(只读)副本的唯一方法是显式指定ApplicationIntent=ReadOnly. 如果不指定ApplicationIntent. 如果您希望用户在不明确指定 的情况下连接到只读副本ApplicationIntent,那么这些用户将需要直接连接到辅助服务器。请注意,如果用户直接连接到辅助服务器,故障转移可能会导致该服务器变为主服务器,因此不再是只读的。 在您的场景中,如果您在 DB01 和 DB02 之间进行自动故障转移,并且 DB03 将“永远不会”成为主数据库,并且您还希望用户始终连接到 DB03,那么您应该简单地指导用户直接连接到 DB03。 但是,如果您想利用只读路由来隐藏服务器名称,并且用户连接到的特定辅助节点对他们来说是透明的,那么您唯一的选择就是连接到 AG 侦听器,并且指定ApplicationIntent=ReadOnly.
可用性组侦听器是(根据文档),只是“域名系统 (DNS) 侦听器名称、侦听器端口名称和一个或多个 IP 地址”。它成为 Windows Server 故障转移群集 (WSFC) 中的资源,用于将流量路由到相应的可用性组 (AG) 节点。但是,它最终只是一个 DNS 名称和 IP。
当您连接到侦听器时,它将始终路由到主(读/写)副本。将流量路由到辅助(只读)副本的唯一方法是显式指定
ApplicationIntent=ReadOnly
. 如果不指定ApplicationIntent
.如果您希望用户在不明确指定 的情况下连接到只读副本
ApplicationIntent
,那么这些用户将需要直接连接到辅助服务器。请注意,如果用户直接连接到辅助服务器,故障转移可能会导致该服务器变为主服务器,因此不再是只读的。在您的场景中,如果您在 DB01 和 DB02 之间进行自动故障转移,并且 DB03 将“永远不会”成为主数据库,并且您还希望用户始终连接到 DB03,那么您应该简单地指导用户直接连接到 DB03。
但是,如果您想利用只读路由来隐藏服务器名称,并且用户连接到的特定辅助节点对他们来说是透明的,那么您唯一的选择就是连接到 AG 侦听器,并且指定
ApplicationIntent=ReadOnly
.