

# Usar o agente do SQL Server para o Amazon RDS
<a name="Appendix.SQLServer.CommonDBATasks.Agent"></a>

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](http://msdn.microsoft.com/en-us/library/ms189237) 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 obter mais informações, consulte [Ativar a replicação de trabalhos do SQL Server Agent](#SQLServerAgent.Replicate).  
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 Suporte. Abra a página do [AWS Support Center](https://console.aws.amazon.com/support/home#/), 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
<a name="SQLServerAgent.Replicate"></a>

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 para`object_class`.

![\[Os trabalhos do SQL Server Agent estão sendo replicados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/SQLAgentJob.png)


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.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/SQLAgentJob_last_sync_time.png)


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](SQLServer.TempDB.MAZ.md).