Usar o agente do SQL Server para o Amazon RDS - Amazon Relational Database Service

Usar o agente do SQL Server para o Amazon RDS

Com o Amazon RDS, você pode usar o SQL Server Agent em uma instância de banco de dados que executa o Microsoft SQL Server Enterprise Edition, Standard Edition ou Web Edition. SQL Server Agent é um serviço do Microsoft Windows que executa tarefas administrativas programadas, chamadas de trabalhos. É possível usar SQL Server Agent para executar trabalhos T-SQL para recompilar índices, executar verificações de corrupção e agregar dados em uma instância de banco de dados SQL Server.

Ao criar uma instância de banco de dados do SQL Server, o nome de usuário principal é registrado na função SQLAgentUserRole.

SQL Server Agent pode executar um trabalho agendado em resposta a um evento específico ou sob demanda. Para ter mais informações, consulte a página SQL Server Agent na documentação do SQL Server.

nota

Evite programar trabalhos para execução durante as janelas de manutenção e backup da sua instância de banco de dados. Os processos de manutenção e backup que são iniciados pela AWS podem interromper um trabalho ou fazer com que ele seja cancelado.

Em implantações multi-AZ, os trabalhos do SQL Server Agent são replicados do host primário para o host secundário quando o recurso de replicação de trabalhos é ativado. Para ter mais informações, consulte Ativar a replicação de trabalhos do SQL Server Agent.

As implantações multi-AZ têm um limite de cem trabalhos do SQL Server Agent. Se um limite mais alto for necessário, solicite um aumento de cota entrando em contato com o AWS Support. Abra a página do AWS Support Center, faça login, se necessário, e escolha Create case (Criar caso). Escolha Service limit increase (Aumento de limite do serviço). Preencha e envie o formulário.

Para visualizar o histórico de um trabalho específico do SQL Server Agent no SQL Server Management Studio (SSMS), abra o Object Explorer, clique com o botão direito no trabalho e, em seguida, escolha View History (Visualizar histórico).

Como o SQL Server Agent está sendo executado em um host gerenciado em uma instância de banco de dados, algumas ações não são aceitas:

  • Não é possível executar trabalhos de replicação e de scripts da linha de comando usando o ActiveX, o shell de comando do Windows ou o Windows PowerShell.

  • Não é possível iniciar, interromper ou reiniciar manualmente o SQL Server Agent.

  • As notificações de e-mail por meio do SQL Server Agent não estão disponíveis a partir de uma instância de banco de dados.

  • Alertas e operadores do SQL Server Agent não são aceitos.

  • O uso do SQL Server Agent para criar backups não é aceito. Use o Amazon RDS para fazer backup de sua instância de banco de dados.

  • Atualmente, o RDS para SQL Server não comporta o uso de tokens do SQL Server Agent.

Ativar a replicação de trabalhos do SQL Server Agent

Você pode ativar a replicação de trabalhos do SQL Server Agent usando o seguinte procedimento armazenado:

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

É possível executar o procedimento armazenado em todas as versões do SQL Server compatíveis com o Amazon RDS para SQL Server. Os trabalhos nas seguintes categorias são replicados:

  • [Sem categoria (local)]

  • [Sem categoria (vários servidores)]

  • [Sem categoria]

  • Coletor de dados

  • Database Engine Tuning Advisor

  • Manutenção do banco de dados

  • Texto completo

Somente trabalhos que usam etapas de trabalho T-SQL são replicados. Trabalhos com tipos de etapas, como o SQL Server Integration Services (SSIS), o SQL Server Reporting Services (SSRS), a Replicação e o PowerShell, não são replicados. Os trabalhos que usam o Database Mail e objetos no nível do servidor não são replicados.

Importante

O host principal é a fonte da verdade para replicação. Antes de ativar a replicação do trabalho, verifique se os trabalhos do SQL Server Agent estão no host primário. Se você não fizer isso, poderá ocorrer a exclusão de seus trabalhos do SQL Server Agent se você ativar o recurso quando os trabalhos mais recentes estiverem no host secundário.

Você pode usar a função a seguir para confirmar se a replicação está ativada.

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

A consulta T-SQL retornará o seguinte se os trabalhos do SQL Server Agent estiverem sendo replicados. Se eles não estiverem sendo replicados, não retornará nada paraobject_class.

Os trabalhos do SQL Server Agent estão sendo replicados

Você pode usar a função a seguir para descobrir a última vez que os objetos foram sincronizados no horário UTC.

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

Por exemplo, suponha que você modifique um trabalho do SQL Server Agent às 01:00. Você espera que o tempo de sincronização mais recente seja após a 01:00, indicando que a sincronização ocorreu.

Após a sincronização, espera-se que os valores retornados para date_created e date_modified no nó secundário coincidam.

A última vez que os objetos do servidor foram sincronizados foi às 01:21:23.

Se você também estiver usando a replicação tempdb, poderá habilitar a replicação tanto para os trabalhos do SQL Agent quanto para a configuração tempdb fornecendo-os no parâmetro @object_type:

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

Para ter mais informações sobre a replicação tempdb, consulte Configuração TempDB para implantações multi-AZ.