Como faço para sincronizar trabalhos do SQL Server Agent entre os hosts primário e secundário em minha instância Multi-AZ do RDS para SQL Server?

4 minuto de leitura
0

Eu tenho uma instância Multi-AZ do Amazon Relational Database (Amazon RDS) para Microsoft SQL Server. Quero sincronizar as tarefas do SQL Server Agent entre os hosts primário e secundário na minha instância.

Breve descrição

O Amazon RDS for SQL Server usa o Always On/mirroring para a configuração Multi-AZ nos bastidores. O SQL Server Agent armazena tarefas no banco de dados do sistema msdb. Esse banco de dados do sistema não se replica como parte da implantação do Multi-AZ. Portanto, as tarefas do SQL Server Agent não são sincronizadas automaticamente. Você deve recriar as tarefas no novo primário após o failover. No entanto, as tarefas estão presentes no antigo primário onde você os criou originalmente. Se você retornar a instância para o primário anterior (onde criou as tarefas), ainda verá as tarefas. Para criar as tarefas no Multi-AZ, primeiro crie as tarefas na instância primária (ativa). Em seguida, faça o failover da instância do RDS e crie as mesmas tarefas na nova instância primária.

Para evitar a criação manual de tarefas no novo primário, ative a ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.Replicate)replicação de tarefas do SQL Agent[. Quando você ativa a replicação de tarefas em seu ambiente Multi-AZ, o SQL Server Agent copia as tarefas do host primário para o host secundário automaticamente. Você não precisa criar as tarefas manualmente na nova réplica primária porque elas foram sincronizadas por meio do recurso de replicação do agente. As tarefas estão disponíveis em ambas as réplicas.

Para obter mais informações, consulte Implantações Multi-AZ para Amazon RDS para Microsoft SQL Server.

**Observação:**A resolução a seguir não se aplica ao Amazon RDS Custom for SQL Server.

Solução

Ativar o recurso de replicação do agente SQL

Para ativar a replicação de tarefas do SQL Server Agent, execute o procedimento a seguir com a conta de administrador na instância primária:

**Importante:**Certifique-se de executar esse procedimento na instância que tem todas as tarefas do agente disponíveis. Se a instância sem as tarefas de agente disponíveis se tornar a primária e você ativar esse recurso, as tarefas na instância secundária serão excluídas. Além disso, todas as tarefas existentes e recém-criados são replicados como parte desse recurso.

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

Confirme se o recurso de replicação do agente SQL está ativado

Verifique se o recurso de replicação está ativado:

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

Essa consulta retornará **SQLAgentJob ** para ** object\ _class ** se o recurso de replicação estiver ativado. Se a consulta não retornar nada, o recurso não está ativado.

Verifique quando as tarefas modificadas e novas foram sincronizadas pela última vez com o secundário

Verifique a last_sync_time da replicação:

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Nos resultados da consulta, se o tempo de sincronização ultrapassar o horário de atualização ou criação da tarefa, a tarefa será sincronizada com o secundário.

**Observação:**Se você não souber a hora da criação ou atualização da tarefa, primeiro execute a seguinte consulta para recuperar o carimbo de data/hora:

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

**Observação:**São necessários alguns minutos para que as tarefas sejam sincronizadas entre as réplicas.

Para realizar um failover de banco de dados para confirmar que as tarefas se replicam, aguarde primeiro a atualização do last_sync_time. Em seguida, continue com o failover Multi-AZ.

Categorias de tarefas suportadas e não suportadas para replicação de tarefas de agentes

As tarefas nas seguintes categorias se replicam:

  • [Uncategorized (Local)]
  • [Uncategorized (Multi-Server)]
  • [Uncategorized]
  • Data Collector
  • Database Engine Tuning Advisor
  • Database Maintenance
  • Full-Text

**Observação:**Somente tarefas que usam o tipo de etapa T-SQL são replicados.

As categorias a seguir não oferecem suporte à replicação:

  • Tarefas com tipos de etapas, como SQL Server Integration Services (SSIS), SQL Server Reporting Services (SSRS), replicação ou PowerShell.
  • Tarefas que usam Database Mail e objetos no nível do servidor.

Desativar a replicação de tarefas do SQL Server Agent

Para desativar a replicação de tarefas do SQL Server Agent, execute o seguinte comando:

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

Depois de desativar a replicação, as modificações nas tarefas existentes e recém-criadas não são mais sincronizadas com a outra réplica.