Por padrão, o protocolo de replicação em streaming não sincroniza os slots de replicação lógica criados em uma instância primária do ApsaraDB RDS for PostgreSQL com a instância secundária. Durante um switchover entre primária e secundária, os slots são perdidos e as assinaturas lógicas são interrompidas. O Failover de Slot de Replicação Lógica resolve esse problema ao sincronizar continuamente todos os slots de replicação lógica da instância primária para a secundária. Assim, as assinaturas sobrevivem ao switchover sem intervenção manual.
Pré-requisitos
Antes de começar, verifique se:
A instância RDS executa o PostgreSQL 10 ou superior.
A versão secundária do mecanismo é compatível com o recurso Failover de Slot de Replicação Lógica. Caso contrário, atualize a versão secundária do mecanismo.
Como funciona
O Failover de Slot de Replicação Lógica vem ativado por padrão em todas as instâncias do ApsaraDB RDS for PostgreSQL que atendem aos requisitos de versão. No modo async, a instância primária replica o estado dos slots de forma assíncrona para a instância secundária. Quando ocorre um switchover entre primária e secundária, a instância secundária já possui uma cópia atualizada de todos os slots de replicação lógica. Isso permite que as assinaturas lógicas continuem sem intervenção manual.
O Failover de Slot de Replicação Lógica aplica-se apenas a slots de replicação lógica. Não há suporte para slots de replicação física. Para obter mais informações sobre slots de replicação lógica, consulte Conceitos de Decodificação Lógica.
Verificar o status do recurso
Execute a seguinte instrução SQL para verificar se o Failover de Slot de Replicação Lógica está ativado:
SHOW rds_failover_slot_mode;
O resultado abaixo indica que o recurso está ativado:
rds_failover_slot_mode
------------------------
async
(1 row)
Os possíveis valores de retorno são:
|
Valor |
Significado |
|
async |
O Failover de Slot de Replicação Lógica está ativado. |
|
off |
A instância é compatível com o recurso, mas ele está desativado no momento. |
|
ERROR: unrecognized configuration parameter "rds_failover_slot_mode" |
Não há suporte para o recurso. Atualize a versão principal ou secundária do mecanismo para atender aos pré-requisitos. |
Se não houver suporte para o recurso, atualize a versão principal do mecanismo para uma versão compatível ou atualize a versão secundária do mecanismo para cumprir os requisitos.