Sql server SQL Server始终从多个SecondSeries读取数据

Sql server SQL Server始终从多个SecondSeries读取数据,sql-server,alwayson,Sql Server,Alwayson,我在我的一个环境中配置了“始终打开” SQL1 = Primary SQL2 = Slave1 (readonly) SQL3 = Slave2 (readonly) 我的问题: 我希望我的应用程序将从两个从属服务器读取数据(例如SQL2和SQL3,如果它们是从属服务器,SQL1是主服务器) 有可能吗?如果有,我怎么做 我已将路由表配置为: ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'SQL1' WITH (SECONDARY_RO

我在我的一个环境中配置了“始终打开”

SQL1 = Primary
SQL2 = Slave1 (readonly)
SQL3 = Slave2 (readonly)
我的问题:
我希望我的应用程序将从两个从属服务器读取数据(例如SQL2和SQL3,如果它们是从属服务器,SQL1是主服务器)

有可能吗?如果有,我怎么做

我已将路由表配置为:

ALTER AVAILABILITY GROUP [AG1]
 MODIFY REPLICA ON N'SQL1' WITH 
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://SQL1.aws.ir:1433'));
GO

ALTER AVAILABILITY GROUP [AG1]
 MODIFY REPLICA ON N'SQL2' WITH 
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://SQL2.aws.ir:1433'));
GO

ALTER AVAILABILITY GROUP [AG1]
 MODIFY REPLICA ON N'SQL3' WITH 
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://SQL3.aws.ir:1433'));
GO


ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON N'SQL1' WITH 
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'SQL2',N'SQL3')))
GO

ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON N'SQL2' WITH 
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'SQL1',N'SQL3')))
GO

ALTER AVAILABILITY GROUP [AG1]
MODIFY REPLICA ON N'SQL3' WITH 
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST = (N'SQL1',N'SQL2')))
GO
10倍


您需要创建一个侦听器。它是一个虚拟网络名称,客户端可以连接到该名称,以便访问始终在线可用性组的主副本或辅助副本中的数据库

阅读更多关于AGs的信息

我希望我的应用程序将从两个从属服务器读取数据(例如SQL2和SQL3,如果它们是从属服务器,SQL1是主服务器)

这是不可能的,除非您在SQL2016中

SQL Server 2104和SQL 2012只读路由将流量定向到路由列表中的第一个可用副本,除非该副本不可访问,然后将连接定向到路由列表中的下一个副本

当有多个辅助副本可供读取时,不可能将读取负载分散到这些副本上

但使用2016,您可以跨一组只读副本配置负载平衡

比如说,

ALTER AVAILABILITY GROUP ag
MODIFY REPLICA ON N’SQL16N1′ 
WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=((‘SQL16N3’, ‘SQL16N2’), ‘SQL16N1’)));
在上面的路由列表中

第一个传入只读连接将路由到SQL16N3,第二个只读连接将路由到SQL16N2,第三个只读连接将路由到SQL16N3,第四个只读连接将路由到SQL16N2,依此类推

参考文献:

您已经完成了URL路由,但是您是否启用了可读的第二个URL?启用它是什么意思?您是否已将第二个URL启用为可读的?我已转到问题AG属性。这就是你想要的?我看不到图像(它们被阻止)…你现在面临的问题是什么..我也看不到任何问题,因为你启用了只读路由列表是的,我设置了一个侦听器!如果为一个或多个可读辅助副本配置了只读路由,则到主副本的读意图客户端连接将重定向到可读辅助副本。阅读更多链接…从你所说的,我了解应用程序的流量将在从属服务器之间分配。在我的SQL2和SQL3之间的示例中?是的,如果请求是只读的,那么它不会ping主请求,而是ping从请求(辅助请求)。路由和管理由AlwaysOn自动完成。你确定吗。它不是仅来自SQL 2016吗?(我有2012 SP1企业版)只有企业版。标准不允许可读的辅助项。