¿Cómo sincronizo los trabajos de SQL Server Agent entre los hosts principal y secundario de mi instancia multi-AZ de RDS para SQL Server?
Tengo una instancia multi-AZ de base de datos relacional de Amazon (Amazon RDS) para Microsoft SQL Server. Quiero sincronizar los trabajos de SQL Server Agent entre los hosts principal y secundario de mi instancia.
Descripción breve
Amazon RDS para SQL Server utiliza siempre la función de creación de duplicados para la configuración multi-AZ en segundo plano. Los trabajos de SQL Server Agent se almacenan en la base de datos de sistema msdb. Esta base de datos de sistema no se replica como parte del despliegue multi-AZ. Por lo tanto, los trabajos de SQL Server Agent no se sincronizan automáticamente. Debe volver a crear los trabajos en el nuevo host principal después de la conmutación por error. Sin embargo, los trabajos están presentes en el antiguo host principal donde se crearon originalmente. Si conmuta por error la instancia al host principal anterior (donde se crearon inicialmente los trabajos), seguirá viendo los trabajos. Para crear los trabajos en multi-AZ, cree primero los trabajos en la instancia principal (activa). A continuación, realice una conmutación por error en la instancia de RDS y cree los mismos trabajos en la nueva instancia principal.
Para evitar la creación manual de trabajos en la nueva instancia principal, active la replicación de trabajos de SQL Agent. Cuando la replicación de trabajos está activada en su entorno multi-AZ, los trabajos de SQL Server Agent se copian automáticamente del host principal al host secundario. No es necesario crear los trabajos de manera manual en la nueva réplica principal porque se sincronizan mediante la función de replicación del agente. Los trabajos están disponibles en ambas réplicas.
Para obtener más información, consulte Implementaciones Multi-AZ para Amazon RDS for Microsoft SQL Server.
Nota: La siguiente resolución no se aplica a Amazon RDS Custom para SQL Server.
Resolución
Activación de la función de replicación del agente SQL
Ejecute el siguiente procedimiento con la cuenta de administrador de la instancia principal para activar la replicación de trabajos de SQL Server Agent:
Importante: Asegúrese de ejecutar este procedimiento en la instancia que tiene todos los trabajos de agente disponibles. Si la instancia sin los trabajos de agente disponibles pasa a ser la principal y se activa esta función, se eliminarán todos los trabajos de la instancia secundaria. Tenga en cuenta también que todos los trabajos existentes y recién creados se replican como parte de esta función.
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob';
Validación de que la función de replicación del agente SQL está activada
Compruebe que la función de replicación esté activada:
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
La consulta anterior devuelve SQLagentjob para object_class si la función de replicación está activada. Si la consulta no devuelve nada, significa que la función no está activada.
Comprobación de cuándo los trabajos modificados y nuevos se sincronizaron por última vez con el secundario
Compruebe el valor last_sync_time de la replicación:
SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();
En los resultados de la consulta, si la hora de sincronización es posterior a la actualización del trabajo o de la hora de creación, el trabajo se sincronizará con el trabajo secundario.
Nota: Si no sabe la hora de creación o actualización del trabajo, ejecute primero la siguiente consulta para recuperar la marca de tiempo:
select name as 'JobName' ,JobStatus = CASE When enabled =1 Then 'Active' Else 'Inactive' END ,date_created As 'JobCreatedOn' ,date_modified as 'LastModified' from msdb..sysjobs
Nota: Los trabajos tardan unos minutos en sincronizarse entre las réplicas.
Si desea realizar una conmutación por error de base de datos para confirmar que los trabajos están replicados, espere a que se actualice last_sync_time antes de continuar con la conmutación por error multi-AZ.
Categorías de trabajo compatibles y no compatibles para la replicación de trabajos de agentes
Los trabajos de las siguientes categorías se replican:
- [Uncategorized (Local)]
- [Uncategorized (Multi-Server)]
- [Uncategorized]
- Data Collector
- Database Engine Tuning Advisor
- Database Maintenance
- Full-Text
Nota: Solo se replican los trabajos que utilizan el tipo de paso T-SQL.
Las siguientes categorías no admiten la replicación:
- Trabajos con tipos de pasos como SQL Server Integration Services (SSIS), SQL Server Reporting Services (SSRS), replicación y PowerShell.
- Trabajos que utilizan Database Mail y objetos a nivel de servidor.
Cómo desactivar la replicación de trabajos de SQL Server Agent
Para desactivar la replicación de trabajos de SQL Server Agent, ejecute el siguiente comando:
EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = '';
Después de desactivar la replicación, las modificaciones en los trabajos existentes y recién creados ya no se sincronizan con la otra réplica.
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace 2 años