Verschieben einer Berichtsserver-Datenbank auf einen anderen Computer

Aktualisiert: 14. April 2006

Sie können die Berichtsserver-Datenbanken, die für eine aktuelle Installation verwendet werden, in eine Instanz des SQL Server-Datenbankmoduls verschieben, die sich auf einem anderen Computer befindet. Die Datenbanken reportserver und reportservertempdb müssen gemeinsam verschoben bzw. kopiert werden. Für eine Installation von Reporting Services sind beide Datenbanken erforderlich. Die reportservertempdb-Datenbank muss namentlich der primären reportserver-Datenbank, die Sie verschieben, zugeordnet werden.

Das Verschieben einer Datenbank hat keine Auswirkung auf geplante Vorgänge, die aktuell für Berichtsserverlemente definiert werden. Zeitpläne werden erneut erstellt, wenn Sie den Berichtsserver-Windows-Dienst zum ersten Mal neu starten. Abonnements, zwischengespeicherte Berichte und Snapshots bleiben in der verschobenen Datenbank erhalten. Temporäre Berichts- und Benutzersitzungsdaten, die in reportservertempdb gespeichert sind, bleiben beim Verschieben dieser Datenbank erhalten.

In SQL-Server stehen verschiedene Vorgehensweisen zum Verschieben von Datenbanken zur Verfügung (einschließlich Sichern und Wiederherstellen, Anfügen und Trennen sowie Kopieren). Nicht alle Vorgehensweisen sind zum Verschieben einer vorhandenen Datenbank in eine neue Serverinstanz geeignet. Die Vorgehensweise, die Sie zum Verschieben der Berichtsserver-Datenbank verwenden sollten, hängt davon ab, ob in Ihrem Fall Anforderungen an ausfallfreie Zeiten vorliegen. Die einfachste Möglichkeit zum Verschieben der Berichtsserver-Datenbanken besteht darin, sie anzufügen und zu trennen. Bei dieser Vorgehensweise muss der Berichtsserver jedoch offline geschaltet werden, während Sie die Datenbank trennen. Sicherungen und Wiederherstellungen sind jedoch besser geeignet, wenn Sie Störungen des Dienstes vermeiden möchten. Sie müssen für diese Vorgänge jedoch Transact-SQL-Befehle ausführen. Das Kopieren der Datenbank wird nicht empfohlen (insbesondere nicht mithilfe des Assistenten zum Kopieren von Datenbanken), da hierbei Berechtigungseinstellungen in der Datenbank verloren gehen.

ms156421.note(de-de,SQL.90).gifWichtig:
Die in diesem Thema vorgestellten Schritte sind geeignet, wenn das Verschieben der Berichtsserver-Datenbank die einzige Änderung ist, die Sie an der vorhandenen Installation vornehmen. Wenn eine gesamte Installation von Reporting Services migriert wird (d. h. wenn die Datenbank verschoben und die Identität des Berichtsserver-Windows-Dienstes, der die Datenbank verwendet, geändert wird), muss die Verbindung neu konfiguriert und der Verschlüsselungsschlüssel zurückgesetzt werden. Weitere Informationen zum Migrieren einer Installation von Reporting Services finden Sie unter Migrieren von Reporting Services.

Trennen und Anfügen der Berichtsserver-Datenbanken

Wenn Sie den Berichtsserver offline schalten können, können Sie die Datenbanken trennen, um sie in die SQL Server-Instanz zu verschieben, die Sie verwenden möchten. Bei dieser Vorgehensweise bleiben die Berechtigungen in den Datenbanken erhalten. Wenn Sie eine SQL Server 2005-Datenbank verwenden, müssen Sie sie in eine andere Instanz des SQL Server 2005-Datenbankmoduls verschieben. Nachdem Sie die Datenbanken verschoben haben, müssen Sie die Verbindung des Berichtsservers mit der Berichtsserver-Datenbank erneut konfigurieren. Wenn Sie eine Bereitstellung für dezentrales Skalieren ausführen, müssen Sie die Verbindung der Berichtsserver-Datenbank für jeden Berichtsserver in der Bereitstellung erneut konfigurieren.

Führen Sie folgende Schritte aus, um die Datenbanken zu verschieben:

  1. Beenden Sie den Berichtsserver-Windows-Dienst und den Berichtsserver-Webdienst. Zum Beenden des Berichtsserver-Webdienstes können Sie den Anwendungspool beenden, von dem dieser Dienst gehostet wird.
  2. Starten Sie SQL Server Management Studio, und stellen Sie eine Verbindung mit der SQL Server-Instanz her, die als Host für die Berichtsserver-Datenbanken fungiert.
  3. Klicken Sie mit der rechten Maustaste auf die Berichtsserver-Datenbank, zeigen Sie auf Tasks, und klicken Sie auf Trennen. Wiederholen Sie diesen Schritt für die temporäre Berichtsserver-Datenbank.
  4. Kopieren oder verschieben Sie die MDF- und LDF-Dateien in den Datenordner der gewünschten SQL Server-Instanz. Da Sie zwei Datenbanken verschieben, müssen Sie sicherstellen, dass Sie alle vier Dateien verschieben bzw. kopieren.
  5. Öffnen Sie in Management Studio eine Verbindung mit der neuen SQL Server-Instanz, die als Host für die Berichtsserver-Datenbanken fungiert.
  6. Klicken Sie mit der rechten Maustaste auf den Knoten Datenbanken, und klicken Sie anschließend auf Anfügen.
  7. Klicken Sie auf Hinzufügen, um die anzufügenden MDF- und LDF-Dateien der Berichtsserver-Datenbank auszuwählen. Wiederholen Sie diesen Schritt für die temporäre Berichtsserver-Datenbank.
  8. Überprüfen Sie nach dem Anfügen der Datenbanken, ob es sich bei RSExecRole um eine Datenbankrolle in der Berichtsserver-Datenbank und in der temporären Datenbank handelt. Für RSExecRole müssen in den Tabellen der Berichtsserver-Datenbank Berechtigungen zum Auswählen, Erstellen, Aktualisieren, Löschen sowie Verweisen und in den gespeicherten Prozeduren Berechtigungen zum Ausführen bestehen.
  9. Starten Sie das Reporting Services-Konfigurationstool, und stellen Sie eine Verbindung mit dem Berichtsserver her.
  10. Wählen Sie auf der Seite Setup der Datenbank die neue SQL Server-Instanz aus, und klicken Sie auf Verbinden.
  11. Wählen Sie die soeben verschobene Berichtsserver-Datenbank aus, und klicken Sie anschließend auf Anwenden.
  12. Starten Sie den Berichtsserver-Windows-Dienst und den Berichtsserver-Webdienst neu.

Sichern und Wiederherstellen der Berichtsserver-Datenbanken

Wenn Sie den Berichtsserver nicht offline schalten können, können Sie die Berichtsserver-Datenbanken durch Sichern und Wiederherstellen verschieben. Zum Sichern und Wiederherstellen müssen Sie Transact-SQL-Anweisungen verwenden. SQL Server Management Studio unterstützt keine Kopiesicherungen. Nach dem Wiederherstellen der Datenbanken müssen Sie den Berichtsserver so konfigurieren, dass die Datenbank in der neuen Serverinstanz verwendet wird. Weitere Informationen finden Sie in den Anweisungen am Ende dieses Themas.

Verwenden von BACKUP und COPY_ALL zum Sichern der Berichtsserver-Datenbanken

Legen Sie beim Sichern der Datenbanken das COPY_ALL-Argument fest. Achten Sie unbedingt darauf, dass Sie beide Datenbanken und Protokolldateien sichern.

-- 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

Verwenden von RESTORE und MOVE zum Verschieben der Berichtsserver-Datenbanken

Stellen Sie beim Wiederherstellen der Datenbanken sicher, dass Sie das MOVE-Argument einschließen, damit Sie einen Pfad angeben können. Mithilfe des NORECOVERY-Arguments wird die erste Wiederherstellung ausgeführt. Dadurch verbleibt die Datenbank im RESTORING-Status, und Sie haben Zeit, die Protokollsicherungen zu überprüfen und zu bestimmen, welche Sicherung wiederhergestellt werden soll. Im letzten Schritt wird der RESTORE-Vorgang mit dem RECOVERY-Argument wiederholt.

Das MOVE-Argument verwendet den logischen Namen der Datendatei. Führen Sie die folgende Anweisung aus, um den logischen Namen zu ermitteln: RESTORE FILELISTONLY FROM DISK='C:\ReportServerData.bak';

Im folgenden Beispiel ist das FILE-Argument enthalten, sodass Sie die Dateiposition der wiederherzustellenden Protokolldatei angeben können. Führen Sie die folgende Anweisung aus, um die Dateiposition zu ermitteln: RESTORE HEADERONLY FROM DISK='C:\ReportServerData.bak';

Beim Wiederherstellen der Datenbank- und Protokolldateien sollten Sie jeden RESTORE-Vorgang separat ausführen.

-- 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

Konfigurieren der Berichtsserver-Datenbankverbindung

  1. Starten Sie das Reporting Services-Konfigurationstool, und stellen Sie eine Verbindung mit dem Berichtsserver her.
  2. Wählen Sie auf der Seite Setup der Datenbank den Computer mit SQL Server aus, der nun als Host für die Berichtsserver-Datenbank fungiert, und klicken Sie auf Verbinden.
  3. Wählen Sie unter Datenbankname die gewünschte Berichtsserver-Datenbank aus, und klicken Sie anschließend auf Anwenden.
ms156421.note(de-de,SQL.90).gifHinweis:
Für eine Reporting Services-Installation muss die Instanz des SQL Server-Datenbankmoduls RSExecRole enthalten. Wenn Sie die Berichtsserver-Datenbankverbindung über das Reporting Services-Konfigurationstool festlegen, werden Rollen erstellt und Anmelderegistrierungen sowie Rollenzuweisungen vorgenommen. Wenn Sie zum Konfigurieren der Verbindung alternative Vorgehensweisen verwenden (insbesondere das Befehlszeilen-Dienstprogramm rsconfig.exe), ist der Berichtsserver nicht betriebsbereit. Sie müssen möglicherweise andere Skripts ausführen, damit der Berichtsserver verfügbar ist. Weitere Informationen finden Sie unter Verwenden von Skripts für Bereitstellungs- und Verwaltungsaufgaben.

Siehe auch

Konzepte

Starten und Beenden des Berichtsserver-Windows-Dienstes
Konfigurieren eines Kontos für die unbeaufsichtigte Berichtsverarbeitung
Reporting Services-Konfigurationstool
Verwalten von Verschlüsselungsschlüsseln
Berichtsserver-Datenbank

Andere Ressourcen

Übersicht zu Sicherungen (SQL Server)
Kopiesicherungen
rsconfig (Dienstprogramm)

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

14. April 2006

Neuer Inhalt
  • Anweisungen zum Verwenden der Optionen Anfügen und Trennen.
  • Beispielskript und Anweisungen zum Verwenden von Sicherungen und Wiederherstellungen.