迁移 Reporting Services 安装(本机模式)

本文提供有关将以下支持的 Reporting Services 本机模式部署版本之一迁移到新的 SQL Server Reporting Services 实例的分步说明:

  • SQL Server 2016 (13.x)

  • SQL Server 2014 (12.x)

  • SQL Server 2012 (11.x)

  • SQL Server 2008 R2 (10.50.x)

  • SQL Server 2008 (10.0.x)

  • SQL Server 2014 (12.x)

  • SQL Server 2012 (11.x)

  • SQL Server 2008 R2 (10.50.x)

  • SQL Server 2008 (10.0.x)

有关迁移 Reporting Services SharePoint 模式部署的信息,请参阅迁移 Reporting Services 安装(SharePoint 模式)

迁移是指将应用程序数据文件移到新的 SQL Server 实例。 下面是必须迁移您的安装的常见原因:

  • 您具有大规模部署或正常运行时间要求。

  • 你更改安装的硬件或拓扑。

  • 您遇到了阻止升级的问题。

本机模式迁移概述

Reporting Services 的迁移过程包括手动和自动的步骤。 报表服务器迁移包括以下任务:

  • 备份数据库、应用程序和配置文件。

  • 备份加密密钥。

  • 安装 SQL Server 的新实例。 如果使用相同硬件,且现有安装是受支持的版本之一,则可以并行安装 SQL Server。

    提示

    并行安装可能需要将 SQL Server 作为命名实例安装。

  • 将报表服务器数据库和其他应用程序文件从现有安装移到新的 SQL Server 安装中。

  • 将任何自定义应用程序文件移到新安装中。

  • 配置报表服务器。

  • 编辑 RSReportServer.config ,使其包括先前安装中的任何自定义设置。

  • 或者,为新的 Reporting Services Windows 服务组配置自定义访问控制列表 (ACL)。

  • 在确认新实例完全正常之后,删除未使用的应用程序和工具。

对于托管报表服务器数据库的 SQL Server 版本存在限制。 如果你在重复使用在以前安装中已创建的报表服务器数据库,请查看以下文章。

固定数据库名称

不能重命名报表服务器数据库。 创建数据库时,数据库的标识将记录在报表服务器存储过程中。 重命名报表服务器主数据库或临时数据库会在过程运行时导致错误,从而使报表服务器安装无效。

如果现有安装的数据库名称不适合新安装,应考虑创建一个具有名称的新数据库,然后使用下面列出的技术加载现有应用程序数据:

  • 编写调用报表服务器 Web 服务 SOAP 方法的 Visual Basic 脚本,以便在各数据库之间复制数据。 可以使用 RS.exe 实用工具来运行该脚本。 有关这种方法的详细信息,请参阅 脚本编写和带 Reporting Services 的 PowerShell

  • 编写调用 Windows Management Instrumentation (WMI) 提供程序的代码,以在各数据库之间复制数据。 有关这种方法的详细信息,请参阅 访问 Reporting Services WMI 提供程序

  • 如果仅有少量项,则可以将报表和共享数据源从报表设计器、模型设计器和报表生成器重新发布到新的报表服务器。 重新创建在报表上设置的角色分配、订阅、共享的计划、报表快照计划、自定义属性。 还可以在报表服务器上设置的其他项、模型项安全性和属性上重新创建它们。 如果执行这些操作,请做好丢失报表历史记录和报告执行日志数据的准备。

开始之前

即使要迁移(而不是升级)安装,也要考虑针对现有的安装运行升级顾问以帮助确定可能会影响迁移的任何问题。 如果要迁移尚未安装或配置的报表服务器,则该步骤尤其有用。 通过运行升级顾问,可以查明新 SQL Server 安装可能不支持的自定义设置。

此外,应当注意 SQL Server Reporting Services 中进行了多项影响安装迁移方式的重要改动:

  • Web 门户替代了报表管理器。

  • 对于 SQL Server 2008 (10.0.x) 和较新版本,IIS 不再是先决条件。 如果要将报表服务器安装迁移到新计算机上,则无需添加 Web 服务器角色。 另外,URL 和身份验证的配置步骤不同于以前的版本,用来诊断和解决问题的方法和工具也是如此。

  • 报表服务器 Web 服务、Web 门户和报表服务器 Windows 服务使用同一帐户运行。 所有这三个应用程序都从 RSReportServer.config 文件中读取配置设置。

  • Web 门户和 SQL Server Management Studio 设计用于删除重叠功能。 每个工具支持不同的一组任务。

  • SQL Server 2008 (10.0.x) Reporting Services 及更高版本中不支持 ISAPI 筛选器。 如果使用 ISAPI 筛选器,则必须在迁移之前重新设计报表解决方案。

  • SQL Server 2008 (10.0.x) Reporting Services 及更高版本不支持 IP 地址限制。 如果使用 IP 地址限制,则必须在迁移之前重新设计报表解决方案,或使用诸如防火墙、路由器或网络地址转换 (NAT) 等技术来配置被禁止访问报表服务器的地址。

  • SQL Server 2008 (10.0.x) Reporting Services 及更高版本不支持客户端传输层安全性 (TLS)(旧称为“安全套接字层 (SSL)”)证书。 如果使用客户端 TLS 证书,必须在迁移前重新设计报表解决方案。

  • 如果使用 Windows 集成身份验证之外的身份验证类型,则必须将 RSReportServer.config 文件中的 <AuthenticationTypes> 元素更新为支持的身份验证类型 。 支持的身份验证类型包括 NTLM、Kerberos、Negotiate 和 Basic。 在 SQL Server 2008 (10.0.x) Reporting Services 及更高版本中不支持匿名、.NET Passport 和摘要式身份验证。

  • 如果在报表环境中使用自定义级联样式表,则不能迁移这些样式表。 迁移后对它们进行手动移动。

有关 SQL Server Reporting Services 中的更改的详细信息,请参阅升级顾问文档和 SQL Server Reporting Services (SSRS) 中的新增功能

备份文件和数据

在安装新 Reporting Services 实例之前,请确保对当前安装中的所有文件进行备份。

  1. 备份报表服务器数据库的加密密钥。 此步骤对于成功迁移至关重要。 而且,在迁移过程中,必须还原加密密钥才能使报表服务器重新获得对加密数据的访问权限。 若要备份密钥,请使用报表服务器配置管理器。

  2. 使用任一受支持的备份 SQL Server 数据库的方法来备份报表服务器数据库。 有关详细信息,请参阅将报表服务器数据库移至其他计算机(SSRS 本机模式)中有关如何备份报表服务器数据库的说明。

  3. 备份报表服务器配置文件。 要备份的文件包括:

    1. RSReportServer.config

    2. Rswebapplication.config

    3. Rssrvpolicy.config

    4. Rsmgrpolicy.config

    5. Reportingservicesservice.exe.config

    6. 针对报表服务器 ASP.NET 应用程序的 Web.config。

    7. 针对 ASP.NET 的 Machine.config(如果针对报表服务器操作修改过该文件)。

安装 SQL Server Reporting Services

在仅文件模式下安装新的报表服务器实例,以便可以将该实例配置为使用非默认值。 对于命令行安装,请使用 FilesOnly 参数 。 在安装向导中,选中 “安装但不配置” 选项。

选择以下链接之一以查看有关如何安装新的 Reporting Services 实例的说明:

移动报表服务器数据库

报表服务器数据库包含已发布的报表、模型、共享数据源、计划、资源、订阅和文件夹, 还包含系统属性、项属性以及对报表服务器内容的访问权限。

如果迁移包括不同的数据库引擎实例,则必须将报表服务器数据库移动到新的数据库引擎实例。 如果使用相同的数据库引擎实例,请跳至移动自定义程序集或扩展部分。

若要移动报表服务器数据库,请按下列步骤进行操作:

  1. 选择要使用的数据库引擎实例。 SQL Server Reporting Services 要求你使用以下版本之一承载报表服务器数据库:

    • SQL Server 2016 (13.x)

    • SQL Server 2014 (12.x)

    • SQL Server 2012 (11.x)

    • SQL Server 2008 R2 (10.50.x)

    • SQL Server 2008 (10.0.x)

    • SQL Server 2014 (12.x)

    • SQL Server 2012 (11.x)

    • SQL Server 2008 R2 (10.50.x)

    • SQL Server 2008 (10.0.x)

  2. 启动 SQL Server Management Studio,然后连接到数据库引擎。

  3. 如果数据库引擎从未托管过报表服务器数据库,请在系统数据库中创建 RSExecRole。 有关详细信息,请参阅 创建 RSExecRole

  4. 遵循将报表服务器数据库移至其他计算机(SSRS 本机模式)中的说明。

请记住,报表服务器数据库和临时数据库相互依赖而且必须一起移动。 请不要复制数据库;复制不会将所有安全设置转移至新安装。 请不要移动用于计划报表服务器操作的 SQL Server 代理作业。 报表服务器自动重新创建这些作业。

移动自定义程序集或扩展插件

如果安装中包括自定义的报表项、程序集或扩展插件,则必须重新部署这些自定义组件。 如果没有使用自定义组件,请跳至 配置报表服务器部分。

若要重新部署自定义组件,请执行以下操作:

  1. 确定是支持程序集还是需要重新编译程序集:

    • 必须使用 IAuthenticationExtension2 接口重新编写自定义安全扩展插件。

    • 必须使用呈现对象模型 (ROM) 重新编写 SQL Server 2008 (10.0.x) Reporting Services 的自定义呈现扩展插件。

    • 在 SQL Server 2008 (10.0.x) Reporting Services 及更高版本中不支持 HTML 3.2 和 HTML OWC 呈现器。

    • 其他自定义程序集应当不需要重新编译。

  2. 将这些程序集移到新的报表服务器 \bin 文件夹中。 在 SQL Server 中,报表服务器二进制文件位于默认报表服务器实例的以下位置:

    \Program files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\ReportServer\bin

  3. 修改配置文件,以便为自定义组件添加条目。 所用程序集的种类不同,这些条目也有所不同。 有关在何处放置文件和添加配置条目的说明,请参阅以下内容:

    1. 部署自定义程序集

    2. 如何:部署自定义报表项

    3. 部署数据处理扩展插件

    4. 部署传递扩展插件

    5. 部署呈现扩展插件

    6. 实现安全扩展插件

配置报表服务器

为报表服务器 Web 服务和 Web 门户配置 URL,并配置与报表服务器数据库的连接。

如果要迁移扩展部署,则应使所有报表服务器节点脱机并按照一次迁移一个服务器的方式迁移各个服务器。 一旦迁移了第一个报表服务器并且其成功连接到报表服务器数据库,则该报表服务器数据库版本将自动升级到 SQL Server 数据库版本。

重要

如果横向扩展部署中的所有报表服务器均联机并且尚未被迁移,则它们可能会遇到 rsInvalidReportServerDatabase 异常,因为它们在连接到升级的报表服务器数据库之后使用的仍是旧版架构

如果迁移的报表服务器配置为用于横向扩展部署的共享数据库,则需要在配置报表服务器服务前从 ReportServer 数据库的 Keys 表中删除所有旧加密密钥。 如果未删除这些密钥,迁移的报表服务器将尝试在扩展部署模式下进行初始化。 有关详细信息,请参阅添加和删除横向扩展部署的加密密钥配置和管理加密密钥(报表服务器配置管理器)

无法使用 Reporting Services 配置管理器删除横向扩展密钥。 必须使用 SQL Server Management Studio 从 Keys 数据库的 ReportServer 表中删除旧密钥。 删除 Keys 表中的所有行。 此操作清除该表并准备将其用于只还原对称密钥,如下面的步骤所述。

删除密钥之前,应备份对称加密密钥。 可使用 Reporting Services 配置管理器来备份密钥。 打开配置管理器,选择“加密密钥”选项卡,然后选择“备份”。 还可以撰写 WMI 命令的脚本以便备份加密密钥。 有关详细信息,请参阅 ConfigurationSetting 方法 – BackupEncryptionKey

  1. 启动报表服务器配置管理器,然后连接到安装的 Reporting Services 实例。 有关详细信息,请参阅什么是报表服务器配置管理器(本机模式)?

  2. 为报表服务器和 Web 门户配置 URL。 有关详细信息,请参阅创建本机模式报表服务器数据库 (Report Server Configuration Manager)

  3. 配置报表服务器数据库,并从以前的安装中选择现有的报表服务器数据库。 成功配置之后,报表服务器服务将重新启动,并且一旦与报表服务器数据库建立连接,该数据库就会自动升级到 SQL Server Reporting Services。 有关如何运行“更改服务器向导”(该向导可用来创建或选择报表服务器数据库)的详细信息,请参阅创建本机模式报表服务器数据库(报表服务器配置管理器)

  4. 还原加密密钥。 在针对报表服务器数据库中预先存在的连接字符串和凭据启用可逆加密时,此步骤是必不可少的。 有关详细信息,请参阅备份和还原 SQL Server Reporting Services (SSRS) 加密密钥

  5. 如果报表服务器安装在新计算机上,并且你使用的是 Windows 防火墙,请确保该报表服务器侦听的 TCP 端口处于打开状态。 默认情况下,此端口为 80。 有关详细信息,请参阅将防火墙配置为允许报表服务器访问

  6. 若要在本地管理本机模式报表服务器,需要配置操作系统以允许使用 Web 门户进行本地管理。 有关详细信息,请参阅为本地管理配置本机模式报表服务器 (SSRS)

将自定义配置设置复制到 RSReportServer.config 文件

如果对先前安装中的 RSReportServer.config 文件或 RSWebApplication.config 文件进行过修改,则应当在新的 RSReportServer.config 文件中进行同样的修改。 以下列表汇总了对先前配置文件可能进行过的修改。 该列表还提供了一些链接,指向有关如何在 SQL Server 2016 中配置相同设置的其他信息。

自定义 信息
具有自定义设置的报表服务器电子邮件传递 Reporting Services 本机模式下的电子邮件设置(报表服务器配置管理器)
设备信息设置 在 RSReportServer.Config 中自定义呈现扩展插件参数

Windows 服务组与安全 ACL

SQL Server 2016 (13.x) Reporting Services 或更高版本 (SSRS) 中存在一个服务组,即 Reporting Services Windows 服务组,用于为与 SQL Server Reporting Services 一起安装的所有注册表项、文件和文件夹创建安全 ACL。 此 Windows 组的名称以 SQLServerReportServerUser$<computer_name>$<instance_name> 格式显示。

验证部署

  1. 打开浏览器,并在 URL 地址中键入报表服务器虚拟目录和 Web 门户虚拟目录,对这些目录进行测试。 有关详细信息,请参阅 验证 Reporting Services 安装

  2. 测试报表,并验证它们是否包含所需的数据。 检查数据源信息,查看是否仍指定了数据源连接信息。 报表服务器在处理和呈现报表时使用报表对象模型,但是该服务器不将 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 构造替换为新的报表定义语言元素。 若要了解有关如何在新版本的报表服务器上运行现有报表的详细信息,请参阅升级报表 (SSRS)

删除未使用的程序和文件

一旦成功将报表服务器迁移到新实例,则应该执行以下步骤以删除不再需要的程序和文件。

  1. 如果不再需要早期版本的 Reporting Services,则将其卸载。 此步骤不会删除下列项,但是,如果不再需要这些项,则可以手动将其删除:

    • 旧报表服务器数据库

    • RsExec 角色

    • 报表服务器服务帐户

    • 报表服务器 Web 服务的应用程序池

    • 报表管理器和报表服务器的虚拟目录

    • 报表服务器日志文件

  2. 如果此计算机上不再需要 IIS,则将其删除。