Creación, configuración y administración de trabajos elásticos

Se aplica a:Azure SQL Database

En este artículo se proporcionan los pasos necesarios para crear, configurar y administrar trabajos elásticos para Azure SQL Database. Puede realizar muchos de estos pasos en Azure Portal y mediante T-SQL, PowerShell y la API de REST. Los trabajos elásticos habilitan la ejecución de uno o más scripts de Transact-SQL (T-SQL) en paralelo en varias bases de datos. Para más información, puede obtener más información sobre los conceptos de automatización de trabajos en Azure SQL Database o leer más sobre trabajos elásticos en Azure SQL Database.

Creación y configuración del agente de trabajos elásticos

  1. Cree o identifique una base de datos de Azure SQL vacía S1 o superior, usando el modelo de compra de DTU. Esta base de datos debe estar en el mismo servidor que el agente de trabajo. Esta base de datos se usa como la base de datos de trabajos durante la creación del agente de trabajos elásticos. Puede crear una base de datos única mediante Azure Portal, Azure CLI, Azure CLI (sql up) o PowerShell.

  2. Cree un agente de trabajos elásticos en Azure Portal o con PowerShell.

    Las instrucciones para crear un agente de trabajo elástico en Azure Portal son las siguientes:

    1. En Azure Portal, busque Agentes de trabajos elásticos. Seleccione Crear para comenzar a aprovisionar un nuevo recurso de agente de trabajo elástico. O bien, siga este vínculo para crear un agente de trabajo elástico en Azure Portal.
    2. Proporcione un nombre de agente de trabajo elástico.
    3. Elija la Suscripción y el Grupo de recursos para el agente. Si es necesario, cree un nuevo grupo de recursos. Un trabajo elástico puede tener como destino bases de datos en otros grupos de recursos, suscripciones, incluso en otras regiones de Azure.
    4. Elija el servidor lógico de Azure SQL Database para que sea el servidor del agente de trabajo elástico.
    5. Elija una base de datos de trabajo en el servidor lógico para que sea la base de datos del agente de trabajo elástico. Algunas validaciones garantizan que la base de datos sea adecuada.
    6. En Nivel de servicio, elija JA 100.
    7. Seleccione Siguiente: Identidad.
    8. Hay dos métodos de autenticación para que el agente de trabajo tenga como destino servidores o bases de datos, autenticación de Microsoft Entra con una identidad administrada asignada por el usuario (UMI) o credenciales de ámbito de base de datos.
      1. Cree la UMI fuera del proceso de aprovisionamiento del agente de trabajo elástico o use una UMI existente. Seleccione Añadir identidad administrada asignada por el usuario. Seleccione una UMI. Seleccione Agregar.
      2. Para usar credenciales de ámbito de base de datos, consulte los pasos que se indican más adelante en este tutorial.
    9. Seleccione Siguiente: Etiquetas.
    10. Considere la posibilidad de usar las etiquetas de Azure. Por ejemplo, la etiqueta "Propietario" o "CreadoPor" para identificar quién creó el recurso y la etiqueta Ambiente para identificar si este recurso está en producción, desarrollo, etc. Para más información, consulte Desarrollo de la estrategia de nomenclatura y etiquetado para los recursos de Azure.
    11. Seleccione Revisar + crear.
    12. Valide las nuevas selecciones del agente de trabajo elástico en la página Revisar + crear y, a continuación, seleccione Crear.
    13. Se requieren pasos adicionales para autenticarse en servidores de destino o bases de datos. Siga los pasos descritos en las secciones siguientes de este artículo tutorial.

Creación de la autenticación del agente de trabajo

El agente de trabajos elásticos debe poder autenticarse en cada servidor o base de datos de destino. En esta sección, tratamos los pasos necesarios para que el agente de trabajo elástico se autentique en servidores o bases de datos en grupos de destino.

Hay dos opciones para la autenticación de un agente de trabajo elástico en destinos:

Utilice la autenticación de Microsoft Entra con una identidad administrada asignada por el usuario (UMI)

Use la autenticación de Microsoft Entra (anteriormente Azure Active Directory) con una identidad administrada asignada por el usuario (UMI). Este es el método de autenticación recomendado.

  1. Habilite la autenticación de Microsoft Entra (anteriormente Azure Active Directory) en todos los servidores lógicos o bases de datos de destino del trabajo y en el servidor lógico de salida del trabajo.
  2. Cree una identidad administrada asignada por el usuario (UMI) o use una existente.
  3. Asigne la UMI al agente de trabajo elástico creado.
    • Se recomienda asignar una UMI al crear el agente de trabajo elástico. Consulte los pasos descritos en Creación y configuración del agente de trabajo elástico. Al crear un agente de trabajo en Azure Portal, en la pestaña Identidad, asigne al agente de trabajo elástico.
    • Para actualizar un agente de trabajo elástico existente para usar una UMI, en la página de Azure Portal del agente de trabajos elásticos, vaya a Identidad en el menú Seguridad del menú de recursos. Seleccione y asigne la UMI al agente de trabajo elástico.
    • Al crear o actualizar un agente de trabajo elástico con los cmdlets New-AzSqlElasticJobAgent o Set-AzSqlElasticJobAgent de PowerShell, use los parámetros: -IdentityType UserAssigned -IdentityID <identity resource path>. Por ejemplo:
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • La API de REST también se puede usar para crear o actualizar el agente de trabajo elástico.
  4. Cree un grupo de destino y añada destinos para los trabajos. Defina el grupo de destino y los destinos (las bases de datos en las que se quiere ejecutar el trabajo) mediante PowerShell o defina el grupo de destino y los destinos mediante T-SQL.
  5. En cada uno de los servidores de destino o bases de datos, cree un usuario independiente asignado a la credencial con ámbito de base de datos o UMI, mediante T-SQL o PowerShell:
    1. Creación de la autenticación del trabajo con T-SQL.
    2. Cree la autenticación del trabajo con PowerShell.
  6. En la base de datos de salida, cree y asigne permisos al usuario del trabajo de la UMI. Conéctese a la base de datos de salida y ejecute el siguiente script de ejemplo para un usuario denominado jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Si los parámetros de salida se especifican en la llamada sp_add_jobstep en the @output_table_name argument, se debe conceder permisos a la UMI del agente de trabajo o a la credencial con ámbito de base de datos para CREATE TABLE e INSERT datos en esa tabla de salida.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. En cada uno de los servidores de destino/bases de datos, conceda al usuario de la base de datos los permisos necesarios para ejecutar scripts de trabajo. Estos permisos varían en función de los requisitos de la consulta T-SQL.

Uso de credenciales de ámbito de base de datos

Puede usar una credencial de ámbito de base de datos en la base de datos de trabajo y en cada servidor o base de datos de destino para la autenticación. En el pasado, las credenciales de ámbito de base de datos eran la única opción disponible con trabajos elásticos.

Nota:

Si se asigna una UMI al Agente de trabajo, no se usará la autenticación de SQL para conectarse a sus destinos. El Agente de trabajo solo usará la autenticación de Microsoft Entra con la UMI para conectarse a todas sus bases de datos de destino.

  1. Cree una credencial de ámbito de base de datos en la base de datos de trabajo.
    1. Uso de PowerShell para crear una credencial de ámbito de base de datos
    2. Use T-SQL para crear una credencial de ámbito de base de datos.
  2. Defina el grupo de destino (las bases de datos en las que se quiere ejecutar el trabajo) mediante PowerShell o defina los destinos mediante T-SQL.
  3. Cree un inicio de sesión o usuario del agente de trabajo en cada base de datos de destino donde se ejecutará el trabajo. El inicio de sesión o usuario de cada servidor o base de datos de destino debe tener el mismo nombre que la identidad de la credencial de ámbito de base de datos para el usuario del trabajo y la misma contraseña que la credencial de ámbito de base de datos para el usuario del trabajo.
    1. Use PowerShell para agregar las credenciales y el usuario a cada base de datos de destino.
    2. Para obtener más información sobre cómo agregar usuarios, consulte Autorización del acceso al servidor y a la base de datos mediante inicios de sesión y cuentas de usuario.
  4. En la base de datos de salida, cree y asigne permisos al usuario del trabajo.
    1. Conéctese a la base de datos master del servidor lógico que hospeda la base de datos de salida. Si aún no existe, cree el inicio de sesión autenticado de SQL con el mismo nombre que la identidad de la credencial de ámbito de base de datos para el usuario del trabajo y la misma contraseña que la credencial de ámbito de base de datos para el usuario del trabajo.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Conéctese a la base de datos de salida y ejecute el siguiente script de ejemplo para un usuario denominado job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Si los parámetros de salida se especifican en la llamada sp_add_jobstep en el argumento @output_table_name, se debe conceder permisos a la UMI del agente de trabajo o a la credencial con ámbito de base de datos para CREATE TABLE e INSERT datos en esa tabla de salida.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. En cada uno de los servidores de destino/bases de datos, conceda al usuario de la base de datos los permisos necesarios para ejecutar scripts de trabajo. Estos permisos varían en función de los requisitos de la consulta T-SQL.

Creación, ejecución y administración de trabajos

  1. Use PowerShell para crear un trabajo o use T-SQL para crear un trabajo.
  2. Agregue pasos a cada trabajo elástico. Se debe elegir un grupo de destino para cada paso de trabajo. Use PowerShell para agregar pasos de trabajo o use T-SQL para agregar pasos de trabajo.
  3. Use PowerShell para ejecutar un trabajo o use T-SQL para ejecutar un trabajo.
  4. Supervise el estado de ejecución del trabajo mediante Azure Portal, supervise los trabajos con PowerShell o supervise los trabajos con T-SQL.

Configuración del punto de conexión privado de trabajos elásticos de Azure SQL

Se puede acceder a cada servidor de destino a través de un punto de conexión privado administrado por el servicio, creado y administrado por Microsoft, y exclusivamente para su uso con trabajos elásticos. La creación de un punto de conexión privado de trabajos elásticos establece un vínculo privado entre el trabajo elástico y el servidor de destino. Una vez configurada, toda la comunicación entre el agente de trabajo elástico y el servidor de destino se producirá a través del punto de conexión privado.

La configuración es fácil. Debe crear un punto de conexión privado para cada servidor de destino deseado y el servidor de salida del trabajo para habilitar esta comunicación.

  1. En el menú de navegación del agente de trabajo elástico, en Seguridad, seleccione Puntos de conexión privados.
  2. Seleccione Agregar un servidor y crear un punto de conexión privado.
  3. Se abre la ventana Crear punto de conexión privado.
    1. Puede seleccionar un servidor de destino desde cualquier suscripción, en cualquier lugar de Azure.
    2. Seleccione un servidor lógico de Azure SQL Database de destino en esa suscripción.
    3. Proporcione un Nombre de punto de conexión privado.
  4. Seleccione Creación de un punto de conexión privado. La implementación tardará unos minutos en completarse. Pronto, el Estado de conexión en la página de Puntos de conexión privados mostrará Pendiente.
  5. En Azure Portal, vaya al servidor lógico de Azure SQL Database de destino.
  6. Como administrador de ese servidor lógico de Azure SQL Database de destino, en el menú de navegación de SQL Server, en Seguridad, seleccione Redes.
  7. Seleccione Acceso privado.
  8. Apruebe la solicitud del punto de conexión privado pendiente.
  9. El Estado de conexión en la página de Puntos de conexión privados mostrará Aprobado. Ahora, cualquier comunicación entre el agente de trabajo y las bases de datos o grupos elásticos de ese servidor lógico de Azure SQL Database de destino pasará por el punto de conexión privado administrado por el servicio.
  10. Como administrador de ese servidor lógico de Azure SQL Database de destino, en el menú de navegación de SQL Server, en Seguridad, seleccione Redes. No es necesario habilitar el Acceso público para los trabajos elásticos.

Configuración de alertas del agente de trabajo con Azure Monitor

Configure alertas de Azure Monitor en el recurso del agente de trabajo elástico para recibir notificaciones sobre el estado de ejecución del trabajo. Por ejemplo, puede recibir una notificación de error o éxito de un trabajo a través de grupos de acciones configurados por el usuario.

Puede crear alertas del agente de trabajo elástico mediante Azure Portal, PowerShell o la API de REST.

Creación de una alerta de agente de trabajo mediante Azure Portal

Cree Reglas de alertas de Azure Monitor con Azure Portal, la CLI de Azure, PowerShell y la API de REST. Las reglas de alerta para trabajos elásticos funcionan de forma similar a otras reglas de alerta, como para Azure SQL Database.

Para proceder con Azure Portal:

  1. En el menú de recursos de Azure Portal para el agente de trabajo elástico, vaya al menú Supervisar y seleccione Alertas.
  2. En la solicitud de Configurar reglas de alertas en este recurso, seleccione Crear regla de alertas.
  3. En la página Crear una regla de alertas, se abre la página Seleccionar una señal. Seleccione las métricas de trabajos elásticos Ejecuciones de trabajos elásticos con errores, Ejecuciones de trabajos elásticos correctas o Ejecuciones de trabajos elásticos con tiempo de espera agotado. Captura de pantalla de Azure Portal en la que se muestra la página Crear una regla de alertas.
  4. En Lógica de alerta, deje el valor de Umbral, Tipo de agregación, Operador y Unidad como valor predeterminado.
  5. Establezca el valorUmbral en 0. Deje las demás opciones como predeterminadas.
  6. Seleccione Siguiente: Acciones.
  7. Seleccione Crear grupo de acciones o elija un grupo de acciones existente.
    1. Cree grupos de acciones de alerta de Azure Monitor en Azure Portal para establecer la configuración de notificación, por ejemplo, para enviar mensajes de correo electrónico a los administradores o desarrolladores del error.
    2. Pruebe el Grupo de acciones de alerta.
  8. Seleccione Siguiente: Detalles.
  9. Proporcione una Suscripción y un Grupo de recursos como Detalles del proyecto.
  10. Proporcione los Detalles de la regla de alertas para la comunicación de alertas. Proporcione un Nombre de regla de alerta.
  11. Seleccione Etiquetas y proporcione metadatos, como CreadoPor o Ambiente para esta alerta.
  12. Seleccione Revisar + crear. Seleccione Crear. La regla de alertas puede tardar unos minutos en mostrarse en Azure Portal.
  13. Opcionalmente, cree reglas de procesamiento de alertas de Azure Monitor mediante Azure Portal, la CLI de Azure o PowerShell. Use reglas de procesamiento de alertas para decidir qué ocurre cuando se desencadena una alerta, como suprimir notificaciones o aplicar acciones específicas a determinados tipos de alertas.

Escalado de los agentes de trabajo

De forma predeterminada, los agentes de trabajo se crean en JA100, lo que permite hasta 100 ejecuciones de trabajos elásticos simultáneamente. Iniciar un cambio de nivel de servicio es una operación asincrónica y el nuevo nivel de servicio estará disponible después de un breve retraso de aprovisionamiento.

Si necesita más de 100 ejecuciones simultáneas de agentes de trabajos elásticos, hay más niveles de servicio disponibles. Consulte Niveles de capacidad simultáneos. Actualmente, puede cambiar el nivel de servicio de un agente de trabajo a través de Azure Portal, PowerShell o la API de REST.

Si se supera el nivel de servicio con trabajos simultáneos, se crearán retrasos de puesta en cola antes de que los trabajos comiencen por encima del límite de trabajos simultáneos del nivel de servicio.

Escalado del agente de trabajos elásticos mediante Azure Portal

  1. Vaya a la página Agente de trabajo elástico en Azure Portal.
  2. Seleccione Plan de tarifa o seleccione Escalar o reducir verticalmente en el menú contextual.
  3. Elija un nuevo nivel de servicio en la lista desplegable Nivel de servicio.
  4. Revise la tarjeta de coste.
  5. Selecciona Actualización.

Escalado del agente de trabajos elásticos mediante PowerShell

El parámetro opcional -ServiceObjective para Set-AzSqlElasticJobAgent se puede usar para especificar un nuevo objetivo de servicio. Por ejemplo:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

Escalado del agente de trabajos elásticos mediante la API de REST

Puede usar la API de REST del agente de trabajo para escalar un agente de trabajo. Por ejemplo:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}