Replicação com Amazon Aurora PostgreSQL - Amazon Aurora

Replicação com Amazon Aurora PostgreSQL

A seguir, você obtém informações sobre replicação com o Amazon Aurora PostgreSQL, que incluem como monitorar a replicação.

Usar réplicas do Aurora

Uma Aurora réplica é um endpoint independente em um cluster de banco de dados do Aurora, cuja melhor utilidade é dimensionar operações de leitura e aumentar a disponibilidade. Um cluster de banco de dados do Aurora pode incluir até réplicas de 15 Aurora localizadas nas zonas de disponibilidade da região da AWS do cluster de banco de dados do Aurora.

O volume do cluster de banco de dados é composto por várias cópias dos dados do cluster de banco de dados. Contudo, os dados no volume do cluster são representados como um volume lógico, único, para a instância de banco de dados do gravador principal e para réplicas do Aurora no cluster de banco de dados. Para mais informações sobre réplicas do Aurora, consulte Réplicas do Aurora.

As réplicas do Aurora funcionam bem para a escalabilidade de leitura porque são totalmente dedicadas a operações de leitura em seu volume de cluster. A instância de banco de dados do gravador grava operações. O volume do cluster é compartilhado com todas as instâncias em seu cluster de banco de dados Aurora PostgreSQL. Assim, nenhum trabalho extra é necessário para replicar uma cópia dos dados para cada réplica do Aurora.

Com o Aurora PostgreSQL, quando a réplica do Aurora é excluída, o endpoint da instância é removido imediatamente, e a réplica do Aurora é removida do endpoint leitor. Se houver instruções em execução na réplica do Aurora que está sendo excluída, haverá um período de carência de três minutos. As instruções existentes podem ser concluídas durante o período de carência. Quando o período de carência termina, a réplica do Aurora é fechada e excluída.

Os clusters de banco de dados do Aurora PostgreSQL são compatíveis com réplicas do Aurora em diferentes regiões da AWS, usando o banco de dados global do Aurora. Para ter mais informações, consulte Usar bancos de dados globais do Amazon Aurora.

nota

Com o atributo de disponibilidade de leitura aprimorado, se você quiser reinicializar as réplicas do Aurora no cluster de banco de dados, terá que fazê-lo manualmente. Para os clusters de banco de dados criados antes desse recurso, a reinicialização da instância de banco de dados do gravador reinicializa automaticamente as réplicas do Aurora. A reinicialização automática restabelece um ponto de entrada que garante a consistência de leitura/gravação no cluster de banco de dados.

Melhorar a disponibilidade de leitura das réplicas do Aurora

O Aurora PostgreSQL melhora a disponibilidade de leitura no cluster de banco de dados atendendo continuamente às solicitações de leitura quando a instância de banco de dados do gravador é reiniciada ou quando a réplica do Aurora não consegue acompanhar o tráfego de gravação.

O recurso de disponibilidade de leitura está disponível por padrão nas seguintes versões do Aurora PostgreSQL:

  • Versão 15.2 e versões 15 posteriores

  • Versão 14.7 e versões 14 posteriores

  • Versão 13.10 e versões 13 posteriores

  • Versão 12.14 e versões 12 posteriores

Para usar o recurso de disponibilidade de leitura para um cluster de banco de dados criado em uma dessas versões antes desse lançamento, reinicie a instância do gravador do cluster de banco de dados.

Ao modificar parâmetros estáticos do cluster de banco de dados do Aurora PostgreSQL, é necessário reiniciar a instância do gravador para que as alterações entrem em vigor. Por exemplo, é necessário reiniciar a instância do gravador ao definir o valor de shared_buffers. Com a disponibilidade aprimorada das réplicas do Aurora, o cluster de banco de dados mantém a disponibilidade de leitura durante essas reinicializações, o que reduz o impacto das alterações na instância do gravador. As instâncias do leitor não são reiniciadas e continuam respondendo às solicitações de leitura. Para aplicar alterações de parâmetros estáticos, reinicialize cada instância individual do leitor.

A réplica do Aurora de um cluster de banco de dados do Aurora PostgreSQL pode se recuperar de erros de replicação, como reinicializações do gravador, failover, replicação lenta e problemas de rede, recuperando-se rapidamente para o estado do banco de dados na memória após a reconexão com o gravador. Essa abordagem permite que as instâncias de réplica do Aurora alcancem a consistência com as atualizações de armazenamento mais recentes enquanto o banco de dados do cliente ainda está disponível.

As transações em andamento que entram em conflito com a recuperação da replicação podem receber um erro, mas o cliente pode repetir essas transações depois que os leitores acompanharem o gravador.

Monitorar réplicas do Aurora

É possível monitorar as réplicas do Aurora ao se recuperar de uma desconexão do gravador. Use as métricas abaixo para verificar as informações mais recentes sobre a instância do leitor e rastrear transações em andamento somente leitura.

  • A função aurora_replica_status é atualizada para retornar as informações mais atualizadas para a instância do leitor quando ela ainda está conectada. O carimbo de data/hora da última atualização no aurora_replica_status está sempre vazio para a linha correspondente à instância de banco de dados na qual a consulta é executada. Isso indica que a instância do leitor tem os dados mais recentes.

  • Quando a réplica do Aurora se desconecta da instância do gravador e se reconecta, o seguinte evento do banco de dados é emitido:

    Read replica has been disconnected from the writer instance and reconnected.

  • Quando uma consulta somente para leitura é cancelada devido a um conflito de recuperação, você pode ver a seguinte mensagem de erro no log de erros do banco de dados:

    Canceling statement due to conflict with recovery.

Limitações

As seguintes limitações aplicam-se às réplicas do Aurora com disponibilidade aprimorada:

  • Réplicas do banco de dados global Aurora nas Regiões da AWS secundárias não são compatíveis.

  • As réplicas do Aurora não serão compatíveis com a recuperação de replicação on-line se uma já estiver em andamento e for reiniciada.

  • As réplicas do Aurora serão reiniciadas quando sua instância de banco de dados estiver próxima da conclusão do ID da transação. Para obter mais informações sobre a conclusão de ID de transação, consulte Evitar falhas de conclusão de ID de transação.

  • As réplicas do Aurora podem ser reiniciadas quando o processo de replicação é bloqueado em determinadas circunstâncias.

Monitorar a replicação do Aurora PostgreSQL

A escalabilidade de leitura e a alta disponibilidade dependem de um tempo de atraso mínimo. Você pode monitorar até que ponto uma réplica do Aurora está atrasada em relação à instância de banco de dados do gravador do cluster de banco de dados do Aurora PostgreSQL monitorando a métrica ReplicaLag do Amazon CloudWatch. Como as réplicas do Aurora leem no mesmo volume do cluster que a instância de banco de dados do gravador, a métrica ReplicaLag tem um significado diferente para um cluster de banco de dados do Aurora PostgreSQL. A métrica ReplicaLag de uma réplica do Aurora indica o atraso do cache da página da réplica do Aurora em comparação com o da instância de banco de dados do gravador.

Para obter mais informações sobre como monitorar as instâncias do RDS e as métricas do CloudWatch, consulte Monitorar métricas em um cluster do Amazon Aurora.