Verschieben von Berichtsserver-Datenbanken auf einen anderen Computer (nativer SSRS-Modus)

Sie können die Berichtsserver-Datenbanken, die in einer Installation von SQL Server-Datenbank-Engine verwendet werden, in eine Instanz auf einem anderen Computer verschieben. Die Datenbanken reportserver und reportservertempdb müssen gemeinsam verschoben bzw. kopiert werden. Für eine Reporting Services-Installation sind beide Datenbanken erforderlich. Sie müssen die Datenbank reportservertempdb anhand des Namens der primären Datenbank reportserver zuordnen, die Sie verschieben.

Gilt für: Reporting Services (einheitlicher Modus)

Das Verschieben einer Datenbank bewirkt keine Änderung geplanter Vorgänge, die aktuell für Berichtsserverelemente definiert sind.

  • Zeitpläne werden beim ersten Neustart des Berichtsserverdiensts neu erstellt.

  • SQL Server-Agent-Aufträge, die verwendet werden, um einen Zeitplan auszulösen, werden auf der neuen Datenbankinstanz neu erstellt. Sie müssen die Aufträge nicht auf den neuen Computer verschieben, Sie möchten jedoch möglicherweise nicht mehr benötigte Aufträge auf dem Computer löschen.

  • Abonnements, zwischengespeicherte Berichte und Momentaufnahmen bleiben in der verschobenen Datenbank erhalten. Wenn eine Momentaufnahme nach dem Verschieben der Datenbank keine aktualisierten Daten aufnimmt, sollten Sie die Optionen für die Momentaufnahme löschen. Wählen Sie dann zum Speichern Ihrer Änderungen Übernehmen aus, erstellen Sie den Zeitplan neu und wählen Sie erneut Übernehmen aus, um Ihre Änderungen zu speichern.

  • Temporäre Berichts- und Benutzersitzungsdaten, die in reportservertempdb gespeichert sind, bleiben beim Verschieben dieser Datenbank persistent.

SQL Server bietet verschiedene Vorgehensweisen zum Verschieben von Datenbanken (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 zum Verschieben der Berichtsserver-Datenbank zu verwendende Vorgehensweise ist je nach Verfügbarkeitsanforderungen Ihres Systems unterschiedlich. 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. Sicherungs- und Wiederherstellungsaktionen sind die bessere Wahl, wenn Sie Dienstunterbrechungen minimieren möchten, aber Sie müssen für diese Vorgänge Transact-SQL-Befehle ausführen. Das Kopieren der Datenbank, insbesondere über den Assistenten zum Kopieren von Datenbanken, wird nicht empfohlen. Dabei bleiben Berechtigungseinstellungen in der Datenbank nicht erhalten.

Wichtig

Die in diesem Artikel vorgestellten Schritte sind geeignet, wenn das Verschieben der Berichtsserver-Datenbank die einzige Änderung ist, die Sie an der vorhandenen Installation vornehmen. Zum Migrieren einer gesamten Reporting Services-Installation muss die Verbindung neu konfiguriert und der Schlüssel zurückgesetzt werden. Eine solche Konfiguration ist beispielsweise dann erforderlich, wenn die Datenbank verschoben und die Identität des Berichtsserver-Windows-Diensts, der die Datenbank verwendet, geändert wird.

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 gewünschte SQL Server -Instanz zu verschieben. Bei dieser Vorgehensweise bleiben die Berechtigungen in den Datenbanken erhalten. Wenn Sie eine SQL Server-Datenbank verwenden, müssen Sie diese in eine andere SQL Server-Instanz 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. Sichern Sie die Schlüssel für die zu verschiebende Berichtsserver-Datenbank. Mit dem Reporting Services-Konfigurationstool können Sie die Schlüssel sichern.

  2. Beenden Sie den Berichtsserverdienst. Mit dem Reporting Services -Konfigurationstool können Sie den Dienst beenden.

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

  4. Klicken Sie mit der rechten Maustaste auf die Berichtsserver-Datenbank, zeigen Sie auf Tasks und wählen Sie Trennen aus. Wiederholen Sie diesen Schritt für die temporäre Berichtsserver-Datenbank.

  5. Kopieren oder verschieben Sie die MDF- und LDF-Dateien in den Ordner Daten der gewünschten SQL Server-Instanz. Da Sie zwei Datenbanken verschieben, müssen Sie sicherstellen, dass Sie alle vier Dateien verschieben bzw. kopieren.

  6. Öffnen Sie in Management Studio eine Verbindung mit der neuen SQL Server-Instanz, die als Host für die Berichtsserver-Datenbanken fungiert.

  7. Klicken Sie mit der rechten Maustaste auf den Knoten Datenbanken und wählen Sie anschließend Anfügen aus.

  8. Wählen Sie Hinzufügen aus, um die anzufügenden MDF- und LDF-Dateien der Berichtsserver-Datenbank auszuwählen. Wiederholen Sie diesen Schritt für die temporäre Berichtsserver-Datenbank.

  9. Ü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. RSExecRole muss über Berechtigungen zum Auswählen, Einfügen, Aktualisieren, Löschen und Verweisen auf die Berichtsserver-Datenbanktabellen und über Berechtigungen für die gespeicherten Prozeduren verfügen. Weitere Informationen finden Sie unter Erstellen der Rolle RSExecRole.

  10. Starten Sie das Reporting Services -Konfigurationstool, und stellen Sie eine Verbindung mit dem Berichtsserver her.

  11. Wählen Sie auf der Datenbankseite die neue SQL Server-Instanz aus, und wählen Sie dann Verbinden aus.

  12. Wählen Sie die soeben verschobene Berichtsserver-Datenbank und dann Anwenden aus.

  13. Wählen Sie auf der Seite Schlüssel die Option Wiederherstellen aus. Gibt die Datei an, die eine Sicherungskopie der Schlüssel und des Kennworts zum Entsperren der Datei enthält.

  14. Starten Sie den Berichtsserverdienst neu.

Sichern und Wiederherstellen der Berichtsserver-Datenbank

Wenn Sie den Berichtsserver nicht offline schalten können, können Sie die Berichtsserver-Datenbanken durch Sichern und Wiederherstellen verschieben. Sie müssen Transact-SQL-Anweisungen zum Ausführen von Sicherungen und Wiederherstellungen verwenden. 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 Artikels.

Verwenden von BACKUP und COPY_ONLY zum Sichern der Berichtsserver-Datenbanken

Legen Sie beim Sichern der Datenbanken das Argument COPY_ONLY 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\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\ReportServerData.bak'  
  
-- Create a logical backup device, ReportServerLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\BACKUP\ReportServerTempDBData.bak'  
  
-- Create a logical backup device, ReportServerTempDBLog.  
USE master  
GO  
EXEC sp_addumpdevice 'disk', 'ReportServerTempDBLog',   
'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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. Verwenden Sie das Argument NORECOVERY zum Ausführen der ursprünglichen Wiederherstellung. Durch dieses Argument 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 Argument RECOVERY wiederholt.

Das Argument MOVE 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 Argument FILE 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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServer.mdf',   
      MOVE 'ReportServer_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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\MSSQL11.MSSQLSERVER\MSSQL\Data\ReportServerTempDB.mdf',   
      MOVE 'ReportServerTempDB_log' TO  
         'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\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 den Reporting Services -Konfigurations-Manager, und stellen Sie eine Verbindung mit dem Berichtsserver her.

  2. Wählen Sie auf der Seite Datenbank die Option Datenbank ändern aus. Wählen Sie Weiter aus.

  3. Wählen Sie Vorhandene Berichtsserver-Datenbank auswählenaus. Wählen Sie Weiter aus.

  4. Wählen Sie den SQL Server, der nun als Host für die Berichtsserver-Datenbank fungiert, und dann Verbindung testen aus. Wählen Sie Weiter aus.

  5. Wählen Sie unter Datenbankname die gewünschte Berichtsserver-Datenbank aus. Wählen Sie Weiter aus.

  6. Geben Sie unter Anmeldedaten die Anmeldedaten an, die der Berichtsserver zur Herstellung der Verbindung mit der Berichtsserver-Datenbank verwendet. Wählen Sie Weiter aus.

  7. Wählen Sie Weiter und dann Fertigstellen aus.

Hinweis

Für eine Reporting Services -Installation muss die SQL Server-Datenbank-Engine -Instanz die RSExecRole -Rolle beinhalten. 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-Hilfsprogramm rsconfig.exe), ist der Berichtsserver nicht betriebsbereit. Sie müssen möglicherweise WMI-Code schreiben, um den Berichtsserver verfügbar zu machen. Weitere Informationen finden Sie unter Zugreifen auf den Reporting Services-WMI-Anbieter.

Create the RSExecRole (Erstellen der Rolle RSExecRole)
Starten und Beenden des Berichtsserverdiensts
Konfigurieren einer Verbindung mit der Berichtsserver-Datenbank
Konfigurieren des Kontos für die unbeaufsichtigte Ausführung
Berichtsserver-Konfigurations-Manager
rsconfig-Hilfsprogramm
Konfigurieren und Verwalten von Verschlüsselungsschlüsseln
Berichtsserver-Datenbank

Haben Sie dazu Fragen? Stellen Sie eine Frage im Reporting Services-Forum