

# Configuração TempDB para implantações multi-AZ
<a name="SQLServer.TempDB.MAZ"></a>

Se a instância de banco de dados do RDS para o SQL Server estiver em uma implantação multi-AZ usando o Database Mirroring (DBM) ou grupos de disponibilidade (AGs) Always On, lembre-se das considerações a seguir para o uso do banco de dados `tempdb`.

Não é possível replicar dados do `tempdb` da instância de banco de dados primária para a instância de banco de dados secundária. Ao fazer failover para uma instância de banco de dados secundária, o `tempdb` nessa instância de banco de dados secundária estará vazia.

É possível sincronizar a configuração das opções do banco de dados `tempdb`, incluindo o tamanho do arquivo e as configurações de crescimento automático, da instância de banco de dados primária para a instância de banco de dados secundária. A sincronização da configuração `tempDB` é aceita em todas as versões do RDS para SQL Server. É possível ativar a sincronização automática da configuração `tempdb` usando o seguinte procedimento armazenado:

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

**Importante**  
Antes de usar o procedimento armazenado `rds_set_system_database_sync_objects`, defina a configuração `tempdb` preferencial na instância de banco de dados primária, e não na instância de banco de dados secundária. Se você tiver feito a alteração na instância de banco de dados secundária, a configuração `tempdb` preferencial poderá ser excluída ao ativar a sincronização automática.

É possível usar a seguinte função para confirmar se a sincronização automática da configuração `tempdb` está ativada:

```
SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();
```

Quando a sincronização automática da configuração `tempdb` estiver ativada, haverá um valor exibido para o campo `object_class`. Quando está desativada, nenhum valor é exibido.

É possível usar a seguinte função 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, se você modificou a configuração `tempdb` às 01:00 e depois executou a função `rds_fn_server_object_last_sync_time`, o valor exibido para `last_sync_time` deve ser posterior à 01:00, indicando que ocorreu uma sincronização automática.

Se você também estiver usando a replicação do SQL Server Agent, 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 de trabalhos do SQL Server Agent, consulte [Ativar a replicação de trabalhos do SQL Server Agent](Appendix.SQLServer.CommonDBATasks.Agent.md#SQLServerAgent.Replicate).

Como alternativa ao uso do procedimento armazenado `rds_set_system_database_sync_objects` para garantir que as alterações da configuração `tempdb` sejam sincronizadas automaticamente, é possível usar um dos seguintes métodos manuais:

**nota**  
Recomendamos ativar a sincronização automática da configuração `tempdb` usando o procedimento armazenado `rds_set_system_database_sync_objects`: O uso da sincronização automática evita a necessidade de realizar essas tarefas manuais sempre que você altera a configuração `tempdb`.
+ Primeiro modifique sua instância de banco de dados e desative o Multi-AZ e depois modifique tempdb e finalmente volte a ativar o Multi-AZ. Esse método não envolve qualquer tempo de inatividade.

  Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 
+ Modifique `tempdb` na instância primária original, faça failover manualmente e, por fim, modifique `tempdb` na nova instância primária. Esse método envolve tempo de inatividade. 

  Para ter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).