将报表服务器数据库移至另一台计算机

更新日期: 2006 年 4 月 14 日

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

移动数据库对于当前为报表服务器项定义的计划操作没有任何影响。 首次重新启动报表服务器 Windows 服务时会重新创建计划。 订阅、缓存报表和快照将保留在移动的数据库中。 移动数据库时,会保留 reportservertempdb 中存储的临时报表和用户会话数据。

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

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

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

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

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

  1. 停止报表服务器 Windows 服务和 Web 服务。 若要停止报表服务器 Web 服务,可以停止承载该服务的应用程序池。
  2. 启动 SQL Server Management Studio 并打开与承载报表服务器数据库的 SQL Server 实例的连接。
  3. 右键单击该报表服务器数据库,指向“任务”,并单击**“分离”**。 对报表服务器临时数据库重复此步骤。
  4. 将 .mdf 和 .ldf 文件复制或移至要使用的 SQL Server 实例的“数据”文件夹中。 由于要移动两个数据库,因此请确保移动或复制所有四个文件。
  5. 在 Management Studio 中,打开与将承载报表服务器数据库的新 SQL Server 实例的连接。
  6. 右键单击“数据库”节点,然后单击**“附加”**。
  7. 单击**“添加”**以选择要附加的报表服务器数据库 .mdf 和 .ldf 文件。 对报表服务器临时数据库重复此步骤。
  8. 附加数据库后,请验证 RSExecRole 是否为报表服务器数据库和临时数据库中的数据库角色。 RSExecRole 必须对报表服务器数据库表具有选择、创建、更新、删除和引用的权限,并且对存储过程具有执行权限。
  9. 启动 Reporting Services 配置工具,并打开与报表服务器的连接。
  10. 在“数据库安装”页上,选择新的 SQL Server 实例,然后单击**“连接”**。
  11. 选择刚才移动的报表服务器数据库,然后单击**“应用”**。
  12. 重新启动报表服务器 Windows 服务和 Web 服务。

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

如果不能使报表服务器脱机,则可使用备份和还原来重新定位报表服务器数据库。 必须使用 Transact-SQL 语句来执行备份和还原。 SQL Server Management Studio 不支持仅复制备份。 还原数据库后,必须将报表服务器配置为使用新服务器实例上的数据库。 有关详细信息,请参阅本主题结尾的说明。

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

备份数据库时,请设置 COPY_ALL 参数。 请确保同时备份数据库和日志文件。

-- To permit log backups, before the full database backup, alter the database 
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServer
   SET RECOVERY FULL

-- If the ReportServerData device does not exist yet, create it. 
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerData', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerData.bak'

-- Create a logical backup device, ReportServerLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerLog.bak'

-- Back up the full ReportServer database.
BACKUP DATABASE ReportServer
   TO ReportServerData
   WITH COPY_ONLY

-- Back up the ReportServer log.
BACKUP LOG ReportServer
   TO ReportServerLog
   WITH COPY_ONLY

-- To permit log backups, before the full database backup, alter the database 
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE ReportServerTempdb
   SET RECOVERY FULL

-- If the ReportServerTempDBData device does not exist yet, create it. 
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBData', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBData.bak'

-- Create a logical backup device, ReportServerTempDBLog.
USE master
GO
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog', 
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\ReportServerTempDBLog.bak'

-- Back up the full ReportServerTempDB database.
BACKUP DATABASE ReportServerTempDB
   TO ReportServerTempDBData
   WITH COPY_ONLY

-- Back up the ReportServerTempDB log.
BACKUP LOG ReportServerTempDB
   TO ReportServerTempDBLog
   WITH COPY_ONLY

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

还原数据库时,请务必包括 MOVE 参数,以便指定路径。 使用 NORECOVERY 参数执行初始还原;此操作可使数据库保持 RESTORING 状态,给您留出时间来检查日志备份,以确定要还原的备份。 最后一步是重复包含 RECOVERY 参数的 RESTORE 操作。

MOVE 参数使用数据文件的逻辑名称。 若要找到逻辑名称,请执行下列语句:RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';

以下示例包括 FILE 参数,因此您可以指定要还原的日志文件的文件位置。 若要找到文件位置,请执行下列语句:RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

还原数据库和日志文件时,应单独运行每个 RESTORE 操作。

-- Restore the report server database and move to new instance folder 
RESTORE DATABASE ReportServer
   FROM DISK='C:\ReportServerData.bak'
   WITH NORECOVERY, 
      MOVE 'ReportServer' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer_Log.ldf';
GO

-- Restore the report server log file to new instance folder 
RESTORE LOG ReportServer
   FROM DISK='C:\ReportServerData.bak'
   WITH NORECOVERY, FILE=2
      MOVE 'ReportServer' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer.mdf', 
      MOVE 'ReportServer_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServer_Log.ldf';
GO

-- Restore and move the report server temporary database
RESTORE DATABASE ReportServerTempdb
   FROM DISK='C:\ReportServerTempDBData.bak'
   WITH NORECOVERY, 
      MOVE 'ReportServerTempDB' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO

-- Restore the temporary database log file to new instance folder 
RESTORE LOG ReportServerTempdb
   FROM DISK='C:\ReportServerTempDBData.bak'
   WITH NORECOVERY, FILE=2
      MOVE 'ReportServerTempDB' TO 
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ReportServerTempDB.mdf', 
      MOVE 'ReportServerTempDB_log' TO
         'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\REportServerTempDB_Log.ldf';
GO

-- Perform final restore
RESTORE DATABASE ReportServer
   WITH RECOVERY
GO

-- Perform final restore
RESTORE DATABASE ReportServerTempDB
   WITH RECOVERY
GO

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

  1. 启动 Reporting Services 配置工具,并打开与报表服务器的连接。
  2. 在“数据库安装”页上,选择现在承载报表服务器数据库的 SQL Server,并单击**“连接”**。
  3. 在“数据库名称”中,选择要使用的报表服务器数据库,然后单击**“应用”**。
ms156421.note(zh-cn,SQL.90).gif注意:
Reporting Services 安装要求 SQL Server 数据库引擎实例包括 RSExecRole。 通过 Reporting Services 配置工具设置报表服务器数据库连接时,将创建角色、注册登录信息并分配角色。 如果使用备用方法(具体来说,如果使用 rsconfig.exe 命令行实用工具)来配置连接,则报表服务器不会处于工作状态。 可能需要运行其他脚本才能使报表服务器可用。 有关详细信息,请参阅为部署任务和管理任务编写脚本

请参阅

概念

启动和停止报表服务器 Windows 服务
配置用于无人参与的报表处理的帐户
Reporting Services 配置工具
管理加密密钥
报表服务器数据库

其他资源

备份概述 (SQL Server)
仅复制备份
rsconfig 配置工具

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 4 月 14 日

新增内容
  • 有关使用附加和分离的说明。
  • 有关使用备份和还原的示例脚本和说明。