我们正在设置具有多个辅助只读实例的 SQL Server 2014 AG,因为我们有一些重要的查询正在终止我们的主实例。我们想要做的是在读取器前面放置一个负载平衡器来帮助扩展。
Web 应用程序是 .NET/IIS。SQL SqlConnection
Server 或 LB 是否需要任何设置(例如粘性会话或连接池设置)?或者我们可能遇到的任何其他意外情况?
答案1
您需要确保侦听器配置正确。在连接字符串中实例所在的位置,您将使用侦听器名称。这样,您就不需要知道谁是主侦听器或次侦听器。其次,作为连接字符串的一部分,您需要添加“applicationintent=readonly”。这会告诉侦听器当所有请求都在执行查询时如何路由连接请求。
此外,您还需要注意一些路由。以下关联指导您完成整个过程,但基本上您需要配置 AG 中的每个服务器,然后为每个服务器设置路由。
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
按要求修改和添加