1

我已经配置了一个 AlwaysOn 可用性组,没有任何问题。

数据库同步镜像,两个 SQL Server 都正常工作。

我创建了一个可用性组侦听器并将主服务器配置为仅接受 ReadWrite 连接,将辅助服务器配置为仅接受 ReadOnly 连接。

在 .NET Framework 4.5 中,我使用 SqlClient.SqlConnection 连接到侦听器,这是连接字符串:

Server=tcp:SQLListen.domain-name.com, 1435;Database=TestData;User id=user;Password=password;MultiSubnetFailover=True;ApplicationIntent=ReadOnly

Microsoft 文档说,使用此 ConnectionString,当我使用 ReadOnly 时,将连接到辅助服务器,并且将与主服务器建立读写连接,购买我总是连接到主服务器。

使用 ReadOnly 时收到错误消息,因为主服务器不接受 ReadOnly 连接。

当我与 ReadWrite 连接时,我也连接到主服务器,这是应该的。

我已尝试连接到域名以及直接可用性组侦听器 IP 地址。

谁能告诉我我做错了什么?

谢谢你。

4

1 回答 1

2

我找到了解决方案。

我正在尝试做的是称为只读路由列表。

要进行配置,您应该使用以下命令为任何服务器分配一个新 URL:

ALTER AVAILABILITY GROUP [Availavility Group]
MODIFY REPLICA ON N'Replica Node' WITH (SECONDARY_ROLE(READ_ONLY_ROUTING_URL=N'tcp://route:1433'))

然后将路由列表分配给主节点:

ALTER AVAILABILITY GROUP [<your availabiliry group>]
MODIFY REPLICA ON N'<your availability group replica>' WITH (PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'<first preference replica>', N'<second preference replica>')))

在这里找到的所有信息:

http://scottless.com/blog/archive/2012/01/25/sql-server-2012-configuring-alwayson-read-only-routing.aspx

于 2013-10-03T13:54:13.640 回答