A-A+

AlwaysOn只读路由配置的方法和命令行

2015年11月26日 站长资讯 AlwaysOn只读路由配置的方法和命令行已关闭评论

以下示例将修改现有可用性组 AG1 的两个可用性副本以支持只读路由(如果其中一个副本拥有主角色)。

为了标识承载可用性副本的服务器实例,此示例指定了实例名称 COMPUTER01 和 COMPUTER02

  1. ALTER AVAILABILITY GROUP [AG1]  
  2.  MODIFY REPLICA ON  
  3. N'COMPUTER01' WITH   
  4. (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  
  5. ALTER AVAILABILITY GROUP [AG1]  
  6.  MODIFY REPLICA ON  
  7. N'COMPUTER01' WITH   
  8. (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433'));  
  9. ALTER AVAILABILITY GROUP [AG1]  
  10.  MODIFY REPLICA ON  
  11. N'COMPUTER02' WITH   
  12. (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY));  
  13. ALTER AVAILABILITY GROUP [AG1]  
  14.  MODIFY REPLICA ON  
  15. N'COMPUTER02' WITH   
  16. (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.contoso.com:1433'));  
  17. ALTER AVAILABILITY GROUP [AG1]   
  18. MODIFY REPLICA ON  
  19. N'COMPUTER01' WITH   
  20. (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01')));  
  21. ALTER AVAILABILITY GROUP [AG1]   
  22. MODIFY REPLICA ON  
  23. N'COMPUTER02' WITH   
  24. (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02')));  
  25. 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

标签:

评论已关闭!