Usar réplicas de leitura em cascata com o RDS para PostgreSQL
Desde a versão 14.1, o RDS para PostgreSQL é compatível com réplicas de leitura em cascata. Com réplicas de leitura em cascata, é possível dimensionar leituras sem adicionar sobrecarga à instância de banco de dados do RDS para PostgreSQL de origem. As atualizações do log WAL não são enviadas pela instância de banco de dados de origem a cada réplica de leitura. Em vez disso, cada réplica de leitura em uma série em cascata envia atualizações de log WAL para a próxima réplica de leitura da série. Isso reduz a carga na instância de banco de dados de origem.
Com réplicas de leitura em cascata, a instância de banco de dados do RDS para PostgreSQL envia dados de WAL para a primeira réplica de leitura da cadeia. Essa réplica de leitura envia dados de WAL para a segunda réplica na cadeia e assim por diante. O resultado final é que todas as réplicas de leitura na cadeia têm as alterações da instância de banco de dados do RDS para PostgreSQL, mas sem a sobrecarga apenas na instância de banco de dados de origem.
É possível criar uma série de até três réplicas de leitura em uma cadeia de uma instância de banco de dados de origem do RDS para PostgreSQL. Por exemplo, suponha que você tenha uma instância de banco de dados do RDS para PostgreSQL 14.1, rpg-db-main. Você pode fazer o seguinte:
-
Começando com
rpg-db-main, crie a primeira réplica de leitura na cadeia,read-replica-1. -
Na
read-replica-1, crie a próxima réplica de leitura na cadeia,read-replica-2. -
Finalmente, na
read-replica-2, crie a terceira réplica de leitura na cadeia,read-replica-3.
Não é possível criar outra réplica de leitura além dessa terceira réplica de leitura em cascata na série de rpg-db-main. Uma série completa de instâncias de uma instância de banco de dados de origem do RDS para PostgreSQL até o final de uma série de réplicas de leitura em cascata pode consistir em, no máximo, quatro instâncias de banco de dados.
Para que as réplicas de leitura em cascata funcionem, ative os backups automáticos no RDS para PostgreSQL. Crie a réplica de leitura primeiro e ative os backups automáticos na instância de banco de dados do RDS para PostgreSQL. O processo é igual ao de outros mecanismos de banco de dados do Amazon RDS. Para obter mais informações, consulte Como criar uma réplica de leitura.
Como em qualquer réplica de leitura, é possível promover uma réplica de leitura que faz parte de uma cascata. A promoção de uma réplica de leitura de uma cadeia de réplicas de leitura remove essa réplica da cadeia. Por exemplo, suponha que você queira mover parte da workload da instância de banco de dados rpg-db-main para uma nova instância para uso somente pelo departamento de contabilidade. Pressupondo a cadeia com três réplicas de leitura do exemplo, você decide promover read-replica-2. A cadeia é afetada da seguinte forma:
-
A promoção de
read-replica-2a remove da cadeia de replicação.-
Ela agora é uma instância de banco de dados de leitura/gravação completa.
-
Ela continua replicando para
read-replica-3, da mesma forma como estava fazendo antes da promoção.
-
-
A
rpg-db-maincontinua a replicar para aread-replica-1.
Para obter mais informações sobre como promover réplicas de leitura, consulte Promoção de uma réplica de leitura a uma instância de banco de dados autônoma.
nota
-
O RDS para PostgreSQL não aceita atualizações de versão principal para réplicas em cascata. Antes de realizar uma atualização de versão principal, você precisa remover as réplicas em cascata. Você pode recriá-las depois de concluir a atualização na instância de banco de dados de origem e nas réplicas de primeiro nível.
-
Para réplicas de leitura em cascata, o RDS para PostgreSQL é compatível com quinze réplicas de leitura para cada instância de banco de dados de origem no primeiro nível de replicação e cinco réplicas de leitura para cada instância de banco de dados de origem no segundo e no terceiro níveis de replicação.