You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL 2019 Always On AG环境下共享计划跨副本可见性问题求助

解决SQL Server Always On AG辅助副本上SSRS共享计划不可用的问题

核心原因

SSRS的核心数据库(ReportServer和ReportServerTempDB)部署在Always On AG时,辅助副本默认处于只读状态。而共享计划的读取、创建操作需要对ReportServer数据库执行读写操作,辅助副本的只读特性直接导致这些操作失败,触发数据库连接或权限类错误。

必要配置步骤

1. 配置AG辅助副本为可读状态

  • 在SQL Server Management Studio中,找到目标Always On高可用性组,右键选择属性 → 切换到副本标签页。
  • 找到对应的辅助副本,将「可读辅助副本」设置为Read-intent only或Yes,允许应用通过只读意向连接访问辅助副本数据。

2. 修改SSRS数据库连接字符串为AG侦听器

  • 将SSRS的数据库连接目标从单个实例名改为AG侦听器名称,并添加关键参数:
    • MultiSubnetFailover=True:适配Azure多子网AG环境,优化故障转移速度。
    • ApplicationIntent=ReadOnly:让SSRS在连接辅助副本时以只读模式访问,连接主副本时自动切换为读写模式。
  • 示例连接字符串:
    Data Source=YourAGListenerName;Initial Catalog=ReportServer;Integrated Security=True;MultiSubnetFailover=True;ApplicationIntent=ReadOnly
    
  • 注意:ReportServerTempDB无需加入AG,每个SSRS实例应使用本地独立的ReportServerTempDB,避免共享临时数据导致冲突。

3. 启用SSRS的只读连接配置

  • 打开Reporting Services配置管理器,进入「数据库」选项卡:
    • 点击「更改数据库」→ 选择「现有报表服务器数据库」→ 连接到AG侦听器。
    • 在数据库连接配置步骤中,勾选「启用只读连接」选项,确保SSRS在辅助副本上运行时能以只读模式读取ReportServer数据。

4. 确认AG同步状态与故障转移模式

  • 确保AG故障转移模式设置为同步提交(Azure环境推荐配置,保证主副数据一致性)。
  • 在SSMS中检查ReportServer数据库的同步状态,确认辅助副本的同步状态为「已同步」,无未完成的事务同步。

5. 验证SSRS服务账户权限

  • 主副本上:SSRS服务账户需拥有ReportServer数据库的db_owner权限,用于创建、修改共享计划。
  • 辅助副本上:SSRS服务账户需拥有ReportServer数据库的db_datareader权限,用于读取共享计划数据。

验证操作

  1. 手动触发AG故障转移到辅助副本,确认SSRS可正常查看共享计划列表。
  2. 在辅助副本上尝试创建共享计划,操作会自动通过AG侦听器路由到主副本完成提交,待数据同步后,辅助副本即可显示新创建的计划。

内容的提问来源于stack exchange,提问作者SleepingSidewinder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:00:59