Como monitorar e solucionar problemas de atrasos de replicação ao usar a réplica de leitura em uma instância do Amazon RDS for Oracle?

Última atualização: 18/11/2021

Quero monitorar e solucionar problemas de atrasos de replicação quando uso a réplica de leitura em minha instância de banco de dados do Amazon Relational Database Service (Amazon RDS) for Oracle.

Breve descrição

É possível configurar a réplica de leitura em sua instância do RDS for Oracle usando a licença do Oracle Active Data Guard. Quando você cria uma réplica de leitura para sua instância, as instâncias principal e de réplica de leitura operam no modo de performance máxima do Data Guard. Para obter mais informações, consulte a documentação da Oracle sobre os modos de proteção do Oracle Data Guard.

É possível usar a réplica de leitura para descarregar as operações de leitura da instância principal. Você também pode promover a réplica de leitura como uma instância de banco de dados autônoma, em caso de recuperação de desastres. Para obter mais informações, consulte Promover uma réplica de leitura para instância de banco de dados autônoma.

Antes de configurar uma réplica de leitura para a instância, verifique as limitações relacionadas à versão e ao licenciamento. Além disso, reveja Requisitos e restrições diversos para réplicas do Oracle.

Resolução

Ao usar a réplica de leitura em sua instância do RDS for Oracle, lembre-se de que:

  • O Amazon RDS é um serviço gerenciado. Portanto, o processo de replicação é gerenciado por um usuário interno do RDS_DATAGUARD. Esse usuário é configurado quando você cria uma instância de réplica de leitura.
  • Não é possível interromper o processo de recuperação gerenciada da conta de usuário administrador.
  • Você não pode configurar ou modificar a réplica de leitura do Oracle Data Guard Broker no RDS.
  • Não é possível atrasar a replicação de dados de uma instância principal para uma instância de réplica de leitura.
  • As modificações feitas no grupo de opções se propagam para a instância de réplica de leitura. Se as réplicas de leitura estiverem configuradas na mesma região, elas serão associadas ao mesmo grupo de opções. Para obter mais informações, consulte Requisitos e restrições de opções para réplicas do Oracle.

Monitorar o atraso de replicação

É possível que haja um atraso na replicação se a réplica não conseguir acompanhar a instância principal. Para monitorar o atraso de replicação no Amazon CloudWatch, veja a métrica do Amazon RDS ReplicaLag. Essa métrica exibe o atraso de replicação em milissegundos. Para obter mais informações, consulte Monitorar a replicação de leitura e Visualizar métricas e dimensões do Amazon RDS.

Para monitorar e solucionar problemas de atraso de replicação no Active Data Guard, siga estas etapas:

Execute a seguinte consulta para verificar as métricas de atraso do Data Guard:

sql > SELECT name,value,datum_time,time_computed FROM v$dataguard_stats;

Execute a seguinte consulta para verificar se há alguma lacuna no log de arquivo entre as instâncias principal e de réplica de leitura:

sql >  SELECT archived.thread# THREAD,max(archived.sequence#) PRIMARY,max(applied.sequence#) STANDBY,(max(archived.sequence#) - max(applied.sequence#)) GAP FROM v$archived_log archived,v$archived_log applied WHERE archived.thread#=applied.thread# AND applied.applied='YES' GROUP BY archived.thread#;

Observação: o RDS for Oracle não emite alerta quando há um atraso na replicação. Para enviar notificações sempre que a réplica de leitura não acompanhar a instância principal, crie um alarme do CloudWatch para a métrica do RDS ReplicaLag.

Solucionar problemas de atraso de replicação

  • Se a instância principal não estiver disponível, verifique o estado atual da instância usando o console do Amazon RDS. Além disso, verifique se a instância pode ser acessada de qualquer cliente SQL. Se a instância principal não estiver disponível (por exemplo, a instância está no estado incompatible-parameters), a réplica de leitura não poderá acompanhar a instância principal e ficará para trás. Verifique os eventos do Amazon RDS para descobrir por que a instância principal não está disponível. Em seguida, corrija a instância para garantir que ela esteja acessível.
  • Se a instância principal estiver sob uma alta sobrecarga de CPU ou memória, poderá ocorrer um alto atraso de transporte. Monitore as métricas do CloudWatch para a instância. Além disso, use o Enhanced Monitoring para identificar se um processo específico causa um pico incomum na memória ou no uso da CPU. Para obter mais informações, consulte Exibir métricas do sistema operacional no console do RDS. Quando a carga da CPU/memória diminui, a réplica pode acompanhar a instância principal. Se a sobrecarga na instância for a esperada, você poderá optar por aumentar a escala na vertical da classe de instância, IOPS ou taxa de transferência, conforme necessário.
  • Monitore os arquivos alert.log da instância principal e da réplica de leitura para identificar alertas ou erros ORA que possam afetar o transporte ou aplicar processos. Para obter mais informações sobre como acessar o log de alertas para instâncias do RDS, consulteArquivos de log do banco de dados Oracle. Resolva os erros identificados para reduzir o atraso.
  • Quando você redimensiona ou altera o número de logs de refazimento na instância principal, as alterações não são replicadas na instância em espera. Para replicar essas alterações, é necessário recriar a instância em espera. É uma prática recomendada atualizar os parâmetros de logs de refazimento antes de configurar a réplica de leitura. Para obter mais informações, consulte Alterar sua configuração de registro.
  • Configurar a instância de réplica de leitura com menos capacidade de computação ou IOPS em comparação à instância principal pode retardar a aplicação de alterações na réplica de leitura, resultando em atraso na replicação. Monitore as métricas do RDS usando o CloudWatch para verificar o controle de utilização em ambas as instâncias. Se a instância principal não tiver controle de utilização e a réplica de leitura tiver controle de utilização, identifique o recurso que está sendo otimizado. Em seguida, aumente a escala na vertical da configuração de armazenamento ou computação, conforme necessário.