Share via


將報表伺服器資料庫移至其他電腦

更新: 2006 年 4 月 14 日

您可以將目前安裝中所使用的報表伺服器資料庫,移至不同電腦上的 SQL Server Database Engine 執行個體。reportserverreportservertempdb 資料庫必須同時移動或複製。Reporting Services 安裝需要這兩個資料庫,而且 reportservertempdb 資料庫必須與所移動的主要 reportserver 資料庫名稱相關。

移動資料庫對於報表伺服器項目目前已定義的排程作業不會產生任何影響,當您第一次重新啟動報表伺服器 Windows 服務時,便會重新建立排程。移動的資料庫會保留訂閱、快取報表以及快照集。當您移動 reportservertempdb 資料庫時,會保留儲存在此資料庫中的暫存報表和使用者工作階段。

SQL Server 提供數種移動資料庫的方法,包括備份與還原、附加與卸離,以及複製。並不是所有方法都適合用來將現有資料庫重新放置到新的伺服器執行個體上,移動報表伺服器資料庫的最佳方法會根據您是否有時限的需求而會有所差異。移動報表伺服器資料庫最簡單的方式就是附加與卸離,但是,如果要採用這種方法,您必須在卸離資料庫時將報表伺服器設定為離線狀態。如果希望能將服務中斷的情況降到最少,備份與還原就會是比較好的選擇,但是您必須執行 Transact-SQL 命令來執行這些作業。我們不建議利用複製資料庫來移動報表伺服器 (特別是使用「複製資料庫精靈」),複製資料庫不會保留資料庫中的權限設定。

ms156421.note(zh-tw,SQL.90).gif重要事項:
如果您對現有安裝所做的唯一變更是重新放置報表伺服器資料庫,就適用本主題中所提供的這些步驟。移轉整個 Reporting Services 安裝 (亦即,移動資料庫,並變更使用資料庫之報表伺服器 Windows 服務的識別),需要連接重新組態和重設加密金鑰。如需有關移轉 Reporting Services 安裝的詳細資訊,請參閱<移轉 Reporting Services>。

卸離及附加報表伺服器資料庫

如果您可以將報表伺服器設定為離線狀態,就可以卸離資料庫,並將資料庫移動到您要使用的 SQL Server 執行個體。這種方式可以保留資料庫中的權限。如果是使用 SQL Server 2005 資料庫,就必須將它安裝在另一個 SQL Server 2005 Database Engine 執行個體上。移動資料庫之後,您必須重新設定報表伺服器與報表伺服器資料庫間的連接。如果執行的是向外延伸部署,您必須重新設定部署中每個報表伺服器的報表伺服器資料庫連接。

請使用下列步驟來移動資料庫:

  1. 停止報表伺服器 Windows 服務和 Web 服務。若要停止報表伺服器 Web 服務,您可以停止主控該服務的應用程式集區。
  2. 啟動 SQL Server Management Studio 並開啟主控報表伺服器資料庫的 SQL Server 執行個體。
  3. 以滑鼠右鍵按一下報表伺服器資料庫,指向 [工作],並按一下 [卸離]。針對報表伺服器暫存資料庫重複此步驟。
  4. 複製或移動 .mdf 和 .ldf 檔案到您要使用之 SQL Server 的 [Data] 資料夾。因為移動的資料庫共有兩個,因此請確定您總共移動或複製四個檔案。
  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 引數來執行初始還原;這樣子資料庫可以保持在還原狀態,讓您有時間可以預覽記錄備份,判斷要還原哪一個資料庫。最後一個步驟會使用 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-tw,SQL.90).gif附註:
Reporting Services 安裝需要包含 RSExecRole 的 SQL Server Database Engine 執行個體。當您透過 Reporting Services 組態工具設定報表伺服器資料庫連接時,會產生角色建立、登入註冊以及角色指派等動作。如果您使用其他方法 (尤其是使用 rsconfig.exe 命令列公用程式) 來設定連接,報表伺服器將不會處於工作狀態。您可能需要執行其他指令碼,將報表伺服器轉變為可以使用的狀態。如需詳細資訊,請參閱<編寫部署和管理工作的指令碼>。

請參閱

概念

啟動與停止報表伺服器 Windows 服務
設定自動報表處理的帳戶
Reporting Services 組態工具
管理加密金鑰
報表伺服器資料庫

其他資源

備份概觀 (SQL Server)
僅限複製備份
rsconfig 公用程式

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 4 月 14 日

新增內容
  • 使用附加及卸離的指示。
  • 使用備份及還原的範例指令碼和指示。