将报表服务器数据库移至其他计算机

可以将当前安装中使用的报表服务器数据库移至其他计算机上的 SQL Server 数据库引擎实例中。必须一同移动或复制 reportserver 数据库和 reportservertempdb 数据库。Reporting Services 安装需要这两个数据库;reportservertempdb 数据库必须按名称与将要移动的 reportserver 主数据库相关。

移动数据库不会影响当前为报表服务器项定义的计划操作。

  • 首次重新启动报表服务器服务时会重新创建计划。

  • 在新数据库实例上会重新创建用于触发计划的 SQL Server 代理作业。您不必将作业移到新计算机上,不过您可能需要删除计算机上不再使用的作业。

  • 订阅、缓存报表和快照将保留在移动的数据库中。如果在数据库移动之后快照不选取刷新的数据,则在报表管理器中清除快照选项,单击**“应用”保存更改,重新创建计划,然后再次单击“应用”**保存所做的更改。

  • 移动数据库时,会保留 reportservertempdb 中存储的临时报表和用户会话数据。

SQL Server 提供了多种移动数据库的方法,包括备份和还原、附加和分离以及复制。并不是所有的方法都适用于将现有数据库重新定位到新的服务器实例。根据您的系统可用性要求,移动报表服务器数据库的方法会有所不同。移动报表服务器数据库的最简单方法是附加和分离数据库。但是,此方法要求您在分离数据库的同时使报表服务器脱机。如果要最大程度地减少服务中断,则备份和还原是最佳选择,但是必须运行 Transact-SQL 命令以执行操作。建议不要复制数据库(特别是不要使用复制数据库向导);这样做将不保留数据库中的权限设置。

重要说明重要提示

当重新定位报表服务器数据库是对现有安装的唯一更改时,建议执行本主题中提供的步骤。若要迁移整个 Reporting Services(即,移动数据库并更改使用该数据库的报表服务器 Windows 服务的标识),需要重新配置连接并重置加密密钥。有关迁移 Reporting Services 安装的详细信息,请参阅迁移 (Reporting Services)

分离和附加报表服务器数据库

如果可使报表服务器脱机,则可分离数据库,以将其移至要使用的 SQL Server 实例。此方法将保留数据库中的权限。如果在使用 SQL Server 2008 数据库,则必须将其移至另一个 SQL Server 2008 实例。移动数据库后,必须重新配置报表服务器与报表服务器数据库的连接。如果您运行的是扩展部署,则必须为部署中的每个报表服务器重新配置报表服务器数据库连接。

请使用下列步骤来移动数据库:

  1. 为要移动的报表服务器数据库备份加密密钥。可以使用 Reporting Services 配置工具来备份密钥。

  2. 停止报表服务器服务。可以使用 Reporting Services 配置工具停止该服务。

  3. 启动 SQL Server Management Studio 并打开与承载报表服务器数据库的 SQL Server 实例的连接。

  4. 右键单击该报表服务器数据库,指向“任务”,并单击**“分离”**。对报表服务器临时数据库重复此步骤。

  5. 将 .mdf 和 .ldf 文件复制或移至要使用的 SQL Server 实例的 Data 文件夹中。由于要移动两个数据库,因此请确保移动或复制所有四个文件。

  6. 在 Management Studio 中,打开与将承载报表服务器数据库的新 SQL Server 实例的连接。

  7. 右键单击“数据库”节点,然后单击**“附加”**。

  8. 单击**“添加”**以选择要附加的报表服务器数据库 .mdf 和 .ldf 文件。对报表服务器临时数据库重复此步骤。

  9. 附加数据库后,请验证 RSExecRole 是否为报表服务器数据库和临时数据库中的数据库角色。RSExecRole 必须对报表服务器数据库表具有选择、插入、更新、删除和引用的权限,并且对存储过程具有执行权限。有关详细信息,请参阅如何创建 RSExecRole

  10. 启动 Reporting Services 配置工具并打开与报表服务器的连接。

  11. 在“数据库”页上,选择新的 SQL Server 实例,然后单击**“连接”**。

  12. 选择刚才移动的报表服务器数据库,然后单击**“应用”**。

  13. 在“加密密钥”页上,单击“还原”。指定包含密钥备份副本的文件以及该文件的解锁密码。

  14. 重新启动报表服务器服务。

备份和还原报表服务器数据库

如果不能使报表服务器脱机,则可使用备份和还原来重新定位报表服务器数据库。您应该使用“Copy_Only”选项。从 SQL Server 2008 开始,SQL Server Management Studio 支持仅复制备份。还原数据库后,必须将报表服务器配置为使用新服务器实例上的数据库。有关详细信息,请参阅本主题结尾的说明。

使用 BACKUP 和 COPY_Only 备份报表服务器数据库

备份数据库时,请设置 COPY_Only 选项并将备份类型设置为**“完全”**。

注意注意

请确保备份 ReportServerReportServerTempDB 数据库及其关联的日志文件。

有关使用 SQL Server Management Studio 备份数据库的详细信息,请参阅如何备份数据库 (SQL Server Management Studio)

使用 RESTORE 和 MOVE 重新定位报表服务器数据库

在还原数据库使,您可以使用 RESTORE WITH NORECOVERY 参数执行初始还原;此操作可使数据库保持还原状态,给您留出时间来检查日志备份,以确定要还原的备份。然后,您要重复 RESTORE 操作,但使用 RESTORE WITH RECOVERY 参数。

注意注意

请确保还原 ReportServerReportServerTempDB 数据库及其关联的日志文件。

有关使用 SQL Server Management Studio 还原数据库的详细信息,请参阅如何还原数据库备份 (SQL Server Management Studio)

如何配置报表服务器数据库连接

  1. 启动 Reporting Services 配置工具并打开与报表服务器的连接。

  2. 在“数据库”页上,单击**“更改数据库”。单击“下一步”**。

  3. 单击**“选择现有报表服务器数据库”。单击“下一步”**。

  4. 选择现在承载报表服务器数据库的 SQL Server,并单击**“测试连接”。单击“下一步”**。

  5. 在“数据库名称”中,选择要使用的报表服务器数据库。单击**“下一步”**。

  6. 在“凭据”中,指定报表服务器用来连接到报表服务器数据库的凭据。单击**“下一步”**。

  7. 单击**“下一步”,然后单击“完成”**。

注意注意

Reporting Services 安装要求 SQL Server 数据库引擎实例包含 RSExecRole 角色。通过 Reporting Services 配置工具设置报表服务器数据库连接时,将创建角色、注册登录信息并分配角色。如果使用备用方法(具体来说,如果使用 rsconfig.exe 命令提示实用工具)来配置连接,报表服务器不会处于工作状态。您可能需要编写 WMI 代码以使报表服务器可用。有关详细信息,请参阅 Reporting Services WMI 提供程序