Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:Azure SQL Database
En este artículo se revisan las funcionalidades y los detalles de los trabajos elásticos para Azure SQL Database.
- Para ver un tutorial sobre cómo configurar trabajos elásticos, consulte el tutorial sobre trabajos elásticos.
- Obtenga más información sobre los conceptos de automatización en las plataformas de base de datos de Azure.
Información general sobre trabajos elásticos
Puede crear y programar trabajos elásticos que se ejecutan periódicamente en una o varias bases de datos de Azure SQL. Los trabajos ejecutan consultas Transact-SQL (T-SQL) y realizan tareas de mantenimiento.
Puede definir bases de datos de destino o grupos de bases de datos en las que se ejecuta el trabajo. También puede definir programaciones para ejecutar un trabajo. Todas las fechas y horas de los trabajos elásticos se encuentran en la zona horaria UTC.
Un trabajo gestiona la tarea de autenticarse en la base de datos de destino. También defines, mantienes y conservas scripts de Transact-SQL para ejecutarlos en un grupo de bases de datos.
Cada trabajo registra el estado de ejecución y vuelve a intentar automáticamente las operaciones si se produce algún error.
Cuándo utilizar trabajos elásticos
Use la automatización de trabajos elásticos en los escenarios siguientes:
-
Automatice las tareas de administración y programe para que se ejecuten todos los días laborables o después del horario, por ejemplo.
- Implemente los cambios de esquema y administre las credenciales.
- Recopile datos de rendimiento o registros de inquilino (cliente).
- Actualización de datos de referencia (información común a todas las bases de datos).
- Carga de datos desde Azure Blob Storage.
-
Configure los trabajos para que se ejecuten en una colección de bases de datos de forma periódica, como durante las horas de poca actividad.
- Recopile los resultados de consulta de un conjunto de bases de datos en una tabla central de forma continua.
- Las consultas se pueden ejecutar y configurar continuamente para desencadenar tareas adicionales.
-
Recopilación de datos para informes
- Agregue datos de una colección de bases de datos a una tabla de destino única.
- Ejecute consultas de procesamiento de datos en un gran conjunto de bases de datos, por ejemplo, la recopilación de registros de clientes. Los resultados se recopilan en una sola tabla de destino para su posterior análisis.
-
Movimiento de datos
- Para soluciones desarrolladas personalizadas, automatización empresarial u otra administración de tareas.
- Procesamiento de ETL para extraer, transformar y cargar datos entre tablas de una base de datos.
Tenga en cuenta los trabajos elásticos cuando:
Tener una tarea que tenga que ejecutarse periódicamente según una programación, que tenga como destino una o varias bases de datos.
Tener una tarea que necesite ejecutarse una vez, pero en varias bases de datos.
Se deben ejecutar trabajos en cualquier combinación de bases de datos: una o varias bases de datos individuales, todas las bases de datos de un servidor o todas las bases de datos de un grupo elástico, con la flexibilidad adicional de poder incluir o excluir cualquier base de datos concreta. Los trabajos pueden ejecutarse en varios servidores, en varios grupos e incluso en bases de datos de distintas suscripciones. Los servidores y los grupos se enumeran dinámicamente en tiempo de ejecución, por lo que los trabajos se ejecutarán en todas las bases de datos que existan en el grupo de destino en el momento de la ejecución.
- Esta funcionalidad es una diferencia significativa del Agente SQL, que no puede enumerar dinámicamente las bases de datos de destino, especialmente en escenarios de cliente saaS en los que las bases de datos se agregan o eliminan dinámicamente.
Componentes de trabajos elásticos
| Componente | Descripción |
|---|---|
| Agente de trabajos elásticos | El recurso de Azure que se crea para ejecutar y administrar trabajos. |
| Base de datos de trabajos | Una base de datos de Azure SQL Database que usa el agente de trabajo para almacenar datos relacionados con el trabajo, definiciones de trabajos, etc. |
| Trabajo | Un trabajo es una unidad de trabajo que se compone de uno o varios pasos de trabajo. Los pasos del trabajo especifican el script de T-SQL para ejecutarse y otros detalles necesarios. |
| Grupo de destino | El conjunto de servidores, grupos y bases de datos para ejecutar un trabajo. |
Agente de trabajos elásticos
Un agente de trabajos elásticos es un recurso de Azure para crear, ejecutar y administrar trabajos. También se admite la creación del agente de trabajos elásticos como un recurso de Azure en el portal (también se admiten la creación y administración de trabajos elásticos mediante PowerShell y la API REST).
La creación de un agente de trabajos elásticos requiere una base de datos existente de Azure SQL Database. El agente configura esta base de datos de Azure SQL Database existente como la base de datos de trabajos.
Puede iniciar, deshabilitar o cancelar un trabajo a través de Azure Portal. Azure Portal también permite ver las definiciones de trabajos y el historial de ejecución.
Coste del agente de trabajos elásticos
La base de datos de trabajos se factura con la misma tarifa que cualquier base de datos de Azure SQL Database. El costo del agente de trabajo elástico se basa en los precios fijos del nivel de servicio que seleccione para el agente de trabajo. Para más información, consulte la página de precios de Azure SQL Database.
Base de datos de trabajos elásticos
Use la base de datos de trabajos para definir trabajos y realizar un seguimiento del estado y el historial de ejecuciones de trabajos. Los trabajos se ejecutan en bases de datos de destino. La base de datos de trabajos también almacena metadatos del agente, registros, resultados y definiciones de trabajo. Contiene muchos procedimientos almacenados útiles y otros objetos de base de datos para crear, ejecutar y administrar trabajos mediante T-SQL.
Necesita una instancia de Azure SQL Database para crear un agente de trabajo elástico. El agente de trabajo almacena todos sus metadatos relacionados con el trabajo en la base de datos de trabajos, que debe ser una base de datos de Azure SQL Database nueva y vacía.
El objetivo de servicio recomendado de la base de datos de trabajos es DTU S1 o superior, pero la opción óptima depende de las necesidades de rendimiento de los trabajos: el número de pasos de trabajo, el número de destinos de trabajo y la frecuencia con la que se ejecutan los trabajos.
Si las operaciones realizadas en la base de datos de trabajos son más lentas de lo esperado, supervise el rendimiento de la base de datos y el uso de los recursos en la base de datos de trabajos durante momentos de lentitud mediante el portal de Azure o la vista de administración dinámica sys.dm_db_resource_stats. Si el uso de un recurso, como la CPU, la E/S de datos o la escritura de registro, se aproxima al 100 % y se correlaciona con períodos de lentitud, considere escalar la base de datos de forma incremental a objetivos de servicio más altos (ya sea en el modelo de compra basado en DTU o en el modelo de compra de núcleo virtual) hasta que el rendimiento de la base de datos mejore lo suficiente.
La base de datos de trabajos en sí misma puede ser el objetivo de un trabajo elástico. En este escenario, trate la base de datos de trabajo igual que cualquier otra base de datos de destino. Debe crear el usuario de tarea y conceder permisos suficientes en la base de datos de tareas. La credencial con ámbito de base de datos para el usuario del trabajo también debe existir en la base de datos de trabajo, como lo hace para cualquier otra base de datos de destino.
Cuando una base de datos de trabajos es el destino de un trabajo, asegúrese de que los trabajos no modifiquen ni eliminen metadatos específicos del agente de trabajo almacenados en esa base de datos. Use solo procedimientos almacenados de trabajo o vistas de trabajo para modificar o consultar información relacionada con el trabajo.
Importante
No modifique los objetos existentes ni cree nuevos objetos en la base de datos de trabajos, aunque puede leer desde las tablas para informes y análisis.
Trabajos elasticos y etapas del trabajo
Un trabajo es una unidad de trabajo que se ejecuta según una programación o como un trabajo único. Un trabajo consta de uno o varios pasos de trabajo.
Cada paso de trabajo especifica un script de T-SQL en el que se va a ejecutar, uno o varios grupos de destino para ejecutar el script de T-SQL y las credenciales que el agente de trabajo necesita para conectarse a la base de datos de destino. Cada paso de trabajo tiene directivas de tiempo de espera y de reintento personalizables y, opcionalmente, puede especificar parámetros de salida.
Destinos de trabajos elásticos
Los trabajos elásticos pueden ejecutar uno o varios scripts de T-SQL en paralelo, en un gran número de bases de datos, según una programación o a petición. El destino puede ser cualquier nivel de Azure SQL Database.
Puede ejecutar trabajos programados en cualquier combinación de bases de datos: una o varias bases de datos individuales, todas las bases de datos de un servidor o todas las bases de datos de un grupo elástico, con la flexibilidad adicional de incluir o excluir cualquier base de datos específica. Los trabajos se pueden ejecutar en varios servidores y varios grupos, e incluso se pueden ejecutar contra bases de datos de distintas suscripciones. Los servidores y los grupos se enumeran dinámicamente en tiempo de ejecución, por lo que los trabajos se ejecutarán en todas las bases de datos que existan en el grupo de destino en el momento de la ejecución.
La siguiente imagen muestra a un agente de trabajos que ejecuta los trabajos en los diferentes tipos de grupos de destino:
Grupo de destino
Un grupo de destino define el conjunto de bases de datos donde se ejecuta un paso de trabajo. Un grupo de destino puede contener cualquier número y combinación de los siguientes tipos:
Servidor SQL lógico: si especifica un servidor, todas las bases de datos que existen en el servidor en el momento de la ejecución del trabajo forman parte del grupo. Debe proporcionar la
mastercredencial de base de datos para que el grupo se pueda enumerar y actualizar antes de la ejecución del trabajo. Para más información sobre los servidores lógicos, consulte ¿Qué es un servidor lógico en Azure SQL Database y Azure Synapse?Grupo elástico: si especifica un grupo elástico, todas las bases de datos que se encuentran en el grupo elástico en el momento de la ejecución del trabajo forman parte del grupo. Al igual que con un servidor, debe proporcionar la
mastercredencial de base de datos para que el grupo se pueda actualizar antes de la ejecución del trabajo.Base de datos única: especifique una o varias bases de datos individuales que formen parte del grupo.
Sugerencia
En el momento de la ejecución de la tarea, la enumeración dinámica vuelve a evaluar el conjunto de bases de datos en grupos de destino que incluyen servidores o grupos de servidores. La enumeración dinámica garantiza que los trabajos se ejecutan en todas las bases de datos que existen en el servidor o grupo de servidores en el momento de la ejecución del trabajo. Volver a evaluar la lista de bases de datos en tiempo de ejecución es útil para escenarios en los que la pertenencia al grupo o servidor cambia con frecuencia.
Los grupos y bases de datos únicas se pueden incluir o excluir del grupo. Puede crear un grupo de destino con cualquier combinación de bases de datos. Por ejemplo, puede agregar un servidor a un grupo de destino, pero excluir bases de datos específicas de un grupo elástico (o excluir un grupo completo).
Un grupo de destino puede incluir bases de datos en varias suscripciones y en varias regiones. Las ejecuciones entre regiones tienen una latencia mayor que las ejecuciones en la misma región.
En los ejemplos siguientes se muestra cómo se enumeran dinámicamente las distintas definiciones de grupo de destino en el momento de la ejecución del trabajo para determinar qué bases de datos afectarán:
El Ejemplo 1 muestra un grupo de destino que consta de una lista de bases de datos individuales. Cuando un paso de trabajo usa este grupo de destino, la acción del paso de trabajo se ejecuta en cada una de esas bases de datos.
El ejemplo 2 muestra un grupo de destino que contiene un servidor como destino. Cuando un paso de trabajo usa este grupo de destino, el servidor se enumera dinámicamente para determinar la lista de bases de datos que están actualmente en el servidor. La acción del paso de trabajo se ejecuta en cada una de esas bases de datos.
El Ejemplo 3 muestra un grupo de destino similar al del Ejemplo 2, pero se excluye específicamente una base de datos individual. La acción del paso de trabajo no se ejecuta en la base de datos excluida.
El Ejemplo 4 muestra un grupo de destino que contiene un grupo elástico como su objetivo. De forma similar al ejemplo 2, el grupo se enumera dinámicamente en tiempo de ejecución del trabajo para determinar la lista de bases de datos del grupo.
- Tanto el ejemplo 5 como el ejemplo 6 muestran escenarios avanzados en los que se pueden combinar servidores, grupos elásticos y bases de datos mediante reglas de inclusión y exclusión.
Programaciones de trabajos elásticos
Los trabajos elásticos son productos diseñados principalmente para la nube. Están diseñados para iniciarse incluso si se produce un problema transitorio de disponibilidad de red o servicio cuando están programados. Las programaciones de trabajos elásticos tienen en cuenta la hora de inicio de la programación y los intervalos solicitados. Al crear una programación de trabajos elásticos, el trabajo se ejecuta lo antes posible después de cada evento de intervalo programado.
Importante
Como procedimiento recomendado, cree programaciones de trabajo que comiencen en el futuro.
Las programaciones de trabajo detectan eventos perdidos. Si crea una nueva programación de trabajo que comienza en el pasado, el trabajo se ejecuta inmediatamente cuando está habilitado. Si está inhabilitado o no disponible, el trabajo se ejecuta inmediatamente después de habilitarlo o hacerlo disponible.
Por ejemplo, es actualmente el 2 de enero, 9 a.m. UTC. Configura un nuevo trabajo para que tenga programado el inicio de esta noche, el 2 de enero a las 10:30 p. m. (UTC), y que se ejecute diariamente. El trabajo se ejecuta a las 10:30 p. m. (UTC).
Para evitar que un trabajo se inicie accidentalmente, cree programaciones que se inicien en el futuro. En un ejemplo que podría provocar un inicio de trabajo accidental, configura un nuevo trabajo para ejecutarse diariamente a las 10:30 p.m. UTC. Desactivas la tarea por una semana. A continuación, si activa el trabajo a las 8:30 UTC, el trabajo se ejecuta inmediatamente, recuperando el evento de intervalo que no se ejecutó y que debería haberse ejecutado anoche. Después de ejecutarse, el agente de tareas no vuelve a ejecutarse hasta la próxima ejecución programada a las 10:30 PM UTC. Para evitar la ejecución a las 8:30 UTC en este escenario, actualice el inicio de la programación del trabajo al 8 de enero a las 10:30 UTC y, a continuación, habilite el trabajo. O bien, habilite el trabajo en un momento en el que el trabajo se pueda ejecutar inmediatamente.
Autenticación
Elija un método para todos los objetivos de un agente de trabajos elásticos. Por ejemplo, para un único agente de trabajo elástico, no puede configurar un servidor de destino para usar credenciales con ámbito de base de datos y otro para usar autenticación de Microsoft Entra ID.
El agente de trabajo elástico puede conectarse a los servidores y bases de datos especificados por el grupo de destino mediante dos opciones de autenticación:
- Use la autenticación de Microsoft Entra (anteriormente Azure Active Directory) con una identidad administrada asignada por el usuario (UMI).
- Utilice credenciales con ámbito de base de datos.
Autenticación a través de la identidad administrada asignada por el usuario (UMI)
La autenticación de Microsoft Entra a través de la identidad administrada asignada por el usuario (UMI) es la opción recomendada para conectar trabajos elásticos a Azure SQL Database. Con compatibilidad de Microsoft Entra ID, el agente de trabajo se conecta a las bases de datos de destino (bases de datos, servidores, grupos elásticos) y a la base de datos de salida mediante el UMI.
Opcionalmente, puede habilitar la autenticación de Microsoft Entra ID en el servidor lógico que contiene la base de datos del trabajo elástico, para consultarla y acceder a ella a través de conexiones de Microsoft Entra ID. Sin embargo, el agente de trabajos usa la autenticación interna basada en certificados para conectarse a su base de datos de trabajos.
Puede crear una UMI o usar una UMI existente y asignar la misma UMI a varios agentes de trabajo. Cada agente de trabajo solo admite un UMI. Después de asignar un UMI a un agente de trabajo, el agente de trabajos usa esta identidad para conectarse y ejecutar trabajos de T-SQL en las bases de datos de destino. El agente de trabajo no usa la autenticación de SQL en el servidor o las bases de datos de destino.
El nombre del UMI debe comenzar con una letra o un número y tener una longitud entre 3 y 128 caracteres. Puede contener guiones (-) y caracteres de subrayado (_).
Para más información sobre UMI en Azure SQL Database, consulte Identidades administradas para Azure SQL, incluidos los pasos necesarios y las ventajas de usar un UMI como identidad del servidor lógico de Azure SQL Database. Para más información, consulte Autenticación de Microsoft Entra para Azure SQL.
Importante
Al usar la autenticación de Microsoft Entra ID, cree el usuario jobuser a partir de esa Microsoft Entra ID en cada base de datos de destino. Conceda a ese usuario los permisos necesarios para ejecutar los trabajos en cada base de datos de destino.
No se admite el uso de una identidad administrada asignada por el sistema (SMI).
Autenticación mediante credenciales de ámbito de base de datos
Aunque la autenticación de Microsoft Entra (anteriormente Azure Active Directory) es la opción recomendada, puede configurar trabajos para usar credenciales con ámbito de base de datos para conectarse a las bases de datos especificadas por el grupo de destino tras la ejecución. Antes de octubre de 2023, las credenciales con ámbito de base de datos eran la única opción de autenticación.
Si un grupo de destino contiene servidores o grupos, estas credenciales de ámbito de base de datos se conectan a la master base de datos para enumerar las bases de datos disponibles.
Cree las credenciales de ámbito de base de datos en la base de datos de trabajo.
Todas las bases de datos de destino deben tener un inicio de sesión con permisos suficientes para que el trabajo se complete correctamente (
jobuseren el siguiente diagrama).Las credenciales que cree en las bases de datos de destino (
LOGINyPASSWORDparamasteruseryjobuser, en el diagrama siguiente) deben coincidir conIDENTITYySECRETen las credenciales que cree en la base de datos de trabajos.Puede reutilizar las credenciales en distintas tareas. Las contraseñas de credenciales se cifran y protegen de los usuarios que tienen acceso de solo lectura a los objetos de trabajo.
La imagen siguiente le ayuda a comprender cómo configurar las credenciales de trabajo adecuadas y cómo se conecta el agente de trabajo elástico mediante credenciales de base de datos como autenticación para inicios de sesión y usuarios en servidores y bases de datos de destino.
Nota:
Al usar credenciales de ámbito de base de datos, recuerde crear el usuario jobuser en cada base de datos de destino.
Puntos de conexión privados de trabajos elásticos
El agente de trabajos elásticos admite puntos de conexión privados. La creación de un punto de conexión privado para trabajos elásticos establece un enlace privado entre el trabajo elástico y el servidor de destino. La característica de puntos de conexión privados de trabajos elásticos es diferente de Azure Private Link.
La función de puntos de conexión privados para trabajos elásticos admite conexiones privadas a servidores de destino y salida, lo que permite que el agente de trabajo establezca conexión con ellos incluso cuando la opción Denegar acceso público está habilitada. El uso de puntos de conexión privados también es una posible solución si desea deshabilitar la opción Permitir que los servicios y recursos de Azure accedan a ese servidor .
Los puntos de conexión privados de trabajos elásticos admiten todas las opciones de autenticación del agente de trabajos elásticos.
La característica de punto de conexión privado del trabajo elástico permite elegir un punto de conexión privado administrado por el servicio para establecer una conexión segura entre el agente de trabajo y sus servidores de destino y salida. Un punto de conexión privado administrado por el servicio es una dirección IP privada en una red virtual y una subred específicas. Al elegir usar puntos de conexión privados en uno de los servidores de destino y salida del agente de trabajo, Azure crea un punto de conexión privado administrado por el servicio. A continuación, el agente de trabajo usa este punto de conexión privado exclusivamente para conectarse y ejecutar trabajos, o para escribir la salida del trabajo en esas bases de datos de destino y salida.
Puede crear y permitir puntos de conexión privados de trabajos elásticos a través del portal de Azure. Los servidores de destino conectados a través del vínculo privado pueden estar en cualquier lugar de Azure, incluso en distintas zonas geográficas y suscripciones. 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.
Para ver un tutorial para configurar un nuevo punto de conexión privado administrado por el servicio para trabajos elásticos, consulte Configuración del punto de conexión privado de trabajos elásticos de Azure SQL.
Requisitos para los puntos de conexión privados de trabajos elásticos
Para usar un punto de conexión privado de trabajos elásticos, tanto el agente de trabajo como los servidores o bases de datos de destino deben alojarse en Azure, ya sea en la misma o en diferentes regiones, y en el mismo tipo de nube (por ejemplo, tanto en la nube pública como en la nube gubernamental).
El
Microsoft.Networkproveedor de recursos debe estar registrado para las suscripciones de host tanto del agente de trabajo como de los servidores de destino y de resultados.Azure crea puntos de conexión privados de trabajos elásticos por servidor de destino y servidor de salida. Debe aprobarlos antes de que el agente de trabajo elástico pueda utilizarlos. Puede aprobarlos a través del panel Redes de ese servidor lógico o su cliente preferido. A continuación, el agente de trabajo elástico puede llegar a cualquier base de datos de ese servidor mediante una conexión privada.
La conexión del agente de trabajo elástico a la base de datos de trabajos no usa el punto de conexión privado. El propio agente de trabajo usa la autenticación interna basada en certificados para conectarse a su base de datos de trabajos.
- Si agrega la base de datos de trabajos como miembro de un grupo de objetivos, se comporta como un objetivo normal. Debe configurarlo con el punto de conexión privado según sea necesario.
Permisos de bases de datos para trabajos elásticos
Durante la creación del agente de trabajos, se crean un esquema, tablas y un rol llamado jobs_reader en la base de datos de trabajos. El rol se crea con los permisos siguientes y está diseñado para proporcionar a los administradores un mayor control de acceso para la supervisión de trabajos. Los administradores pueden proporcionar a los usuarios la capacidad de supervisar la jobs_reader ejecución del trabajo agregándolos al rol en la base de datos de trabajos.
| Nombre de rol |
jobs permisos de esquema |
jobs_internal permisos de esquema |
|---|---|---|
jobs_reader |
SELECT |
Ninguno |
Precaución
No actualice las vistas de catálogo internas en la base de datos de trabajos, como jobs.target_group_members. Cambiar manualmente estas vistas de catálogo puede dañar la base de datos de trabajo y provocar un error. Estas vistas son solo para consultas de lectura. Puede usar los procedimientos almacenados en la base de datos de trabajo para agregar o eliminar grupos y miembros de destino, como jobs.sp_add_target_group_member.
Tenga en cuenta las implicaciones de seguridad antes de conceder acceso elevado a la base de datos de trabajos. Un usuario malintencionado con permisos para crear o editar trabajos podría crear o editar un trabajo que use una credencial almacenada para conectarse a una base de datos bajo el control del usuario malintencionado. Esta vulnerabilidad podría permitir que el usuario malintencionado determine la contraseña de la credencial o ejecute comandos malintencionados.
Supervisión de trabajos elásticos
El agente de trabajo elástico se integra con las alertas de Azure para las notificaciones de estado del trabajo, lo que simplifica la solución para supervisar el estado y el historial de ejecución del trabajo.
Azure Portal incluye características adicionales para admitir trabajos elásticos y supervisión de trabajos. En la página Información general del agente de trabajo elástico, se muestran las ejecuciones de trabajos más recientes, como se muestra en la captura de pantalla siguiente.
Puede crear Reglas de alertas de Azure Monitor con Azure Portal, la CLI de Azure, PowerShell y la API de REST. La métrica Trabajos elásticos erróneos es un buen punto de inicio para supervisar y recibir alertas sobre las ejecuciones de trabajos elásticos. Además, puede optar por recibir alertas a través de una acción configurable, como SMS o correo electrónico, mediante la instalación de Alertas de Azure. Para más información, consulte Crear alertas de Azure SQL Database en Azure Portal.
Para obtener un ejemplo, consulte Creación, configuración y administración de trabajos elásticos.
Resultado del proceso
El resultado de los pasos de un trabajo en cada base de datos de destino se registra con detalle y la salida del script se puede capturar en una tabla especificada. Puede especificar una base de datos para guardar los datos devueltos de un trabajo.
Historial de trabajos
Puede ver el historial de ejecución de trabajos elásticos en la base de datos de trabajos consultando la tabla .jobs.job_executions Un trabajo de limpieza del sistema purga el historial de ejecución que tiene más de 45 días. Para quitar el historial que tiene menos de 45 días de antigüedad manual, ejecute el sp_purge_jobhistory procedimiento almacenado en la base de datos de trabajos.
Estado del trabajo
Puede supervisar las ejecuciones de trabajos elásticos en la base de datos de trabajos consultando la tabla jobs.job_executions.
procedimientos recomendados
Tenga en cuenta los siguientes procedimientos recomendados al trabajar con bases de datos de trabajos elásticos.
Recomendaciones de seguridad
Limitar el uso de las API a las personas de confianza.
Conceda a las credenciales los privilegios mínimos necesarios para realizar una tarea. Para más información, consulte Autorización y permisos.
Al usar un miembro de un grupo de destino de servidor o de grupo, cree una credencial independiente con derechos en la base de datos
masterpara ver y listar las bases de datos. Esta credencial expande las listas de bases de datos de los servidores y grupos antes de la ejecución del trabajo.
Rendimiento de los trabajos elásticos
Los trabajos elásticos utilizan recursos de cómputo mínimos mientras esperan a que los trabajos de larga ejecución finalicen.
Dependiendo del tamaño del grupo de destino de las bases de datos y el tiempo de ejecución deseado para un trabajo (número de trabajadores simultáneos), el agente requiere distintas cantidades de proceso y rendimiento de la base de datos de trabajos (cuantos más destinos y número de trabajos, mayor será la cantidad de proceso necesaria).
Niveles de capacidades concurrentes
A partir de octubre de 2023, el agente de trabajo elástico tiene varios niveles de rendimiento para permitir el aumento de la capacidad.
Los incrementos de capacidad indican el número total de bases de datos de destino simultáneas a las que el agente de trabajo puede conectarse e iniciar un trabajo. Para obtener más conexiones de destino simultáneas para la ejecución del trabajo, actualice el nivel de un agente de trabajo del nivel JA100 predeterminado, que tiene un límite de 100 conexiones de destino simultáneas.
La mayoría de los entornos requieren menos de 100 trabajos simultáneos en cualquier momento, por lo que JA100 es el valor predeterminado.
| Nivel de agente de trabajo elástico | Número máximo de trabajos simultáneos |
|---|---|
JA100 |
100 |
JA200 |
200 |
JA400 |
400 |
JA800 |
800 |
Si se supera el nivel de capacidad de simultaneidad del agente de trabajo con objetivos de trabajo, se producen retrasos en la cola para algunas bases de datos y servidores de destino. Por ejemplo, si inicia un trabajo con 110 objetivos en el nivel JA100, 10 objetivos esperan para comenzar hasta que otros finalicen.
Puede modificar el nivel o el objetivo de servicio de un agente de trabajo elástico a través del portal de Azure, PowerShell o la API REST de agentes de trabajo. Para obtener un ejemplo, consulte Escalar el agente de trabajo.
Limitar el efecto del trabajo en grupos elásticos
Para asegurarse de que los recursos no se sobrecargan al ejecutar trabajos en bases de datos de un grupo elástico de Azure SQL Database, configure trabajos para limitar el número de bases de datos en las que se ejecuta un trabajo al mismo tiempo.
Establezca el número de bases de datos simultáneas que ejecuta un trabajo estableciendo el parámetro sp_add_jobstep del procedimiento almacenado @max_parallelism en T-SQL.
Scripts idempotentes
Los scripts T-SQL de un trabajo elástico deben ser idempotentes, es decir, si el script se ejecuta correctamente y se ejecuta de nuevo, se produce el mismo resultado. Un script puede producir errores debido a problemas de red transitorios. En ese caso, el trabajo reintenta automáticamente la ejecución del script un número preestablecido de veces antes de desistir. Un script idempotente tiene el mismo resultado incluso si se ejecutó correctamente dos veces (o más).
Una táctica sencilla es probar la existencia de un objeto antes de crearlo. El ejemplo siguiente es hipotético:
IF NOT EXISTS (SELECT *
FROM sys.objects
WHERE [name] = N'some_object')
PRINT 'Object does not exist'; -- Create the object
ELSE
PRINT 'Object exists'; -- If it exists, drop the object before recreating it.
De forma similar, un script debe ser capaz de comprobar lógicamente y contrarrestar las condiciones que encuentre para ejecutarse correctamente.
Limitaciones
Estas son las limitaciones actuales del servicio de trabajos elásticos. El equipo del producto está trabajando activamente para eliminar tantas de estas limitaciones como sea posible.
| Problema | Descripción |
|---|---|
| El agente de trabajo elástico debe volver a crearse e iniciarse en la nueva región después de una conmutación por error o pasar a una nueva región de Azure. | El servicio de trabajos elásticos almacena todos sus agentes de trabajos y metadatos de trabajos en la base de datos de trabajos. Cualquier conmutación por error o traslado de recursos de Azure a una nueva región de Azure también mueve la base de datos de trabajos, el agente de trabajos y los metadatos del trabajo a la nueva región de Azure. Sin embargo, el agente de trabajos elásticos es un recurso exclusivamente de procesamiento que debe ser recreado de manera explícita e iniciado en la nueva región antes de que los trabajos empiecen a ejecutarse de nuevo. Una vez iniciado, el agente de trabajos elásticos reanuda la ejecución de trabajos en la nueva región según la programación de trabajos definida anteriormente. |
| Registros excesivos de auditoría de SQL de la base de datos de trabajos | El agente de trabajos elásticos funciona sondeando constantemente la base de datos de trabajos para comprobar la llegada de nuevos trabajos y otras operaciones CRUD. Si la auditoría está habilitada en el servidor que alberga una base de datos de trabajos, la base de datos de trabajos puede generar un gran número de registros de auditoría. Para mitigar este problema, filtre estos registros de auditoría mediante el Set-AzSqlServerAudit comando con una expresión de predicado.Por ejemplo: Set-AzSqlServerAudit -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -BlobStorageTargetState Enabled -StorageAccountResourceId "/subscriptions/7fe3301d-31d3-4668-af5e-211a890ba6e3/resourceGroups/resourcegroup01/providers/Microsoft.Storage/storageAccounts/mystorage" -PredicateExpression "application_name <> 'Microsoft Azure SQL Database elastic jobs'"Este comando solo filtra los registros de auditoría de la base de datos de trabajos provenientes del agente de trabajo, no los registros de auditoría provenientes del agente de trabajo hacia las bases de datos de destino. |
| Uso de una base de datos de Hiperescala como base de datos de trabajo | No se admite el uso de una base de datos de Hiperescala como base de datos de trabajo. Sin embargo, los trabajos elásticos pueden dirigirse a bases de datos de Hiperescala, de la misma manera que cualquier otra base de datos de Azure SQL Database. |
| Bases de datos sin servidor y pausado automático con tareas elásticas. | Una base de datos sin servidor habilitada para pausado automático no se admite como base de datos de trabajo. Las bases de datos sin servidor destinadas a trabajos elásticos admiten pausas automáticas y las conexiones de trabajo las reanudan. |
| Exportación de una base de datos de trabajos a un archivo BACPAC | No se admite la exportación de una base de datos de trabajo a un archivo BACPAC. Si es necesario exportar la base de datos de SQL Server que contiene una base de datos de trabajo , quite primero la base de datos de trabajo antes de exportar el servidor. |