

# Executar uma alternância do Oracle Data Guard
<a name="oracle-replication-switchover"></a>

Uma *alternância* é uma inversão de funções entre um banco de dados primário e um banco de dados em espera. Durante uma alternância, o banco de dados primário original faz a transição para uma função em espera, enquanto o banco de dados auxiliar original faz a transição para a função principal.

Em um ambiente Oracle Data Guard, um banco de dados primário oferece suporte a um ou mais bancos de dados em espera. Você pode executar uma transição de função gerenciada e baseada em alternância de um banco de dados primário para um banco de dados em espera. Uma *alternância* é uma inversão de funções entre um banco de dados primário e um banco de dados em espera. Durante uma alternância, o banco de dados primário original faz a transição para uma função em espera, enquanto o banco de dados auxiliar original faz a transição para a função principal.

**Topics**
+ [Visão geral da alternância do Oracle Data Guard](#oracle-replication-switchover.overview)
+ [Requisitos para a transição do Oracle Data Guard](oracle-switchover.preparing.md)
+ [Iniciar a alternância do Oracle Data Guard](oracle-switchover.initiating.md)
+ [Monitorar a alternância do Oracle Data Guard](oracle-switchover.monitoring.md)

## Visão geral da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview"></a>

O Amazon RDS oferece suporte a uma transição de função totalmente gerenciada e baseada em alternância para réplicas do Oracle Database. Você pode iniciar uma alternância somente para um banco de dados em espera montado ou aberto somente para leitura. 

As réplicas podem residir em Regiões da AWS separadas ou em diferentes zonas de disponibilidade (AZs) de uma única região. Todas as Regiões da AWS são aceitas. 

![\[Fazer a transição de uma instância em espera para torná-la a instância de banco de dados primária\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/read-replica-switchover.png)


A transição é diferente da promoção de réplicas de leitura. Em uma transição, as instâncias de banco de dados de origem e réplica mudam de função. Em uma promoção, uma réplica de leitura se torna uma instância de banco de dados de origem, mas a instância de banco de dados de origem não se torna uma réplica. Para obter mais informações, consulte [Promoção de uma réplica de leitura a uma instância de banco de dados autônoma](USER_ReadRepl.Promote.md).

**Topics**
+ [Benefícios da alternância do Oracle Data Guard](#oracle-replication-switchover.overview.benefits)
+ [Versões compatíveis do Oracle Database](#oracle-replication-switchover.overview.engine-support)
+ [Custo da alternância do Oracle Data Guard](#oracle-replication-switchover.overview.cost)
+ [Como funciona a alternância do Oracle Data Guard](#oracle-replication-switchover.overview.how-it-works)

### Benefícios da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.benefits"></a>

Assim como no caso das réplicas de leitura do RDS para Oracle, uma alternância gerenciada depende do Oracle Data Guard. A operação foi criada para não ter nenhuma perda de dados. O Amazon RDS automatiza os seguintes aspectos da alternância:
+ Inverte as funções do banco de dados primária e do banco de dados em espera especificado, colocando o novo banco de dados em espera no mesmo estado (montado ou somente para leitura) do em espera original
+ Garante a consistência de dados
+ Mantém sua configuração de replicação após a transição
+ Oferece suporte a reversões repetidas, permitindo que seu novo banco de dados em espera retorne à sua função primária original

### Versões compatíveis do Oracle Database
<a name="oracle-replication-switchover.overview.engine-support"></a>

O Oracle Database 19c e versões posteriores comportam a transição do Oracle Data Guard.

### Custo da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.cost"></a>

O recurso de alternância do Oracle Data Guard não está sujeito a custos adicionais. O Oracle Database Enterprise Edition inclui suporte a bancos de dados em espera no modo montado. Para abrir bancos de dados em espera no modo somente leitura, você precisa da opção Oracle Active Data Guard.

### Como funciona a alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works"></a>

A alternância do Oracle Data Guard é uma operação totalmente gerenciada. Você pode iniciar a alternância para um banco de dados em espera chamando o comando da CLI `switchover-read-replica`. Em seguida, o Amazon RDS modifica as funções primárias e em espera em sua configuração de replicação.

A *em espera original* e a *primário original* são as funções que existem antes da alternância. A *nova em espera* e a *novo primário* são as funções que existem após a alternância. Uma *réplica do espectador* é um banco de dados de réplica que serve como banco de dados em espera no ambiente Oracle Data Guard, mas não está alternando de funções.

**Topics**
+ [Etapas da alternância do Oracle Data Guard](#oracle-replication-switchover.overview.how-it-works.during-switchover)
+ [Após a alternância do Oracle Data Guard](#oracle-replication-switchover.overview.how-it-works.after-switchover)

#### Etapas da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works.during-switchover"></a>

Para realizar a alternância, o Amazon RDS deve seguir as seguintes etapas:

1. Bloqueie novas transações no banco de dados primário original. Durante a alternância, o Amazon RDS interrompe a replicação de todos os bancos de dados em sua configuração do Oracle Data Guard. Durante a alternância, o banco de dados primário original não pode processar solicitações de gravação.

1. Envie as transações não aplicadas para o banco de dados em espera original e aplique-as.

1. Reinicie o novo banco de dados em espera no modo somente leitura ou montado. O modo depende do estado aberto do banco de dados em espera original antes da alternância.

1. Abra o novo banco de dados primário no modo de leitura/gravação.

#### Após a alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover"></a>

O Amazon RDS alterna as funções do banco de dados primário e do banco de dados em espera. Você é responsável por reconectar sua aplicação e realizar qualquer outra configuração desejada.

**Topics**
+ [Critérios de sucesso](#oracle-replication-switchover.overview.how-it-works.after-switchover.success)
+ [Conexão com o novo banco de dados primário](#oracle-replication-switchover.overview.how-it-works.after-switchover.connection)
+ [Configuração do novo banco de dados primário](#oracle-replication-switchover.overview.how-it-works.after-switchover.success.configuration)

##### Critérios de sucesso
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.success"></a>

A alternância do Oracle Data Guard é bem-sucedida quando o banco de dados em espera original faz o seguinte:
+ Transições para sua função como novo banco de dados primário
+ Conclui sua reconfiguração

Para limitar o tempo de inatividade, seu novo banco de dados primário se torna ativo o mais rápido possível. Como o Amazon RDS configura réplicas de espectador de forma assíncrona, essas réplicas podem se tornar ativas após o banco de dados primário original.

##### Conexão com o novo banco de dados primário
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.connection"></a>

O Amazon RDS não propagará suas conexões de banco de dados atuais para o novo banco de dados primário após a alternância. Após a conclusão da alternância do Oracle Data Guard, reconecte sua aplicação ao novo banco de dados primário.

##### Configuração do novo banco de dados primário
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.success.configuration"></a>

Para realizar uma alternância para o novo banco de dados primário, o Amazon RDS altera o modo do banco de dados em espera original a ser aberto. A mudança na função é a única alteração no banco de dados. O Amazon RDS não configura recursos como a replicação Multi-AZ.

Se você realizar uma alternância para uma réplica entre regiões com opções diferentes, o novo banco de dados primário manterá suas próprias opções. O Amazon RDS não migrará as opções no banco de dados primário original. Se o banco de dados primário original tiver opções como SSL, NNE, OEM e OEM\$1AGENT, o Amazon RDS não as propagará para o novo banco de dados primário.

# Requisitos para a transição do Oracle Data Guard
<a name="oracle-switchover.preparing"></a>

Antes de iniciar a alternância do Oracle Data Guard, verifique se o seu ambiente de replicação atende aos seguintes requisitos:
+ O banco de dados em espera original é montado ou aberto somente para leitura.
+ Os backups automáticos são habilitados no banco de dados em espera original.
+ O banco de dados primário original e o banco de dados em espera original estão no estado `available`.
+ O banco de dados primário original e o banco de dados em espera original não têm ações de manutenção pendentes em nenhum destes estados: `required`, `next window` ou `in progress`. As ações nesses estados bloqueiam a transição. Para saber como verificar o status de atualizações de manutenção pendentes, consulte [Visualizar atualizações de manutenção pendentes](USER_UpgradeDBInstance.Maintenance.md#USER_UpgradeDBInstance.Maintenance.Viewing).

  As ações de manutenção pendentes no estado `available` não bloqueiam a transição. O RDS para Oracle frequentemente lança atualizações do sistema operacional (SO) no estado `available`. Essas atualizações pendentes do sistema operacional não bloquearão uma transição, a menos que você as agende para a próxima janela de manutenção, o que as coloca no estado `next window`.
**nota**  
Se você quiser adiar uma ação de manutenção programada para poder executar uma transição, escolha **Ações** e, depois, **Adiar atualização** no console do RDS. Você também pode evitar que uma transição seja bloqueada aplicando uma ação de manutenção pendente ou movendo a janela de manutenção para um intervalo antes da transição. Consulte mais informações no artigo do re:Post [How to remove RDS pending maintenance items](https://repost.aws/questions/QUV3dBjmVVRnmVV1pAlzjx1w/how-to-remove-rds-pending-maintenance-item).
+ O banco de dados em espera original está no estado de replicação.
+ Você não está tentando iniciar uma alternância quando o banco de dados primário ou o banco de dados em espera estão atualmente em um ciclo de vida de alternância. Se um banco de dados de réplica estiver sendo reconfigurado após uma alternância, o Amazon RDS impede que você inicie outra alternância.
**nota**  
Uma *réplica do espectador* é uma réplica na configuração do Oracle Data Guard que não é o alvo da alternância. As réplicas do espectador podem estar em qualquer estado durante a alternância.
+ O banco de dados em espera original tem uma configuração que é a mais próxima desejada do banco de dados primário original. Vamos supor que um cenário em que os bancos de dados primários originais e em espera originais tenham opções diferentes. Após a conclusão da alternância, o Amazon RDS não reconfigura automaticamente o novo banco de dados primário para ter as mesmas opções do banco de dados primário original.
+ Você configura a implantação multi-AZ desejada antes de iniciar uma transição. O Amazon RDS não gerencia o multi-AZ como parte da transição. A implantação Multi-AZ permanece no estado em que se encontra.

  Suponha que db\$1maz seja o banco de dados principal em uma implantação multi-AZ e db\$1saz seja uma réplica Single-AZ. Você inicia uma transição de db\$1maz para db\$1saz. Posteriormente, db\$1maz é um banco de dados de réplica multi-AZ e db\$1saz é um banco de dados principal Single-AZ. O novo banco de dados principal já pode ser desprotegido por uma implantação multi-AZ.
+ Em preparação para uma transição entre regiões, o banco de dados principal não usa o mesmo grupo de opções de uma instância de banco de dados fora da configuração de replicação. Para que uma transição entre regiões seja bem-sucedida, o banco de dados principal atual e suas réplicas de leitura devem ser as únicas instâncias de banco de dados a usar o grupo de opções do banco de dados principal atual. Caso contrário, o Amazon RDS impede a transição.

# Iniciar a alternância do Oracle Data Guard
<a name="oracle-switchover.initiating"></a>

Você pode alternar uma réplica de leitura do RDS para Oracle para a função primária e a antiga instância de banco de dados primária para uma função de réplica.

## Console
<a name="USER_ReadRepl.Promote.Console"></a>

**Como alternar uma réplica de leitura da Oracle para a função de banco de dados primária**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No console do Amazon RDS, escolha **Databases** (Bancos de dados).

   O painel **Databases** (Bancos de dados) é exibido. Todas as réplicas de leitura exibem **Replica** (Réplica) na coluna **Role** (Função).

1. Escolha a réplica de leitura que você deseja alternar para a função primária.

1. Para **Actions** (Ações), escolha **Switch over replica** (Alternar réplica).

1. Escolha **I acknowledge** (Eu aceito). Depois, escolha **Switch over replica** (Alternar réplica).

1. Na página **Databases** (Bancos de dados), monitore o progresso da transição.  
![\[Monitore o andamento da transição do Oracle Data Guard.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-switchover-progress.png)

   Quando a transição é concluída, a função do destino da alternância muda de **Replica** (Réplica) para **Primary** (Principal).  
![\[Os bancos de dados de origem e réplica alteram as funções.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-switchover-complete.png)

## AWS CLI
<a name="USER_ReadRepl.Promote.CLI"></a>

Para mudar uma réplica do Oracle para a função de banco de dados primária, use o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-read-replica.html) do AWS CLI. Os exemplos a seguir tornam a réplica do Oracle chamada *replica-to-be-made-primary* no novo banco de dados primário.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds switchover-read-replica \
    --db-instance-identifier replica-to-be-made-primary
```
Para Windows:  

```
aws rds switchover-read-replica ^
    --db-instance-identifier replica-to-be-made-primary
```

## API do RDS
<a name="USER_ReadRepl.Promote.API"></a>

Para alternar uma réplica do Oracle para a função de banco de dados primária, chame a operação da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html) do Amazon RDS com o parâmetro necessário `DBInstanceIdentifier`. Esse parâmetro especifica o nome da réplica do Oracle que você deseja assumir como função de banco de dados primária.

# Monitorar a alternância do Oracle Data Guard
<a name="oracle-switchover.monitoring"></a>

Para verificar o status das suas instâncias usando o comando AWS da `describe-db-instances` CLI. O comando a seguir verifica o status da instância de banco de dados *orcl2*. Esse banco de dados era um banco de dados em espera antes da alternância, mas é o novo banco de dados primário após a alternância.

```
aws rds describe-db-instances \
    --db-instance-identifier orcl2
```

Para verificar se a alternância foi concluída com êxito, consulte `V$DATABASE.OPEN_MODE`. Verifique se o valor do novo banco de dados primário é `READ WRITE`.

```
SELECT OPEN_MODE FROM V$DATABASE;
```

Para procurar eventos relacionados à alternância, use o comando `describe-events` da AWS.CLI. O exemplo a seguir procura eventos na instância *orcl2*.

```
aws rds describe-events \
    --source-identifier orcl2 \
    --source-type db-instance
```