AlwaysOn只读路由配置的方法和命令行
以下示例将修改现有可用性组 AG1 的两个可用性副本以支持只读路由(如果其中一个副本拥有主角色)。
为了标识承载可用性副本的服务器实例,此示例指定了实例名称 COMPUTER01 和 COMPUTER02
- 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
--查看只读路由配置信息
SELECT * FROM sys.availability_read_only_routing_lists
SELECT read_only_routing_url,* FROM sys.availability_replicas
--跟进:配置只读路由之后
在这两种角色中配置当前主副本和可读辅助副本以支持只读路由后,可读辅助副本可接收/读取来自通过可用性组侦听器连接的客户端的读意向连接。
--提示提示
使用 bcp 实用工具或 sqlcmd 实用工具时,您可以通过指定 -K ReadOnly 开关来对允许只读访问的任意辅助副本指定只读访问。
--针对客户端连接字符串的要求和建议
对于要使用只读路由的客户端应用程序,其连接字符串必须满足以下要求:
使用 TCP 协议。将应用程序意向特性/属性设置为只读。引用配置为支持只读路由的可用性组的侦听器。引用该可用性组中的数据库。
此外,建议连接字符串启用多子网故障转移,这将支持每个子网上的每个副本的并行客户端线程。 这将最大程度地减小故障转移后的客户端重新连接时间。
连接字符串的语法取决于应用程序正在使用的 SQL Server 提供程序。 以下用于 SQL Server 的 .NET Framework 数据访问接口的示例连接字符串说明了使用只读路由时所需的
和建议的连接字符串的部分。
Server=tcp:MyAgListener,1433;Database=Db1;IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly;M
评论已关闭!