Aco*_*Lil 5 sql-server-2012 availability-groups
我们有一个带有 2 个节点的 SQL 2012 AlwaysOn 可用性组。我们在 2 个副本之间进行同步提交。它们都设置为在充当辅助节点时接受只读连接,并在充当主节点时接受所有连接。
我们通过侦听器和 ApplicationIntent=ReadOnly 在连接字符串中为只读流量设置了 ReadOnly 路由。一切正常。
几天前,我们重新启动了可读辅助节点,在它关闭期间,只读流量无法连接到可读辅助节点(如预期),但并没有像我想象的那样重定向到主节点。而是收到以下错误
无法访问 SalesDb 数据库,因为没有启用只读访问的联机辅助副本。
我的问题是,如果由于某种原因没有可读的辅助副本可用,只读流量是否不会被侦听器路由到 Allow All Connections Primary 副本,而不是收到连接错误?
任何答案都感激地收到。
阿康利尔
配置服务器以接受只读流量有几个步骤。以下链接将引导您完成它,http://msdn.microsoft.com/en-us/library/hh710054.aspx,但基本上您需要配置 AG 中的每台服务器,然后为每台服务器设置路由。
下面是涉及的 T-SQL:
ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON
N'COMPUTER01' WITH
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));
ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON
N'COMPUTER01' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433'));
ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON
N'COMPUTER02' WITH
(SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));
ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON
N'COMPUTER02' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.contoso.com:1433'));
ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON
N'COMPUTER01' WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01')));
ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON
N'COMPUTER02' WITH
(PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02')));
GO
Run Code Online (Sandbox Code Playgroud)
听起来您可能缺少主服务器的配置和/或路由信息。
| 归档时间: |
|
| 查看次数: |
2887 次 |
| 最近记录: |