这是我第一次尝试设置 SSRS,所以如果有任何问题显得很基础,我深表歉意。我已经尽可能多地进行了研究,并对以下内容感到困惑。我的环境也如下所述。
我们在 WSFC 中有一个 2 节点 AG。让我们将它们称为 sql1 和 sql2,并使用 sql-listener 的侦听器。SQL 2016 企业版。我的意图是将所有应用程序连接运行报告发送到辅助节点,以减轻主服务器的负载。节点设置为同步提交、读/写主模式和可读辅助模式。问题:
- 在这样的设置中是否需要横向扩展部署?我似乎无法让 Sql2 显示在 Sql1 上的横向扩展屏幕上供我添加。事件查看器在 Sql2 上给出错误,例如“报表服务器 Windows 服务无法连接到报表服务器数据库”和 RSReportServer.config 中 UrlRoot 的值无效。将改为使用默认值。”
- 上述错误是否可能是由于使用内置虚拟服务帐户而不是域帐户引起的?两个节点都有报告服务器数据库,并在 AG 中同步。我在两个节点上使用配置管理器重新设置了 SSRS,除了 URL 反映了它们的本地服务器 名 http://sql1:80/ReportServer和http://sql2:80/reportserver之外,它们在各个方面都是相同的。我还在两台服务器上添加了一个带有 listenername 的新 URL,但问题仍然存在。3.) 据我所知,连接字符串也必须更改。我添加了 applicationintent = readonly 并将数据源更改为 sql 侦听器。鉴于我上面的 AG 设置,这是否是更改连接字符串以自动将传入连接指向辅助节点所需的全部内容?
在 Always On 上配置横向扩展 SSRS 实例非常简单。您遵循正常的横向扩展部署步骤,但是当您将第一个和第二个 SSRS 实例连接到 ReportServer 数据库时,您只需指向 Always On 侦听器。
这里有一篇很棒的博客文章,从头到尾介绍了所有步骤。
您没有在连接字符串中指定applicationintent = readonly,因为您希望两个 SSRS 实例都连接到主 ReportServer 数据库。在报表数据源(如果它们在 AG 中)的连接字符串中使用该连接字符串选项将报表工作负载重定向到辅助副本。
最后,使用虚拟帐户可能会导致您出现问题,因为它无法访问 RS 数据库。请改用域服务帐户。