Uso del Agente SQL Server para Amazon RDS - Amazon Relational Database Service

Uso del Agente SQL Server para Amazon RDS

Con Amazon RDS, puede usar el Agente SQL Server en una instancia de base de datos en la que se ejecuta Microsoft SQL Server Enterprise Edition, Standard Edition o Web Edition. El Agente SQL Server es un servicio de Microsoft Windows que ejecuta tareas administrativas programadas que se denominan trabajos. Puede usar el Agente SQL Server para ejecutar trabajos de T-SQL que reconstruyan índices, ejecuten comprobaciones de daños y agrupen datos en una instancia de base de datos de SQL Server.

Cuando se crea una instancia de base de datos de SQL Server, el usuario maestro tiene asignado el rol SQLAgentUserRole.

El Agente SQL Server puede ejecutar un trabajo según un calendario, en respuesta a un evento concreto o bajo demanda. Para obtener más información, consulte SQL Server Agent en la documentación de Microsoft.

nota

Evite programar trabajos para que se ejecuten durante los periodos de mantenimiento y de copia de seguridad de la instancia de base de datos. Los procesos de mantenimiento y copia de seguridad lanzados por AWS podrían interrumpir el trabajo o hacer que se cancele.

En las implementaciones Multi-AZ, los trabajos de SQL Server Agent se replican desde el host principal al host secundario cuando la función de replicación de trabajos está activada. Para obtener más información, consulte Activación de la replicación de trabajos del agente de SQL Server.

Las implementaciones multi-AZ tienen un límite de 10 000 trabajos del Agente SQL Server. Si se necesitan límites más altos, solicite un aumento; para ello, contáctese con AWS Support. Abra la página del centro de AWS Support, inicie sesión si es preciso y, luego, elija Create Case (Crear caso). Seleccione Service limit increase (Aumento del límite de servicio). Rellene y envíe el formulario.

Para ver el historial de un trabajo individual del Agente de SQL Server en SQL Server Management Studio (SSMS), abra el explorador de objetos, haga clic con el botón derecho en el trabajo y, a continuación, elija View History (Ver historial).

Como el Agente SQL Server se ejecuta en un anfitrión administrado de una instancia de base de datos, algunas opciones no son compatibles:

  • No se admite la ejecución de trabajos de reproducción y de scripts de línea de comando por medio de ActiveX, el shell de comandos de Windows o Windows PowerShell.

  • No puede iniciar, detener ni reiniciar el Agente de SQL Server de forma manual.

  • Las notificaciones de email a través del Agente de SQL Server no están disponibles desde una instancia de base de datos.

  • No se admiten las alertas ni los operadores del Agente de SQL Server.

  • No se admite el uso del Agente de SQL Server para crear copias de seguridad. Utilice Amazon RDS para realizar una copia de seguridad de la instancia de base de datos.

  • Actualmente, RDS para SQL Server no admite el uso de tokens del Agente SQL Server.

Activación de la replicación de trabajos del agente de SQL Server

Puede activar la replicación de trabajos del agente de SQL Server mediante el siguiente procedimiento almacenado:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob';

Puede ejecutar el procedimiento almacenado en todas las versiones de SQL Server compatibles con Amazon RDS for SQL Server. Los trabajos de las siguientes categorías se replican:

  • [Sin categoría (local)]

  • [Sin categoría (multiservidor)]

  • [Sin categoría]

  • Recopilador de datos

  • Asesor de ajuste del motor de base de datos

  • Mantenimiento de bases de datos

  • Texto completo

Solo se replican los trabajos que utilizan pasos de trabajo de T-SQL. Los trabajos con tipos de pasos como SQL Server Integration Services (SSIS), SQL Server Reporting Services (SSRS), Replication y PowerShell no se replican. Los trabajos que utilizan Database Mail y objetos de nivel de servidor no se replican.

importante

El host principal es el origen de información para la replicación. Antes de activar la replicación de trabajos, asegúrese de que sus trabajos de SQL Server Agent están en el principal. Si no lo hace, podría eliminar sus trabajos de SQL Server Agent si activa la característica cuando hay trabajos más nuevos en el host secundario.

Puede utilizar la siguiente función para confirmar si la replicación está activada.

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

La consulta T-SQL devuelve lo siguiente si los trabajos del agente de SQL Server se están replicando. Si no se están replicando, no devuelve nada para object_class.

Los trabajos del agente de SQL Server se están replicando

Puede utilizar la siguiente función para saber cuál fue la última vez que se sincronizaron los objetos con la configuración de hora UTC.

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Por ejemplo, supongamos que modifica un trabajo de agente de SQL Server a las 01:00. Se espera que la hora de sincronización más reciente sea posterior a las 01:00, lo que indica que se ha producido la sincronización.

Tras la sincronización, se espera que los valores que se devuelven para date_created y date_modified en el nodo secundario coincidan.

La última vez que se sincronizaron los objetos del servidor fue a las 01:21:23

Si también utiliza la replicación con tempdb, puede habilitar la replicación tanto para los trabajos del Agente SQL como para la configuración de tempdb proporcionándolos en el parámetro @object_type:

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';

Para obtener información sobre la replicación con tempdb, consulte Configuración de TempDB para implementaciones multi-AZ.