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
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
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
.
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.
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.