Share via


Copia de seguridad, restauración y traslado del catálogo de SSIS

SQL Server 2012 Integration Services (SSIS) incluye la base de datos de SSISDB. En la base de datos de SSISDB, se consultan vistas para inspeccionar objetos, valores y los datos operativos que se almacenan en el catálogo de SSISDB, consultando las vistas de la base de datos de SSISDB. Este tema proporciona instrucciones para hacer una copia de seguridad de la base de datos y restaurarla.

El catálogo de SSISDB almacena los paquetes que se han implementado en el servidor de Integration Services. Para obtener más información sobre el catálogo, vea Catálogo de SSIS.

Para realizar una copia de seguridad de la base de datos de SSIS

  1. Abra SQL Server Management Studio y conéctese a una instancia de SQL Server.

  2. Para realizar una copia de seguridad de la clave maestra de la base de datos de SSISDB, use la instrucción Transact-SQL BACKUP MASTER KEY. La clave se almacena en un archivo que especifique. Use una contraseña utilizada para cifrar la clave maestra del archivo.

    Para obtener más información acerca de la instrucción, vea BACKUP MASTER KEY (Transact-SQL).

    En el ejemplo siguiente, la clave maestra se exporta al archivo c:\temp directory\RCTestInstKey . La contraseña de LS2Setup! se usa para cifrar la clave maestra.

    backup master key to file = 'c:\temp\RCTestInstKey'
           encryption by password = 'LS2Setup!'
    
  3. Use el cuadro de diálogo Copia de seguridad de la base de datos en SQL Server Management Studio para realizar una copia de seguridad de la base de datos de SSISDB. Para obtener más información, vea Cómo realizar una copia de seguridad de una base de datos (SQL Server Management Studio).

  4. Realice el procedimiento siguiente para generar el script CREATE LOGIN para ##MS_SSISServerCleanupJobLogin##. Para obtener más información, vea CREATE LOGIN (Transact-SQL).

    1. En el Explorador de objetos de SQL Server Management Studio, expanda el nodo Seguridad y el nodo Inicios de sesión.

    2. Haga clic con el botón secundario en ##MS_SSISServerCleanupJobLogin## y, a continuación, haga clic en Incluir inicio de sesión como > CREATE To > Nueva ventana del Editor de consultas.

  5. Si restaura la base de datos de SSISDB a una instancia de SQL Server en la que nunca se creó el catálogo de SSISDB, genere el script CREATE PROCEDURE para el sp_ssis_startup, como se indica a continuación. Para obtener más información, vea CREATE PROCEDURE (Transact-SQL).

    1. En el Explorador de objetos, expanda el nodo Bases de datos y, posteriormente, expanda el nodo maestro > Programación > Procedimientos almacenados.

    2. Haga clic con el botón secundario en dbo.sp_ssis_startup y, a continuación, haga clic en Incluir procedimiento almacenado como > CREATE To > Nueva ventana del Editor de consultas.

  6. Confirme que se ha iniciado el Agente SQL Server

  7. Si restaura la base de datos de SSISDB a una instancia de SQL Server donde el catálogo de SSISDB nunca se creó, genere un script para el trabajo de mantenimiento de SSIS Server. como se indica a continuación. El script se crea en el Agente SQL Server automáticamente cuando se crea el catálogo de SSISDB. El trabajo sirve de ayuda para limpiar los registros de operación de la limpieza fuera de la ventana de retención y para eliminar versiones anteriores de proyectos.

    1. En el Explorador de objetos, expanda el nodo Agente SQL Server y luego expanda el nodo Trabajos.

    2. Haga clic con el botón secundario en el trabajo de mantenimiento del Servidor SSIS y, a continuación, haga clic en Incluir trabajo como > CREATE To > Nueva ventana del Editor de consultas.

Para restaurar la base de datos de SSIS

  1. Si va a restaurar la base de datos de SSISDB en una instancia de SQL Server en la que el catálogo de SSISDB nunca se creó, habilite Common Language Runtime (CLR) ejecutando el procedimiento almacenado sp_configure. Para obtener más información, vea sp_configure (Transact-SQL) y la opción clr enabled.

    use master 
           sp_configure 'clr enabled', 1
           reconfigure
    
  2. Si va a restaurar la base de datos de SSISDB a una instancia de SQL Server en la que el catálogo de SSISDB nunca se creó, cree la clave asimétrica y el inicio de sesión de la clave asimétrica y conceda el permiso UNSAFE al inicio de sesión.

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

    Los procedimientos almacenados de CLR de Integration Services requieren permisos UNSAFE para el inicio de sesión porque este debe disponer de acceso adicional con el fin de restringir recursos como, por ejemplo la API Win32 de Microsoft. Para obtener más información sobre el permiso de código UNSAFE, vea Crear un ensamblado.

    Create Login MS_SQLEnableSystemAssemblyLoadingUser
           FROM Asymmetric key MS_SQLEnableSystemAssemblyLoadingKey 
     
           Grant unsafe Assembly to MS_SQLEnableSystemAssemblyLoadingUser
    
  3. Use el cuadro de diálogo Restaurar base de datos en SQL Server Management Studio para restaurar la base de datos de SSISDB a partir de una copia de seguridad. Para obtener más información, vea los siguientes temas.

  4. Ejecute los scripts que creó en Realizar una copia de seguridad del procedimiento del catálogo de SSISDB para ##MS_SSISServerCleanupJobLogin##, sp_ssis_startup y el trabajo de mantenimiento del Servidor de SSIS. Confirme que se ha iniciado el Agente SQL Server.

  5. Ejecute la instrucción siguiente con el fin de establecer el procedimiento de sp_ssis_startup para que se ejecute automáticamente. Para obtener más información, vea sp_procoption (Transact-SQL).

    EXEC sp_procoption N'sp_ssis_startup','startup','on'
    
  6. Asigne el usuario de SSISDB ##MS_SSISServerCleanupJobUser## (base de datos de SSISDB) a ##MS_SSISServerCleanupJobLogin##; para ello, use el cuadro de diálogo Propiedades de inicio de sesión en SQL Server Management Studio.

  7. Restaure la clave maestra mediante uno de los métodos siguientes. Para obtener más información acerca del cifrado, vea Jerarquía de cifrado.

    • Método 1

      Use este método si ya ha realizado una copia de seguridad de la clave maestra de la base de datos y dispone de la contraseña que se utilizó para cifrar la clave maestra.

             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]

      Confirme que la cuenta de servicio de SQL Server tiene permisos para leer el archivo de la clave de la copia de seguridad.

      [!NOTA]

      Aparecerá el mensaje de advertencia siguiente que se muestra en SQL Server Management Studio si la clave maestra de la base de datos no se ha cifrado aún con la clave maestra de servicio. Omita el mensaje de advertencia.

      No se puede descifrar la clave maestra actual. Se omitió el error porque se especificó la opción FORCE.

      El argumento FORCE especifica que el proceso de restauración debe continuar aunque la clave maestra de la base de datos actual no está abierta. Dado que la clave maestra de la base de datos no se ha abierto aún en la instancia donde se están restaurando la base de datos, aparecerá este mensaje para el catálogo de SSISDB.

    • Método 2

      Use este método si tiene la contraseña original que se usó para crear SSISDB.

      open master key decryption by password = 'LS1Setup!' --'Password used when creating SSISDB'
             Alter Master Key Add encryption by Service Master Key
      
  8. Determine si el esquema del catálogo de SSISDB y los binarios de Integration Services (ensamblado de ISServerExec y SQLCLR) son compatibles; para ello, ejecute catalog.check_schema_version.

  9. Para confirmar que la base de datos de SSISDB se ha restaurado correctamente, realice operaciones sobre el catálogo de SSISDB como, por ejemplo, ejecutar paquetes que se hayan implementado en el servidor de Integration Services. Para obtener más información, vea Ejecutar un paquete en el Servidor SSIS con SQL Server Management Studio.

Para mover la base de datos de SSIS

  • Siga las instrucciones para mover las bases de datos de usuarios. Para obtener más información, vea Mover bases de datos de usuario.

    Asegúrese de realizar una copia de seguridad de la clave maestra de la base de datos de SSISDB y de proteger el archivo de copia de seguridad. Para obtener más información, vea Para realizar la copia de seguridad del catálogo de SSISDB.

    Asegúrese de que los objetos pertinentes de Integration Services (SSIS) se crearon en la instancia de SQL Server en la que el catálogo de SSISDB aún no se haya creado.