Sichern, Wiederherstellen und Verschieben des SSIS-Katalogs

SQL Server 2012 Integration Services (SSIS) schließt die SSISDB-Datenbank ein. Sie können Sichten in der SSISDB-Datenbank abfragen, um im SSISDB-Katalog gespeicherte Objekte, Einstellungen und operative Daten zu überprüfen. Dieses Thema enthält Anweisungen zum Sichern und Wiederherstellen der Datenbank.

Der SSISDB-Katalog speichert die Pakete, die Sie auf dem Integration Services-Server bereitgestellt haben. Weitere Informationen zum Katalog finden Sie unter SSIS-Katalog.

So sichern Sie die SSIS-Datenbank

  1. Öffnen Sie SQL Server Management Studio, und stellen Sie eine Verbindung zu einer Instanz von SQL Server her.

  2. Sichern Sie den Hauptschlüssel für die SSISDB-Datenbank, indem Sie die Anweisung BACKUP MASTER KEY (Transact-SQL) verwenden. Der Schlüssel wird in einer von Ihnen angegebenen Datei gespeichert. Verwenden Sie ein Kennwort, um den Hauptschlüssel in der Datei zu verschlüsseln.

    Weitere Informationen zu dieser Anweisung finden Sie unter BACKUP MASTER KEY (Transact-SQL).

    Im folgenden Beispiel wird der Hauptschlüssel in die c:\temp directory\RCTestInstKey-Datei exportiert. Das LS2Setup!-Kennwort wird zum Verschlüsseln des Hauptschlüssels verwendet.

    backup master key to file = 'c:\temp\RCTestInstKey'
           encryption by password = 'LS2Setup!'
    
  3. Sichern Sie die SSISDB-Datenbank mit dem Dialogfeld Datenbank sichern in SQL Server Management Studio. Weitere Informationen finden Sie unter Vorgehensweise: Sichern einer Datenbank (SQL Server Management Studio).

  4. Generieren Sie das CREATE LOGIN-Skript für ##MS_SSISServerCleanupJobLogin ##, indem Sie wie folgt vorgehen. Weitere Informationen finden Sie unter CREATE LOGIN (Transact-SQL).

    1. Erweitern Sie in SQL Server Management Studio im Objekt-Explorer die Knoten Sicherheit und Anmeldungen.

    2. Klicken Sie mit der rechten Maustaste auf ##MS_SSISServerCleanupJobLogin##, und klicken Sie dann auf Skript für Anmeldenamen als > CREATE in > Neues Abfrage-Editor-Fenster.

  5. Wenn Sie die SSISDB-Datenbank auf einer SQL Server-Instanz wiederherstellen, auf der der SSISDB-Katalog nie erstellt wurde, generieren Sie das CREATE PROCEDURE-Skript wie folgt für sp_ssis_startup. Weitere Informationen finden Sie unter CREATE PROCEDURE (Transact-SQL).

    1. Erweitern Sie im Objekt-Explorer nachfolgend den Knoten Datenbanken und nachfolgend die Knoten master > Programmierbarkeit > Gespeicherte Prozeduren.

    2. Klicken Sie mit der rechten Maustaste auf dbo.sp_ssis_startup, und klicken Sie dann auf Skript für gespeicherte Prozeduren als > CREATE in > Neues Abfrage-Editor-Fenster.

  6. Bestätigen Sie, dass der SQL Server-Agent gestartet wurde.

  7. Wenn Sie die SSISDB-Datenbank auf einer SQL Server-Instanz wiederherstellen, auf der der SSISDB-Katalog nie erstellt wurde, generieren Sie wie folgt ein Skript für den SSIS-Server-Wartungsauftrag. Das Skript wird bei Erstellung des SSISDB-Katalogs automatisch im SQL Server-Agent erstellt. Der Auftrag hilft beim Bereinigen von Bereinigungsvorgangsprotokollen außerhalb der Beibehaltungsdauer und entfernt ältere Projektversionen.

    1. Erweitern Sie im Objekt-Explorer den Knoten SQL Server-Agent und dann den Knoten Aufträge.

    2. Klicken Sie mit der rechten Maustaste auf den SSIS-Server-Wartungsauftrag, und klicken Sie dann auf Skript für Auftrag als > CREATE in > Neues Abfrage-Editor-Fenster.

So stellen Sie die SSIS-Datenbank wieder her

  1. Wenn Sie die SSISDB-Datenbank auf einer SQL Server-Instanz wiederherstellen, auf der der SSISDB-Katalog nie erstellt wurde, aktivieren Sie Common Language Runtime (clr), indem Sie die gespeicherte Prozedur sp_configure ausführen. Weitere Informationen finden Sie unter sp_configure (Transact-SQL) und CLR-fähig (Option).

    use master 
           sp_configure 'clr enabled', 1
           reconfigure
    
  2. Wenn Sie die SSISDB-Datenbank auf einer SQL Server-Instanz wiederherstellen, auf der der SSISDB-Katalog nie erstellt wurde, erstellen Sie den asymmetrischen Schlüssel und den Anmeldenamen aus dem asymmetrischen Schlüssel, und gewähren Sie dem Anmeldenamen die UNSAFE-Berechtigung.

    Create Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey
           FROM Executable File = 'C:\Program Files\Microsoft SQL Server\110\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll' 
           
    

    Integration Services-CLR-gespeicherte Prozeduren erfordern UNSAFE-Berechtigungen, die der Anmeldung gewährt werden müssen, da die Anmeldung einen zusätzlichen Zugriff auf eingeschränkte Ressourcen (z. B. die Microsoft Win32-API) benötigt. Weitere Informationen zur UNSAFE-Codeberechtigung finden Sie unter Erstellen von Assemblys.

    Create Login MS_SQLEnableSystemAssemblyLoadingUser
           FROM Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey 
     
           Grant unsafe Assembly to MS_SQLEnableSystemAssemblyLoadingUser
    
  3. Stellen Sie die SSISDB-Datenbank über die Sicherung wieder her. Verwenden Sie dazu das Dialogfeld Datenbank wiederherstellen in SQL Server Management Studio. Weitere Informationen finden Sie in den nachfolgenden Themen.

  4. Führen Sie die Skripts aus, die Sie in der Prozedur zum Sichern des SSISDB-Katalogs für ##MS_SSISServerCleanupJobLogin##, "sp_ssis_startup" und den SSIS-Server-Wartungsauftrag erstellt haben. Bestätigen Sie, dass der SQL Server-Agent gestartet wurde.

  5. Führen Sie die folgende Anweisung aus, um die Prozedur "sp_ssis_startup" für die automatische Ausführung festzulegen. Weitere Informationen finden Sie unter sp_procoption (Transact-SQL).

    EXEC sp_procoption N'sp_ssis_startup','startup','on'
    
  6. Ordnen Sie den SSISDB-Benutzer ##MS_SSISServerCleanupJobUser## (SSISDB-Datenbank) ##MS_SSISServerCleanupJobLogin## zu, indem Sie das Dialogfeld Anmeldungseigenschaften in SQL Server Management Studio verwenden.

  7. Verwenden Sie zum Sichern des Hauptschlüssels eine der folgenden Methoden. Weitere Informationen zur Verschlüsselung finden Sie unter Verschlüsselungshierarchie.

    • Methode 1

      Verwenden Sie diese Methode, wenn Sie bereits eine Sicherung des Datenbank-Hauptschlüssels ausgeführt haben und Sie über das Kennwort verfügen, das verwendet wurde, um den Hauptschlüssel zu verschlüsseln.

             Restore master key from file = 'c:\temp\RCTestInstKey'
             Decryption by password = 'LS2Setup!' -- 'Password used to encrypt the master key during SSISDB backup'
             Encryption by password = 'LS3Setup!' -- 'New Password'
             Force
      
      HinweisHinweis

      Bestätigen Sie, dass das SQL Server-Dienstkonto über Berechtigungen verfügt, die Sicherungsschlüsseldatei zu lesen.

      HinweisHinweis

      Es wird die folgende Warnmeldung in SQL Server Management Studio angezeigt, wenn der Datenbank-Hauptschlüssel noch nicht vom Diensthauptschlüssel verschlüsselt wurde. Ignorieren Sie die Warnmeldung.

      Der aktuelle Hauptschlüssel kann nicht entschlüsselt werden. Dieser Fehler wurde ignoriert, weil die Option FORCE angegeben war.

      Das FORCE-Argument gibt an, dass der Wiederherstellungsprozess fortfahren sollte, auch wenn der aktuelle Datenbank-Hauptschlüssel nicht geöffnet ist. Diese Meldung wird für den SSISDB-Katalog angezeigt, da der Datenbank-Hauptschlüssel noch nicht auf der Instanz geöffnet wurde, auf der Sie die Datenbank wiederherstellen.

    • Methode 2

      Verwenden Sie diese Methode, wenn Sie über das ursprüngliche Kennwort verfügen, das verwendet wurde, um SSISDB zu erstellen.

      open master key decryption by password = 'LS1Setup!' --'Password used when creating SSISDB'
             Alter Master Key Add encryption by Service Master Key
      
  8. Bestimmen Sie, ob das SSISDB-Katalogschema und die Integration Services-Binärdateien (ISServerExec-Assembly und SQLCLR-Assembly) kompatibel sind, indem Sie catalog.check_schema_version ausführen.

  9. Um zu bestätigen, dass die SSISDB-Datenbank erfolgreich wiederhergestellt wurde, führen Sie Vorgänge für den SSISDB-Katalog aus, beispielsweise das Ausführen von Paketen, die auf dem Integration Services-Server bereitgestellt wurden. Weitere Informationen finden Sie unter Ausführen eines Pakets auf dem SSIS-Server mit SQL Server Management Studio.

So verschieben Sie die SSIS-Datenbank

  • Folgen Sie den Anweisungen zum Verschieben von Benutzerdatenbanken. Weitere Informationen finden Sie unter Verschieben von Benutzerdatenbanken.

    Stellen Sie sicher, dass Sie den Hauptschlüssel für die SSISDB-Datenbank sichern und die Sicherungsdatei schützen. Weitere Informationen finden Sie unter So sichern Sie den SSISDB-Katalog.

    Stellen Sie sicher, dass die für Integration Services (SSIS) relevanten Objekte in der neuen SQL Server-Instanz erstellt werden, auf der der SSISDB-Katalog noch nicht erstellt wurde.