Backup, ripristino e spostamento del catalogo SSISDB

In SQL Server 2012 Integration Services (SSIS) è incluso il database SSISDB. È possibile eseguire una query sulle viste nel database SSISDB per verificare oggetti, impostazioni e dati operativi archiviati nel catalogo SSISDB. In questo argomento vengono fornite istruzioni per l'esecuzione del backup e del ripristino del database.

Nel catalogo SSISDB sono archiviati i pacchetti distribuiti nel server Integration Services. Per ulteriori informazioni sul catalogo, vedere Catalogo SSIS.

Per eseguire il backup del database SSIS

  1. Aprire SQL Server Management Studio e connettersi a un'istanza di SQL Server.

  2. Eseguire il backup della chiave master per il database SSISDB tramite l'istruzione Transact-SQL BACKUP MASTER KEY. La chiave viene archiviata in un file specificato. Utilizzare una password per crittografare la chiave master nel file.

    Per ulteriori informazioni sull'istruzione, vedere BACKUP MASTER KEY (Transact-SQL).

    Nell'esempio seguente la chiave master viene esportata nel file c:\temp directory\RCTestInstKey. Per crittografare la chiave master viene utilizzata la password LS2Setup!.

    backup master key to file = 'c:\temp\RCTestInstKey'
           encryption by password = 'LS2Setup!'
    
  3. Eseguire il backup del database SSISDB tramite la finestra di dialogo Backup database in SQL Server Management Studio. Per ulteriori informazioni, vedere Procedura: Esecuzione del backup di un database (SQL Server Management Studio).

  4. Generare lo script CREATE LOGIN per ##MS_SSISServerCleanupJobLogin##, effettuando le operazioni riportate di seguito. Per ulteriori informazioni, vedere CREATE LOGIN (Transact-SQL).

    1. In Esplora oggetti in SQL Server Management Studio espandere il nodo Sicurezza, quindi espandere il nodo Account di accesso.

    2. Fare clic con il pulsante destro del mouse su ##MS_SSISServerCleanupJobLogin##, quindi fare clic su Crea script per account di accesso > Genera codice per istruzione CREATE in > Nuova finestra editor di query.

  5. Se si ripristina il database SSISDB a un'istanza di SQL Server in cui il catalogo SSISDB non è mai stato creato, generare lo script CREATE PROCEDURE per sp_ssis_startup, effettuando le operazioni riportate di seguito. Per ulteriori informazioni, vedere CREATE PROCEDURE (Transact-SQL).

    1. In Esplora oggetti espandere il nodo Database, quindi espandere master > Programmabilità > nodo Stored procedure.

    2. Fare clic con il pulsante destro del mouse su dbo.sp_ssis_startup, quindi fare clic su Crea script per stored procedure > Genera codice per istruzione CREATE in > Nuova finestra editor di query.

  6. Verificare che SQL Server Agent sia stato avviato.

  7. Se si ripristina il database SSISDB a un'istanza di SQL Server in cui il catalogo SSISDB non è mai stato creato, generare uno script per il processo di manutenzione del server SSIS, effettuando le operazioni riportate di seguito. Lo script viene creato automaticamente in SQL Server Agent quando viene creato il catalogo SSISDB. Il processo consente di pulire i log operazioni di pulizia al di fuori del periodo di memorizzazione e di rimuovere le versioni precedenti dei progetti.

    1. In Esplora oggetti espandere il nodo SQL Server Agent, quindi espandere il nodo Processi.

    2. Fare clic con il pulsante destro del mouse sul processo di manutenzione del server SSIS, quindi fare clic su Crea script per processo > Genera codice per istruzione CREATE in > Nuova finestra editor di query.

Per ripristinare il database SSIS

  1. Se si ripristina il database SSISDB a un'istanza di SQL Server in cui il catalogo SSISDB non è mai stato creato, abilitare Common Language Runtime (CLR) eseguendo la stored procedure sp_configure. Per ulteriori informazioni, vedere sp_configure (Transact-SQL) e Opzione clr enabled.

    use master 
           sp_configure 'clr enabled', 1
           reconfigure
    
  2. Se si ripristina il database SSISDB a un'istanza di SQL Server in cui il catalogo SSISDB non è mai stato creato, creare la chiave asimmetrica e l'accesso da quest'ultima e concedere l'autorizzazione UNSAFE all'account di accesso.

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

    Per le stored procedure CLR di Integration Services è necessario concedere le autorizzazioni UNSAFE all'account di accesso, poiché per questo account è richiesto un accesso aggiuntivo alle risorse limitate, ad esempio l'API Microsoft Win32. Per ulteriori informazioni sull'autorizzazione per il codice non gestito, vedere Creazione di un assembly.

    Create Login MS_SQLEnableSystemAssemblyLoadingUser
           FROM Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey 
     
           Grant unsafe Assembly to MS_SQLEnableSystemAssemblyLoadingUser
    
  3. Ripristinare il database SSISDB dal backup tramite la finestra di dialogo Ripristina database in SQL Server Management Studio. Per ulteriori informazioni, vedere gli argomenti seguenti.

  4. Eseguire gli script creati nella procedura relativa all'esecuzione del backup del catalogo SSISDB per ##MS_SSISServerCleanupJobLogin##, sp_ssis_startup e per il processo di manutenzione del server SSIS. Verificare che SQL Server Agent sia stato avviato.

  5. Eseguire l'istruzione riportata di seguito per impostare l'esecuzione automatica della stored procedure sp_ssis_startup. Per ulteriori informazioni, vedere sp_procoption (Transact-SQL).

    EXEC sp_procoption N'sp_ssis_startup','startup','on'
    
  6. Eseguire il mapping dell'utente di SSISDB ##MS_SSISServerCleanupJobUser## (database SSISDB) a ##MS_SSISServerCleanupJobLogin## tramite la finestra di dialogo Proprietà account di accesso in SQL Server Management Studio.

  7. Ripristinare la chiave master utilizzando uno dei metodi riportati di seguito. Per ulteriori informazioni sulla crittografia, vedere Gerarchia di crittografia.

    • Metodo 1

      Utilizzare questo metodo se si è già eseguito un backup della chiave master del database e si dispone della password utilizzata per crittografare la chiave master.

             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
      

      [!NOTA]

      Verificare che l'account del servizio SQL Server disponga delle autorizzazioni per leggere il file della chiave di backup.

      [!NOTA]

      Se la chiave master del database non è stata ancora crittografata dalla chiave master del servizio, si riceverà il messaggio di avviso seguente visualizzato in SQL Server Management Studio. Ignorare il messaggio.

      Impossibile decrittografare la chiave master corrente. L'errore è stato ignorato perché è stata specificata l'opzione FORCE.

      L'argomento FORCE consente di specificare che è consigliabile che il processo di ripristino continui anche se la chiave master del database corrente non è aperta. Per il catalogo SSISDB, dal momento che la chiave master del database non è stata aperta nell'istanza in cui si esegue il ripristino del database, si visualizzerà questo messaggio.

    • Metodo 2

      Utilizzare questo metodo se si dispone della password originale utilizzata per creare SSISDB.

      open master key decryption by password = 'LS1Setup!' --'Password used when creating SSISDB'
             Alter Master Key Add encryption by Service Master Key
      
  8. Determinare se lo schema del catalogo SSISDB e i file binari di Integration Services (assembly ISServerExec e SQLCLR) sono compatibili eseguendo catalog.check_schema_version.

  9. Per verificare il corretto ripristino del database SSISDB, effettuare delle operazioni nel catalogo SSISDB, ad esempio l'esecuzione dei pacchetti distribuiti nel server Integration Services. Per ulteriori informazioni, vedere Eseguire un pacchetto sul server SSIS mediante SQL Server Management Studio.

Per spostare il database SSIS

  • Seguire le istruzioni per lo spostamento di database utente. Per ulteriori informazioni, vedere Spostare database utente.

    Assicurarsi che venga eseguito il backup della chiave master per il database SSISDB e proteggere il file di backup. Per ulteriori informazioni, vedere Per eseguire il backup del catalogo SSISDB.

    Assicurarsi che gli oggetti pertinenti a Integration Services (SSIS) vengano creati nella nuova istanza di SQL Server in cui non è ancora stato creato il catalogo SSISDB.