Catálogo de SSIS

Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory

El catálogo de SSISDB es el eje central cuando se trabaja con proyectos de Integration Services (SSIS) que ha implementado en el servidor Integration Services. Por ejemplo, establece los parámetros del proyecto y del paquete, configura entornos para especificar los valores en tiempo de ejecución para los paquetes, ejecuta paquetes y soluciona los problemas de los mismos, y administra las operaciones del servidor de Integration Services .

Nota

En este artículo se describe el catálogo de SSIS en general y el catálogo de SSIS ejecutado de forma local. El catálogo de SSIS también se puede crear en Azure SQL Database, y los paquetes SSIS se pueden implementar y ejecutar en Azure. Para obtener más información, consulte Lift and shift SQL Server Integration Services workloads to the cloud (Migrar cargas de trabajo de SQL Server Integration Services a la nube mediante lift-and-shift).

Aunque los paquetes SSIS también se pueden ejecutar en Linux, no se admite el catálogo de SSIS. Para obtener más información, consulte Extracción, transformación y carga de datos en Linux con SSIS .

Entre los objetos que se almacenan en el catálogo SSISDB se incluyen proyectos, paquetes, parámetros, entornos y el historial de operaciones.

Inspecciona 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 . Administra los objetos al llamar a los procedimientos almacenados en la base de datos de SSISDB o mediante la interfaz de usuario del catálogo de SSISDB . En muchos casos, la misma tarea se puede realizar en la interfaz de usuario o al llamar a un procedimiento almacenado.

Para mantener la base de datos de SSISDB , se recomienda aplicar las directivas corporativas estándar para administrar las bases de datos de usuario. Para obtener información acerca de cómo crear planes de mantenimiento, vea Maintenance Plans.

El catálogo de SSISDB y la base de datos de SSISDB admiten Windows PowerShell. Para obtener más información acerca de cómo usar SQL Server con Windows PowerShell, vea SQL Server PowerShell. Para obtener ejemplos de cómo usar Windows PowerShell para completar tareas como implementar un proyecto, vea la entrada del blog SSIS y PowerShell en SQL Server 2012, en blogs.msdn.com.

Para más información sobre cómo ver los datos de las operaciones, consulte Monitor de ejecución de paquetes y otras operaciones.

Tiene acceso al catálogo de SSISDB en SQL Server Management Studio al conecta a SQL Server el motor de base de datos y después expandir el nodo Catálogos de Integration Services en el Explorador de objetos. Tiene acceso a la base de datos de SSISDB en SQL Server Management Studio al expandir el nodo Bases de datos en el Explorador de objetos.

Nota

No puede cambiar el nombre de la base de datos de SSISDB .

Nota

Si la instancia de SQL Server a la que la base de datos SSISDB se adjuntada se detiene o no responde, el proceso de ISServerExec.exe finaliza. Se escribe un mensaje en un registro de eventos de Windows.

Si los recursos de SQL Server conmutan por error como parte de una conmutación por error de clúster, los paquetes en ejecución no se reinician. Puede usar los puntos de comprobación para reiniciar los paquetes. Para obtener más información, vea Restart Packages by Using Checkpoints.

Características y funcionalidades

Identificadores de objeto de catálogo

Cuando cree un nuevo objeto en el catálogo, asígnele un nombre El nombre del objeto es un identificador. SQL Server define las reglas para las que los caracteres se pueden usar en un identificador. Los nombres de los siguientes objetos deben seguir las reglas de identificador.

  • Carpeta

  • proyecto

  • Entorno

  • Parámetro

  • Variable de entorno

Carpeta, proyecto, entorno

Tenga en cuenta las reglas siguientes al cambiar el nombre de una carpeta, un proyecto, o un entorno.

  • Entre los caracteres no válidos, se incluyen los caracteres ASCII/Unicode del 1 al 31, comillas dobles ("), menor que (<), mayor que (>), barra vertical (|), retroceso (\b), NULL (\0) y tabulación (\t).

  • El nombre no puede contener espacios delante ni detrás.

  • @ no se permite como primer carácter, pero los caracteres subsiguientes pueden utilizar @.

  • La longitud del nombre debe ser mayor que 0 y menor o igual que 128.

Parámetro

Tenga en cuenta las reglas siguientes cuando asigne un nombre a un parámetro.

  • El primer carácter del nombre debe ser una letra, tal como se define en el Estándar Unicode 2.0, o un carácter de subrayado (_).

  • Los caracteres siguientes pueden ser letras o números, tal como se define en el Estándar Unicode 2.0, o un carácter de subrayado (_).

Variable de entorno

Tenga en cuenta las reglas siguientes cuando asigne un nombre a una variable de entorno.

  • Entre los caracteres no válidos, se incluyen los caracteres ASCII/Unicode del 1 al 31, comillas dobles ("), menor que (<), mayor que (>), barra vertical (|), retroceso (\b), NULL (\0) y tabulación (\t).

  • El nombre no puede contener espacios delante ni detrás.

  • @ no se permite como primer carácter, pero los caracteres subsiguientes pueden utilizar @.

  • La longitud del nombre debe ser mayor que 0 y menor o igual que 128.

  • El primer carácter del nombre debe ser una letra, tal como se define en el Estándar Unicode 2.0, o un carácter de subrayado (_).

  • Los caracteres siguientes pueden ser letras o números, tal como se define en el Estándar Unicode 2.0, o un carácter de subrayado (_).

Configuración de catálogo

Ajusta con precisión cómo se comporta el catálogo ajustando las propiedades del catálogo. Las propiedades del catálogo definen cómo se cifra la información confidencial y cómo se conservan las operaciones y los datos de versiones del proyecto. Para establecer las propiedades del catálogo, use el cuadro de diálogo Propiedades del catálogo o llame al procedimiento almacenado catalog.configure_catalog (base de datos de SSISDB). Para ver las propiedades, use el cuadro de diálogo o la consulta catalog.catalog_properties (base de datos de SSISDB). Puede acceder al cuadro de diálogo si hace clic con el botón derecho en SSISDB en el Explorador de objetos.

Limpieza de las operaciones y los datos de versiones del proyecto

Los datos de estado para muchas de las operaciones del catálogo se almacena en tablas de base de datos internas. Por ejemplo, el catálogo realiza el seguimiento del estado de las ejecuciones de paquetes y las implementaciones de proyecto. Para mantener el tamaño de los datos de operaciones, se usa Tareas de mantenimiento de SSIS Server de SQL Server Management Studio para quitar los datos antiguos. Este trabajo del agente de SQL Server se crea al instalar Integration Services .

Puede actualizar o volver a implementar un proyecto de Integration Services implementándolo con el mismo nombre en la misma carpeta en el catálogo. De forma predeterminada, cada vez que vuelve a implementar un proyecto, el catálogo de SSISDB conserva la versión anterior del proyecto. Para mantener el tamaño de los datos de las operaciones, se utiliza el trabajo de mantenimiento del Agente SQL Server para quitar las versiones anteriores de proyectos.

Para ejecutar el trabajo de mantenimiento del servidor SSIS, SSIS crea el inicio de sesión de SQL Server ##MS_SSISServerCleanupJobLogin## . Este inicio de sesión es solo para uso interno de SSIS.

Las siguientes propiedades del catálogo de SSISDB definen cómo se comporta este trabajo del Agente SQL Server . Puede ver y modificar las propiedades mediante el cuadro de diálogo Propiedades del catálogo o mediante catalog.catalog_properties (base de datos de SSISDB) y catalog.configure_catalog (base de datos de SSISDB).

Borrar registros periódicamente
El paso de trabajo de limpieza de operaciones se ejecuta cuando esta propiedad se establece en True.

Período de retención (días)
Define la antigüedad máxima de los datos permitidos para las operaciones (en días). Se quitan los datos más antiguos.

El valor mínimo es un día. El valor máximo solo está limitado por el valor máximo de los datos SQL Server int data. Para más información sobre este tipo de datos, vea int, bigint, smallint y tinyint (Transact-SQL).

Quitar periódicamente versiones anteriores
El paso de trabajo de limpieza de versiones del proyecto se ejecuta cuando esta propiedad se establece en True.

Número máximo de versiones por proyecto
Define cuántas versiones de un proyecto se almacenan en el catálogo. Se quitan las versiones anteriores de proyectos.

Algoritmo de cifrado

La propiedad Algoritmo de cifrado especifica el tipo de cifrado que se utiliza para cifrar los valores de los parámetros confidenciales. Puede elegir entre los siguientes tipos de cifrado.

  • AES_256 (predeterminado)

  • AES_192

  • AES_128

  • DESX

  • TRIPLE_DES_3KEY

  • TRIPLE_DES

  • DES

Al implementar un proyecto de Integration Services en el servidor Integration Services , el catálogo cifra automáticamente los datos del paquete y los valores confidenciales. El catálogo también descifra automáticamente los datos cuando lo recupera. El catálogo de SSISDB emplea el nivel de protección ServerStorage . Para más información, consulte Access Control for Sensitive Data in Packages.

Cambiar el algoritmo de cifrado es una operación que lleva mucho tiempo. En primer lugar, el servidor tiene que utilizar el algoritmo especificado previamente para descifrar todos los valores de configuración. A continuación, el servidor tiene que utilizar el nuevo algoritmo para volver a cifrar los valores. Durante este tiempo, no puede haber otras operaciones de Integration Services en el servidor. Así, para que las operaciones de Integration Services continúen sin interrupción, el algoritmo de cifrado es un valor de solo lectura en el cuadro de diálogo de Management Studio.

Para cambiar la configuración de la propiedad Algoritmo de cifrado , establezca la base de datos de SSISDB en modo de usuario único y, luego, llame al procedimiento almacenado catalog.configure_catalog. Use ENCRYPTION_ALGORITHM para el argumento property_name . Para más información sobre los valores de propiedad admitidos, vea catalog.catalog_properties (base de datos de SSISDB). Para más información sobre el procedimiento almacenado, vea catalog.configure_catalog (base de datos de SSISDB).

Para más información sobre el modo de usuario único, vea Establecer una base de datos en modo de usuario único. Para más información sobre el cifrado y los algoritmos de cifrado en SQL Server, vea los temas de la sección Cifrado de SQL Server.

Para el cifrado se utiliza una clave maestra de base de datos. La clave se crea al crear el catálogo.

En la tabla siguiente se muestran los nombres de propiedad que aparecen en el cuadro de diálogo Propiedades del catálogo y las propiedades correspondientes de la vista de base de datos.

Nombre de la propiedad (cuadro de diálogoPropiedades del catálogo ) Nombre de la propiedad (vista de base de datos)
Nombre del algoritmo de cifrado ENCRYPTION_ALGORITHM
Borrar registros periódicamente OPERATION_CLEANUP_ENABLED​
Período de retención (días) RETENTION_WINDOW
Quitar periódicamente versiones anteriores VERSION_CLEANUP_ENABLED
Número máximo de versiones por proyecto MAX_PROJECT_VERSIONS
Nivel de registro predeterminado de todo el servidor SERVER_LOGGING_LEVEL

Permisos

Los proyectos, los entornos y los paquetes se encuentran en carpetas que son objetos protegibles. Puede conceder permisos a una carpeta, incluido el permiso de MANAGE_OBJECT_PERMISSIONS. MANAGE_OBJECT_PERMISSIONS le permite delegar la administración del contenido de la carpeta a un usuario sin tener que conceder la pertenencia del usuario al rol ssis_admin. También puede conceder permisos a los proyectos, entornos y operaciones. Las operaciones incluyen inicializar Integration Services, implementar proyectos, crear e iniciar ejecuciones, validar proyectos y paquetes, y configurar el catálogo de SSISDB .

Para obtener más información sobre los roles de base de datos, vea Roles de nivel de base de datos.

El catálogo de SSISDB usa un desencadenador DDL, ddl_cleanup_object_permissions, para exigir la integridad de la información sobre permisos para elementos de SSIS protegibles. El desencadenador se activa cuando se quita de la base de datos de SSISDB una entidad de seguridad de base de datos, como un usuario de base de datos, un rol de base de datos o un rol de aplicación de base de datos.

Si la entidad de seguridad ha concedido o denegado los permisos a otras entidades de seguridad, revoque los permisos proporcionados por el otorgante, antes de que la entidad de seguridad se pueda quitar. De lo contrario, se devuelve un mensaje de error cuando el sistema intenta quitar la entidad de seguridad. El desencadenador quita todos los registros de permisos donde la entidad de seguridad de base de datos es un receptor.

Se recomienda que el desencadenador no se deshabilite porque garantiza que no hay ningún registro de permiso huérfano después de que una entidad de seguridad de base de datos se quita de la base de datos de SSISDB .

Administrar permisos

Puede administrar permisos mediante la interfaz de usuario de SQL Server Management Studio , los procedimientos almacenados y el espacio de nombres Microsoft.SqlServer.Management.IntegrationServices .

Para administrar permisos con la interfaz de usuario de SQL Server Management Studio, use los cuadros de diálogo siguientes:

Para administrar permisos mediante Transact-SQL, llame a catalog.grant_permission (base de datos de SSISDB), catalog.deny_permission (base de datos de SSISDB) y catalog.revoke_permission (base de datos de SSISDB). Para ver los permisos efectivos de la entidad de seguridad actual para todos los objetos, consulte catalog.effective_object_permissions (base de datos de SSISDB). Este tema proporciona descripciones de los diferentes tipos de permisos. Para ver los permisos asignados explícitamente al usuario, consulte catalog.explicit_object_permissions (base de datos de SSISDB).

Carpetas

Una carpeta contiene uno o más proyectos y entornos en el catálogo de SSISDB . Puede usar la vista catalog.folders (base de datos de SSISDB) para acceder a información sobre las carpetas del catálogo. Puede utilizar los siguientes procedimientos almacenados para administrar carpetas:

Proyectos y paquetes

Cada proyecto puede contener varios paquetes. Proyectos y paquetes pueden contener parámetros y referencias a los entornos. Puede tener acceso a los parámetros y referencias del entorno mediante el uso de Configure Dialog Box.

Puede realizar otras tareas de proyectos llamando a los siguientes procedimientos almacenados:

Estas vistas proporcionan detalles sobre los paquetes, proyectos y versiones del proyecto.

Parámetros

Use parámetros para asignar valores a las propiedades del paquete en el momento de la ejecución del mismo. Para establecer el valor de un paquete o parámetro de proyecto y borrar el valor, llame a catalog.set_object_parameter_value (base de datos de SSISDB) y catalog.clear_object_parameter_value (base de datos de SSISDB). Para establecer el valor de un parámetro para una instancia de ejecución, llame a catalog.set_execution_parameter_value (base de datos de SSISDB). Puede recuperar los valores de parámetro predeterminados si llama a catalog.get_parameter_values (base de datos de SSISDB).

Estas vistas muestran los parámetros de todos los paquetes y proyectos, así como los valores de los parámetros que se usan para una instancia de ejecución.

Entornos de servidor, variables de servidor y referencias del entorno de servidor

Los entornos de servidor contienen variables de servidor. Los valores variables se pueden usar cuando un paquete se ejecuta o se valida en el servidor Integration Services .

Los siguientes procedimientos almacenados permiten realizar muchas otras tareas de administración para entornos y variables.

Al llamar al procedimiento almacenado catalog.set_environment_variable_protection (base de datos de SSISDB), puede establecer el bit de sensibilidad de una variable.

Para utilizar el valor de una variable de servidor, especifique la referencia entre el proyecto y el entorno del servidor. Puede usar los procedimientos almacenados siguientes para crear y eliminar referencias. También puede indicar si el entorno se puede encontrar en la misma carpeta que el proyecto o en una carpeta diferente.

Para obtener más detalles sobre entornos y variables, consulte estas vistas.

Ejecuciones y validaciones

Una ejecución es una instancia de una ejecución del paquete. Llame a catalog.create_execution (base de datos de SSISDB) y catalog.start_execution (base de datos de SSISDB) para crear e iniciar una ejecución. Para detener una ejecución o una validación de paquete o proyecto, llame a catalog.stop_operation (base de datos de SSISDB).

Para que un paquete en ejecución se ponga en pausa y cree un archivo de volcado, llame al procedimiento almacenado de catalog.create_execution_dump. Un archivo de volcado proporciona información sobre la ejecución de un paquete que puede ayudarle a solucionar problemas de ejecución. Para obtener más información acerca de cómo generar y configurar archivos de volcado, vea Generating Dump Files for Package Execution.

Para obtener más información sobre ejecuciones, validaciones, mensajes que se registran durante las operaciones y la información contextual relacionada con errores, consulte estas vistas.

Puede validar proyectos y paquetes si llama a los procedimientos almacenados catalog.validate_project (base de datos de SSISDB) y catalog.validate_package (base de datos de SSISDB). La vista catalog.validations (base de datos de SSISDB) proporciona detalles sobre validaciones, como las referencias del entorno de servidor que se consideran en la validación, si se trata de una validación de dependencia o de una validación completa, y si para ejecutar el paquete se usa el tiempo de ejecución de 32 bits o el tiempo de ejecución de 64 bits.

Crear el catálogo de SSIS

Después de diseñar y probar paquetes en SQL Server Data Tools, puede implementar los proyectos que contienen los paquetes en un servidor de Integration Services . Para poder implementar los proyectos en el servidor de Integration Services , el servidor debe contener el catálogo de SSISDB . El programa de instalación de SQL Server 2012 (11.x) no crea automáticamente el catálogo; es necesario crear manualmente el catálogo usando las instrucciones siguientes.

Puede crear el catálogo de SSISDB en SQL Server Management Studio. También crea el catálogo mediante programación con Windows PowerShell.

Para crear un catálogo de SSISDB en SQL Server Management Studio

  1. Abra SQL Server Management Studio.

  2. Conéctese al motor de base de datos de SQL Server .

  3. En el Explorador de objetos, expanda el nodo del servidor, haga clic con el botón derecho en el nodo Catálogos de Integration Services y, después, haga clic en Crear catálogo.

  4. Haga clic en Habilitar integración con CLR.

    El catálogo usar los procedimientos almacenados de CLR.

  5. Haga clic en Habilitar la ejecución automática del procedimiento almacenado de Integration Services al iniciar SQL Server para permitir que el procedimiento almacenado catalog.startup se ejecute cada vez que se reinicie la instancia del servidor de SSIS .

    El procedimiento almacenado realiza el mantenimiento del estado de las operaciones del catálogo de SSISDB. Corrige el estado de los paquetes que estaban en ejecución si la instancia del servidor de SSIS se bloquea.

  6. Escriba una contraseña y haga clic en Aceptar.

    La contraseña protege la clave maestra de la base de datos que se usar para cifrar los datos del catálogo. Guarde la contraseña en un lugar seguro. Se recomienda que haga también una copia de seguridad de la clave maestra de la base de datos. Para más información, consulte Back Up a Database Master Key.

Para crear el catálogo de SSISDB mediante programación

  1. Ejecute el siguiente script de PowerShell:

    # Load the IntegrationServices Assembly  
    [Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Management.IntegrationServices")  
    
    # Store the IntegrationServices Assembly namespace to avoid typing it every time  
    $ISNamespace = "Microsoft.SqlServer.Management.IntegrationServices"  
    
    Write-Host "Connecting to server ..."  
    
    # Create a connection to the server  
    $sqlConnectionString = "Data Source=localhost;Initial Catalog=master;Integrated Security=SSPI;"  
    $sqlConnection = New-Object System.Data.SqlClient.SqlConnection $sqlConnectionString  
    
    # Create the Integration Services object  
    $integrationServices = New-Object $ISNamespace".IntegrationServices" $sqlConnection  
    
    # Provision a new SSIS Catalog  
    $catalog = New-Object $ISNamespace".Catalog" ($integrationServices, "SSISDB", "P@assword1")  
    $catalog.Create()  
    
    

    Para obtener más ejemplos de cómo usar Windows PowerShell y el espacio de nombres Microsoft.SqlServer.Management.IntegrationServices, vea la entrada del blog SSIS and PowerShell in SQL Server 2012 (SSIS y PowerShell en SQL Server 2012), en blogs.msdn.com. Para obtener información general sobre el espacio de nombres y ejemplos de código, vea la entrada del blog sobre el Modelo de objetos administrados del catálogo de SSISen blogs.msdn.com.

Propiedades del catálogo, cuadro de diálogo

Utilice el cuadro de diálogo Propiedades del catálogo para configurar el catálogo de SSISDB. Las propiedades del catálogo definen cómo se cifra la información confidencial, cómo se conservan las operaciones y los datos de versiones del proyecto, y el tiempo de espera de las operaciones de validación. El catálogo de SSISDB es un punto centralizado de almacenamiento y administración para los proyectos, paquetes, parámetros y entornos de Integration Services .

También puede ver las propiedades del catálogo en la vista catalog.catalog_properties y establecer las propiedades mediante el procedimiento almacenado catalog.configure_catalog. Para más información, vea catalog.catalog_properties (base de datos SSISDB) y catalog.configure_catalog (base de datos SSISDB).

¿Qué desea hacer?

Abrir el cuadro de diálogo Propiedades del catálogo

  1. Abra SQL Server Management Studio.

  2. Conéctese al motor de base de datos de Microsoft SQL Server.

  3. En el Explorador de objetos, expanda el nodo Integration Services , haga clic con el botón derecho en SSISDBy luego haga clic en Propiedades.

Configurar las opciones

Opciones

En la tabla siguiente se describen algunas propiedades del cuadro de diálogo y las propiedades correspondientes de la vista catalog.catalog_properties.

Nombre de la propiedad (cuadro de diálogo Propiedades del catálogo) Nombre de la propiedad (vista catalog.catalog_properties) Descripción
Nombre del algoritmo de cifrado ENCRYPTION_ALGORITHM Especifica el tipo de cifrado que se utiliza para cifrar los valores de los parámetros confidenciales del catálogo. Los posibles valores son los siguientes:

DES

TRIPLE_DES

TRIPLE_DES_3KEY

DESPX

AES_128

AES_192

AES_256 (predeterminado)
Número máximo de versiones por proyecto MAX_PROJECT_VERSIONS Especifica cuántas versiones de un proyecto se almacenan en el catálogo. Las versiones anteriores de los proyectos que superen el máximo se quitarán cuando se ejecute el trabajo de limpieza de versiones del proyecto.
Borrar registros periódicamente OPERATION_CLEANUP_ENABLED Establezca la propiedad en True para indicar que se ejecuta el trabajo limpieza de operaciones del Agente SQL Server. En caso contrario, establezca la propiedad en False.
Período de retención (días) RETENTION_WINDOW Especifique la antigüedad máxima de los datos permitidos para las operaciones (en días). El trabajo limpieza de operaciones del Agente SQL quitará los datos anteriores al número de días especificado.

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

Se aplica a: SQL Server 2016 (13.x) y posteriores No compatible. Azure SQL Database No compatible. Azure Synapse Analytics No compatible. Analytics Platform System (PDW)

SQL Server 2019 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 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 más información sobre 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 Studiopara realizar una copia de seguridad de la base de datos de SSISDB. Para más información, vea: Cómo: Realizar una copia de seguridad de una base de datos (SQL Server Management Studio).

  4. Realice los procedimientos siguientes para generar el script CREATE LOGIN para ##MS_SSISServerCleanupJobLogin##. Para obtener más información, consulte 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 derecho en ##MS_SSISServerCleanupJobLogin## y, después, 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 ha creado el catálogo de SSISDB, genere el script CREATE PROCEDURE para sp_ssis_startup como se indica aquí. Para obtener más información, vea CREATE PROCEDURE (Transact-SQL).

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

    2. Haga clic con el botón derecho en dbo.sp_ssis_startupy, después, 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 derecho en el trabajo de mantenimiento del Servidor SSIS y, después, 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 nunca se ha creado el catálogo de SSISDB, habilite Common Language Runtime (CLR) mediante la ejecución del procedimiento almacenado sp_configure. Para más información, vea sp_configure (Transact-SQL) y clr enabled (opción).

    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\YourSQLServerDefaultCompatibilityLevel\DTS\Binn\Microsoft.SqlServer.IntegrationServices.Server.dll'  
    

    Puede encontrar el valor de YourSQLServerDefaultCompatibilityLevel en una lista de niveles de compatibilidad predeterminados de SQL Server.

    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 Creating an Assembly.

    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 Studiopara restaurar la base de datos de SSISDB a partir de una copia de seguridad. Para obtener más información, vea los temas siguientes:

  4. Ejecute los scripts que ha creado en Para realizar una copia de seguridad de la base de datos de SSIS 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 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 hacerlo, 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 Encryption Hierarchy.

    • 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

      Verá 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á restaurando la base de datos, verá 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 hacerlo, 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 más información, consulte Run Integration Services (SSIS) Packages (Ejecución de paquetes de Integration Services [SSIS]).

Para mover la base de datos de SSIS

  • Siga las instrucciones para mover las bases de datos de usuarios. Para más información, consulte Move User Databases.

    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 más información, vea Para realizar una copia de seguridad de la base de datos de SSIS.

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

Actualización del catálogo de SSIS (SSISDB)

Ejecute el Asistente para actualización de SSISDB para actualizar la base de datos del catálogo de SSIS, SSISDB, cuando esta sea anterior a la versión actual de la instancia de SQL Server. Es posible que la base de datos sea anterior cuando se presenta alguna de las siguientes condiciones.

  • Restauró la base de datos de una versión anterior de SQL Server.

  • No quitó la base de datos de un grupo de disponibilidad AlwaysOn antes de actualizar la instancia de SQL Server. Esta condición evita la actualización automática de la base de datos. Para obtener más información, vea Upgrading SSISDB in an availability group.

El asistente solo puede actualizar la base de datos en una instancia de servidor local.

Actualización del catálogo de SSIS (SSISDB) mediante la ejecución del Asistente para actualización de SSISDB

  1. Copia de seguridad de la base de datos Catálogo de SSIS, SSISDB.

  2. En SQL Server Management Studio, expanda el servidor local y luego expanda Catálogos de Integration Services.

  3. Haga clic con el botón derecho en SSISDBy, después, seleccione Actualización de base de datos para iniciar el Asistente para actualización de SSISDB. O bien, inicie el Asistente para actualización de SSISDB mediante la ejecución de C:\Program Files\Microsoft SQL Server\140\DTS\Binn\ISDBUpgradeWizard.exe con permisos elevados en el servidor local.

    Inicio del Asistente para actualización de SSISDB

  4. En la página Seleccionar instancia , seleccione una instancia de SQL Server en el servidor local.

    Importante

    El asistente solo puede actualizar la base de datos en una instancia de servidor local.

    Active la casilla para indicar que ha realizado la copia de seguridad de la base de datos SSISDB antes de ejecutar al asistente.

    Selección del servidor en el Asistente para actualización de SSISDB

  5. Seleccione Actualizar para actualizar la base de datos Catálogo de SSIS.

  6. En la página Resultado , examine los resultados.

    Examen de resultados en el Asistente para actualización de SSISDB

AlwaysOn para el catálogo de SSIS (SSISDB)

La característica Grupos de disponibilidad AlwaysOn es una solución de alta disponibilidad y de recuperación ante desastres que proporciona una alternativa empresarial a la creación de reflejo de la base de datos. Un grupo de disponibilidad admite un entorno de conmutación por error para un conjunto discreto de bases de datos de usuario, conocido como “bases de datos de disponibilidad”, que realizan la conmutación por error conjuntamente. Para obtener más información, vea Grupos de disponibilidad Always On.

Con el objetivo de ofrecer alta disponibilidad al catálogo de SSIS (SSISDB) y su contenido (proyectos, paquetes, registros de ejecución, etc.), puede agregar la base de datos SSISDB (al igual que cualquier otra base de datos de usuario) a un grupo de disponibilidad AlwaysOn. Cuando se produce una conmutación por error, uno de los nodos secundarios se convierte automáticamente en el nuevo nodo principal.

Nota:

Los grupos de disponibilidad independientes, que se introdujeron en SQL Server 2022, aún no se admiten.

Importante

Cuando se produce una conmutación por error, los paquetes que se estuvieran ejecutando no se reinician o reanudan.

Esta sección:

  1. Requisitos previos

  2. Configuración de la compatibilidad con SSIS para AlwaysOn

  3. Actualización de SSISDB en un grupo de disponibilidad

Requisitos previos

Lleve a cabo los siguientes pasos, que constituyen unos requisitos previos, antes de habilitar la compatibilidad de AlwaysOn para la base de datos SSISDB.

  1. Configure un clúster de conmutación por error de Windows. Consulte la entrada de blog Installing the Failover Cluster Feature and Tools for Windows Server 2012 (Instalación de las herramientas y la característica de clúster de conmutación por error para Windows Server 2012) a fin de obtener instrucciones. Instale la característica y las herramientas en todos los nodos del clúster.

  2. Instale SQL Server 2016 con la característica Integration Services (SSIS) en cada nodo del clúster.

  3. Habilite los Grupos de disponibilidad AlwaysOn para cada instancia de SQL Server. Consulte Habilitar y deshabilitar grupos de disponibilidad AlwaysOn (SQL Server) para obtener más información.

Configuración de la compatibilidad con SSIS para AlwaysOn

Importante

  • Debe realizar estos pasos en el nodo principal del grupo de disponibilidad.
  • Debe habilitar la compatibilidad con SSIS para AlwaysOn después de agregar SSISDB a un grupo de disponibilidad AlwaysOn.

Paso 1: creación del catálogo de Integration Services

  1. Inicie SQL Server Management Studio y conéctese a una instancia de SQL Server en el clúster que quiere establecer como el nodo principal del grupo de alta disponibilidad AlwaysOn para SSISDB.

  2. En el Explorador de objetos, expanda el nodo del servidor, haga clic con el botón derecho en el nodo Catálogos de Integration Services y, después, haga clic en Crear catálogo.

  3. Haga clic en Habilitar integración con CLR. El catálogo usar los procedimientos almacenados de CLR.

  4. Haga clic en Habilitar la ejecución automática del procedimiento almacenado de Integration Services al iniciar SQL Server para permitir que el procedimiento almacenado catalog.startup se ejecute cada vez que se reinicie la instancia del servidor de SSIS . El procedimiento almacenado realiza el mantenimiento del estado de las operaciones del catálogo de SSISDB. Corrige el estado de los paquetes que estaban en ejecución si y cuando la instancia del servidor de SSIS se bloquea.

  5. Escriba una contraseñay haga clic en Aceptar. La contraseña protege la clave maestra de la base de datos que se usar para cifrar los datos del catálogo. Guarde la contraseña en un lugar seguro. Se recomienda que haga también una copia de seguridad de la clave maestra de la base de datos. Para más información, consulte Back Up a Database Master Key.

Paso 2: adición de SSISDB a un grupo de disponibilidad AlwaysOn

Puede agregar la base de datos SSISDB a un grupo de disponibilidad AlwaysOn prácticamente con el mismo procedimiento que emplearía para agregar cualquier otra base de datos de usuario a un grupo de disponibilidad. Consulte Usar el Asistente para grupo de disponibilidad (SQL Server Management Studio).

Escriba la contraseña que especificó al crear el catálogo de SSIS en la página Seleccionar bases de datos del asistente Nuevo grupo de disponibilidad.

Asistente para nuevo grupo de disponibilidad

Importante

Para evitar problemas con la clave maestra después de una conmutación por error, use el método Copia de seguridad completa de registros y bases de datos para agregar la base de datos SSISDB al grupo de disponibilidad Always On.

Paso 3: habilitación de la compatibilidad con SSIS para AlwaysOn

Después de crear el catálogo de Integration Services, haga clic con el botón derecho en el nodo Catálogos de Integration Services y haga clic en Enable Always On Support (Habilitar compatibilidad con Always On). Debería ver el siguiente cuadro de diálogo Enable Support for Always On (Habilitar compatibilidad con Always On). Si este elemento de menú está deshabilitado, confirme que tiene todos los requisitos previos instalados y haga clic en Actualizar.

Habilitar compatibilidad con AlwaysOn

Advertencia

No se admite la conmutación por error automática de la base de datos SSISDB hasta que habilite la compatibilidad con SSIS para AlwaysOn.

Las réplicas secundarias recién agregadas desde el grupo de disponibilidad AlwaysOn se mostrarán en la tabla. Haga clic en el botón Conectar... de cada réplica de la lista y escriba las credenciales de autenticación para conectarse a ella. La cuenta de usuario debe ser miembro del grupo sysadmin en cada réplica para habilitar la compatibilidad con SSIS para AlwaysOn. Después de conectarse correctamente a cada réplica, haga clic en Aceptar a fin de habilitar la compatibilidad con SSIS para AlwaysOn.

Si la opción Habilitar compatibilidad con AlwaysOn del menú contextual parece estar desactivada después de haber completado los requisitos previos, pruebe lo siguiente:

  1. Actualice el menú contextual; para ello, haga clic en la opción Actualizar.
  2. Asegúrese de que se está conectando al nodo principal. Tiene que habilitar la compatibilidad con AlwaysOn en el nodo principal.
  3. Asegúrese de que la versión de SQL Server es 13.0 o posterior. SSIS solo admite AlwaysOn en SQL Server 2016 y versiones posteriores.

Actualización de SSISDB en un grupo de disponibilidad

Si va a actualizar SQL Server desde una versión anterior y SSISDB se encuentra en un grupo de disponibilidad AlwaysOn, la regla “Comprobación de SSISDB en grupo de disponibilidad AlwaysOn” podría bloquear la actualización. Este bloqueo se produce porque la actualización se ejecuta en modo de usuario único, mientras que una base de datos de disponibilidad debe ser multiusuario. Por lo tanto, durante la actualización o la aplicación de una revisión, todas las bases de datos disponibilidad, incluida SSISDB, se desconectan y no se actualizan ni se les aplica la revisión. Para permitir que la actualización continúe, quite SSISDB primero del grupo de disponibilidad; después, actualice cada nodo o aplíquele una revisión y, por último, vuelva a agregar SSISDB al grupo de disponibilidad.

Si la regla “Comprobación de SSISDB en grupo de disponibilidad AlwaysOn” está causando un bloqueo, siga estos pasos para actualizar SQL Server.

  1. Quite la base de datos SSISDB del grupo de disponibilidad. Para obtener más información, vea Quitar una base de datos secundaria de un grupo de disponibilidad (SQL Server) y Quitar una base de datos principal de un grupo de disponibilidad (SQL Server).

  2. Haga clic en Volver a ejecutar en el Asistente para actualización. Se aplicará la regla “Comprobación de SSISDB en grupo de disponibilidad AlwaysOn”.

  3. Haga clic en Siguiente para continuar con la actualización.

  4. Después de actualizar todos los nodos, vuelva a agregar la base de datos SSISDB al grupo de disponibilidad AlwaysOn. Para obtener más información, vea Agregar una base de datos a un grupo de disponibilidad (SQL Server).

Si no se encuentra con un bloqueo al actualizar SQL Server y SSISDB está en un grupo de disponibilidad AlwaysOn, actualice SSISDB por separado tras actualizar el motor de base de datos de SQL Server. Use el Asistente para actualización de SQL Server Integration Services a fin de actualizar SSISDB como se describe en el siguiente procedimiento.

  1. Saque la base de datos SSISDB del grupo de disponibilidad o elimine el grupo de disponibilidad, si SSISDB es la única base de datos de este. Inicie SQL Server Management Studio en el nodo principal del grupo de disponibilidad para realizar esta tarea.

  2. Quite la base de datos SSISDB de todos los nodos de réplicas.

  3. Actualice la base de datos SSISDB en el nodo principal. En elExplorador de objetos de SQL Server Management Studio, expanda Catálogos de Integration Services, haga clic con el botón derecho en SSISDBy, después, seleccione Actualización de base de datos. Siga las instrucciones del Asistente para actualización de SSISDB a fin de actualizar la base de datos. Inicie el Asistente para actualización de SSIDB localmente en el nodo primario.

  4. Siga las instrucciones de Paso 2: Adición de SSISDB a un grupo de disponibilidad Always On para volver a agregar SSISDB a un grupo de disponibilidad.

  5. Siga las instrucciones de Paso 3: Habilitación de la compatibilidad con SSIS para Always On.

Catálogo de SSISDB y delegación en escenarios de salto doble

De forma predeterminada, la invocación remota de paquetes SSIS almacenados en el catálogo de SSISDB no admite la delegación de credenciales, lo que a veces se conoce como salto doble.

Imagine un escenario en el que un usuario inicia sesión en la máquina cliente A e inicia SQL Server Management Studio (SSMS). Desde dentro de SSMS, el usuario se conecta a un servidor SQL Server hospedado en la máquina B, que tiene el catálogo de SSISDB. El paquete SSIS se almacena en este catálogo de SSISDB y el paquete, a su vez, se conecta a un servicio SQL Server que se ejecuta en la máquina C (el paquete también podría acceder a otros servicios). Cuando el usuario invoca la ejecución del paquete SSIS desde la máquina A, en primer lugar SSMS pasa correctamente las credenciales del usuario de la máquina A a la máquina B (donde el proceso de tiempo de ejecución de SSIS está ejecutando el paquete). El proceso de ejecución de SSIS en tiempo de ejecución (ISServerExec.exe) ahora es necesario para delegar las credenciales de usuario de la máquina B a la máquina C a fin de que la ejecución se complete correctamente. Sin embargo, la delegación de credenciales no está habilitada de forma predeterminada.

Un usuario puede habilitar la delegación de credenciales si concede el derecho Confiar en este usuario para la delegación a cualquier servicio (solo Kerberos) a la cuenta de servicio de SQL Server (en la máquina B), que inicia ISServerExec.exe como un proceso secundario. Este proceso se conoce como la configuración de la delegación no restringida o la delegación abierta para una cuenta de servicio de SQL Server. Antes de conceder este derecho, considere si cumple los requisitos de seguridad de su organización.

SSISDB no admite la delegación restringida. En un entorno de doble salto, si la cuenta de servicio del servidor SQL Server que hospeda el catálogo de SSISDB (la máquina B en nuestro ejemplo) está configurada para la delegación restringida, ISServerExec.exe no podrá delegar las credenciales en la tercera máquina (máquina C). Esto es aplicable en los escenarios en los que esté habilitada la Protección de credenciales de Windows, que requiere de forma obligatoria que se configure la delegación restringida.

Contenido relacionado