Configurar a replicação lógica para seu cluster de banco de dados do Aurora PostgreSQL
A configuração da replicação lógica exige privilégios rds_superuser
. Seu cluster de banco de dados do Aurora PostgreSQL deve estar configurado para usar um grupo de parâmetros de cluster de banco de dados personalizado para que você possa definir os parâmetros necessários conforme detalhado no procedimento a seguir. Para obter mais informações, consulte Grupos de parâmetros do cluster de banco de dados para clusters de banco de dados do Amazon Aurora.
Como configurar a replicação lógica PostgreSQL para seu cluster de banco de dados do Aurora PostgreSQL
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
No painel de navegação, selecione seu cluster de banco de dados do Aurora PostgreSQL.
-
Abra a guia Configuration (Configuração). Entre os detalhes da instância, encontre o link do Grupo de parâmetros com Grupo de parâmetros do cluster de banco de dados para Tipo.
-
Clique no link para abrir os parâmetros personalizados associados ao seu cluster de banco de dados do Aurora PostgreSQL.
-
No campo Parameters (Parâmetros), digite
rds
para encontrar o parâmetrords.logical_replication
. O valor padrão para esse parâmetro é0
, o que significa que ele está desativado por padrão. -
Selecione Edit parameters (Editar parâmetros) para acessar os valores das propriedades e depois selecione
1
no seletor para ativar o recurso. Dependendo do uso esperado, talvez você também precise alterar as configurações dos parâmetros a seguir. No entanto, em muitos casos, os valores padrão são suficientes.-
max_replication_slots
: defina esse parâmetro com um valor que seja pelo menos igual ao número total planejado de publicações e assinaturas de replicação lógica. Se você estiver usando AWS DMS, esse parâmetro deverá se igualar pelo menos às suas tarefas planejadas de captura de dados de alteração do cluster, além de publicações e assinaturas de replicação lógica. -
max_wal_senders
emax_logical_replication_workers
: defina esses parâmetros como um valor pelo menos equivalente ao número de slots de replicação lógica que você planeja manter ativos ou ao número de tarefas AWS DMS ativas para a captura de dados de alterações. Deixar um slot de replicação lógica inativo evita que o vácuo remova tuplas obsoletas das tabelas. Por isso, recomendamos monitorar os slots de replicação e remover os inativos conforme necessário. -
max_worker_processes
: defina esse parâmetro com um valor que seja pelo menos igual ao total dos valoresmax_logical_replication_workers
,autovacuum_max_workers
emax_parallel_workers
. Em classes de instância de banco de dados pequenas, os processos de operador em segundo plano podem afetar as workloads de aplicações. Por isso, monitore a performance do banco de dados se você definirmax_worker_processes
como maior do que o valor padrão. (O valor padrão é o resultado deGREATEST(${DBInstanceVCPU*2},8}
, o que significa que, por padrão, isso é oito ou duas vezes o equivalente de CPU da classe da instância de banco de dados, o que for maior).
nota
Você pode modificar valores de parâmetros em um grupo de parâmetros de banco de dados criado pelo cliente, mas não pode alterar os valores dos parâmetros em um grupo de parâmetros de banco de dados padrão.
-
Escolha Salvar alterações.
Reinicialize a instância do gravador de seu cluster de banco de dados do Aurora PostgreSQL para que as alterações tenham efeito. No console do Amazon RDS, selecione a instância de banco de dados primária do cluster e selecione Reboot (Reinicializar) no menu Actions (Ações).
Quando a instância estiver disponível, você poderá verificar se a replicação lógica está ativada da forma a seguir.
Use o
psql
para se conectar à instância do gravador do cluster de banco de dados do Aurora PostgreSQL.psql --host=
your-db-cluster-instance-1
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres
--password --dbname=labdb
Verifique se a replicação lógica foi habilitada usando o comando a seguir.
labdb=>
SHOW rds.logical_replication;
rds.logical_replication ------------------------- on (1 row)
Verifique se o
wal_level
está definido comological
.labdb=>
SHOW wal_level;
wal_level ----------- logical (1 row)
Para ver um exemplo de como usar a replicação lógica para manter uma tabela de banco de dados sincronizada com as alterações de um cluster de banco de dados do Aurora PostgreSQL de origem, consulte Exemplo: usar a replicação lógica com clusters de banco de dados do Aurora PostgreSQL.