SQL Server 2012 AlwaysOn可用性组始终连接到主服务器

时间:2013-10-03 13:27:09

标签: .net sql sql-server-2012 alwayson

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

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

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

使用.NET Framework 4.5我使用SqlClient.SqlConnection连接到Listener,这是连接字符串:

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

Microsoft文档说,使用此ConnectionString,当我使用ReadOnly时,将连接到Seconday Server,ReadWrite将连接到主服务器,购买我总是连接到主服务器。

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

当我连接ReadWrite时,我会连接到主服务器,就像它应该做的那样。

我已尝试连接到域名,并且还指示可用性组侦听器IP地址。

anybode可以告诉我我做错了吗?。

谢谢。

1 个答案:

答案 0 :(得分: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