Exemplo: usar a replicação lógica com clusters de banco de dados do Aurora PostgreSQL
O procedimento a seguir mostra como iniciar a replicação lógica entre dois clusters de banco de dados do Aurora PostgreSQL. Tanto o editor quanto o assinante devem ser configurados para replicação lógica, conforme detalhado em Configurar a replicação lógica para seu cluster de banco de dados do Aurora PostgreSQL.
O cluster de banco de dados do Aurora PostgreSQL que é o editor designado também deve permitir o acesso ao slot de replicação. Para fazer isso, modifique o grupo de segurança associado à nuvem pública virtual (VPC) do cluster de banco de dados do Aurora PostgreSQL com base no serviço da Amazon VPC. Permita o acesso de entrada adicionando o grupo de segurança associado à VPC do assinante ao grupo de segurança do editor. Para obter mais informações, consulte Controle o tráfego para recursos usando grupos de segurança no Guia do usuário da Amazon VPC.
Com essas etapas preliminares concluídas, você pode usar os comandos do PostgreSQL CREATE PUBLICATION
no editor e CREATE SUBSCRIPTION
no assinante, conforme detalhado no procedimento a seguir.
Como iniciar o processo de replicação lógica entre dois clusters de banco de dados do Aurora PostgreSQL.
Essas etapas pressupõem que seus clusters de banco de dados do Aurora PostgreSQL tenham uma instância do gravador com um banco de dados para criar as tabelas de exemplo.
No cluster de banco de dados do Aurora PostgreSQL do editor
Crie uma tabela usando a declaração SQL a seguir.
CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
Insira dados no banco de dados publisher usando a seguinte instrução SQL.
INSERT INTO LogicalReplicationTest VALUES (generate_series(1,10000));
Verifique se os dados existem na tabela usando a declaração SQL a seguir.
SELECT count(*) FROM LogicalReplicationTest;
Crie uma publicação para essa tabela usando a declaração
CREATE PUBLICATION
, conforme explicado a seguir.CREATE PUBLICATION testpub FOR TABLE LogicalReplicationTest;
-
No cluster de banco de dados do Aurora PostgreSQL do assinante
Crie a mesma tabela
LogicalReplicationTest
no assinante que você criou no editor, da forma a seguir.CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
Verifique se essa tabela está vazia.
SELECT count(*) FROM LogicalReplicationTest;
Crie uma assinatura para receber as alterações do editor. Você precisa usar os detalhes a seguir sobre o cluster de banco de dados do Aurora PostgreSQL do editor.
host: a instância de banco de dados do gravador do cluster de banco de dados do Aurora PostgreSQL do editor.
port: a porta na qual a instância de banco de dados do gravador está escutando. O padrão do PostgreSQL é 5432.
dbname: o nome do banco de dados.
CREATE SUBSCRIPTION testsub CONNECTION 'host=
publisher-cluster-writer-endpoint
port=5432 dbname=db-name
user=user
password=password
' PUBLICATION testpub;nota
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.
Depois da criação da assinatura, um slot da replicação lógica é criado no publisher.
Para verificar neste exemplo se os dados iniciais são replicados no assinante, use a seguinte instrução SQL no banco de dados assinante.
SELECT count(*) FROM LogicalReplicationTest;
Todas as alterações adicionais no publisher são replicadas para o assinante.
A replicação lógica afeta a performance. Recomendamos que você desative a replicação lógica após a conclusão das tarefas de replicação.