关于Azure SQL数据库ApplicationIntent=ReadOnly参数有效性及SSRS 2019支持情况的问询
关于Azure SQL数据库ApplicationIntent=ReadOnly参数有效性及SSRS 2019支持情况的问询
嗨,针对你的两个问题,我来给你详细说明:
问题1:添加ApplicationIntent=ReadOnly到连接字符串是否总是将流量导向只读副本,还是可能连接到主库?
在你使用的启用了Read Scale-out的Business Critical层级Azure SQL数据库实例中,ApplicationIntent=ReadOnly参数在绝大多数场景下都会把连接路由到只读副本,但确实存在少数例外情况会落到主库:
- 当所有只读副本处于不可用状态(比如发生故障、正在进行维护操作),此时连接会 fallback 到主库;
- 如果你的连接请求是针对
master系统数据库而非用户业务数据库,这个参数不会生效,连接会直接到主库; - 若连接使用了某些不支持只读路由的特性(比如分布式事务、或者启用了
MultiSubnetFailover但配置不当),也可能导致连接落到主库。
正常业务场景下(连接用户数据库、只读副本可用、无特殊特性使用),这个参数会稳定地将只读流量导向副本。
问题2:SSRS Server 2019是否支持这个参数?
SSRS 2019是支持ApplicationIntent=ReadOnly参数的,但需要注意几个配置细节:
- 你需要在SSRS数据源的连接字符串中直接添加该参数,格式类似:
Server=tcp:<你的服务器名>.database.windows.net,1433;Initial Catalog=<你的数据库名>;ApplicationIntent=ReadOnly;... - 确保SSRS使用的数据库驱动是支持该参数的版本,比如ODBC Driver 17 for SQL Server、SQL Server Native Client 11.0及以上版本;
- 在配置SSRS数据源时,选择对应的驱动类型,并且确认连接字符串没有语法错误,这样报表的查询请求就会被路由到Azure SQL的只读副本上。
备注:内容来源于stack exchange,提问作者Bojan Nedeljkovic
相关产品推荐
相关产品推荐

