Configurar a replicação lógica para a instância de banco de dados RDS para PostgreSQL
O procedimento a seguir mostra como iniciar a replicação lógica entre duas instâncias de banco de dados RDS PostgreSQL. As etapas pressupõem que tanto a fonte (editor) quanto o destino (assinante) tenham a extensão pglogical configurada conforme detalhado em Configurar a extensão pglogical. 
nota
O node_name de um nó assinante não pode começar com rds.
Como criar o nó do editor e definir as tabelas a serem replicadas
Estas etapas pressupõem que a instância de banco de dados do RDS para PostgreSQL tenha um banco de dados com uma ou mais tabelas que você deseja replicar para outro nó. Você precisa recriar a estrutura da tabela do editor no assinante, então, primeiro, obtenha a estrutura da tabela, se necessário. Você pode fazer isso usando o metacomando psql \d  e criando a mesma tabela na instância do assinante. O procedimento a seguir cria uma tabela de exemplo no editor (fonte) para fins de demonstração.tablename
- 
        Use psqlpara se conectar à instância que tem a tabela que você deseja usar como fonte para assinantes.psql --host=source-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres--password --dbname=labdbSe você não tiver uma tabela, crie uma tabela de exemplo da forma a seguir. - 
            Crie uma tabela de exemplo usando a declaração SQL a seguir. CREATE TABLE docs_lab_table (a int PRIMARY KEY);
- 
            Preencha a tabela com dados gerados usando a instrução SQL a seguir. INSERT INTO docs_lab_table VALUES (generate_series(1,5000));INSERT 0 5000
- 
            Verifique se os dados existem na tabela usando a declaração SQL a seguir. SELECT count(*) FROM docs_lab_table;
 
- 
            
- 
        Identifique essa instância de banco de dados do RDS para PostgreSQL como o nó do editor da forma a seguir. SELECT pglogical.create_node( node_name := 'docs_lab_provider', dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 dbname=labdb');create_node ------------- 3410995529 (1 row)
- 
        Adicione a tabela que você deseja replicar ao conjunto de replicação padrão. Para obter mais informações sobre conjuntos de replicação, consulte Replication sets (Conjuntos de replicação) na documentação da pglogical. SELECT pglogical.replication_set_add_table('default', 'docs_lab_table', 'true', NULL, NULL);replication_set_add_table --------------------------- t (1 row)
A configuração do nó do editor está concluída. Agora você pode configurar o nó de assinante para receber as atualizações do editor.
Como configurar o nó de assinante e criar uma assinatura para receber atualizações
Estas etapas pressupõem que instância de banco de dados do RDS para PostgreSQL tenha sido configurada com a extensão pglogical. Para obter mais informações, consulte Configurar a extensão pglogical. 
- 
        Use psqlpara se conectar à instância em que você deseja receber atualizações do editor.psql --host=target-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres--password --dbname=labdb
- 
        Na instância de banco de dados RDS para PostgreSQL do assinante, crie a mesma tabela que existe no editor. Neste exemplo, a tabela é docs_lab_table. Você pode criar a tabela da seguinte maneira.CREATE TABLE docs_lab_table (a int PRIMARY KEY);
- 
        Verifique se essa tabela está vazia. SELECT count(*) FROM docs_lab_table;count ------- 0 (1 row)
- 
        Identifique essa instância de banco de dados RDS para PostgreSQL como o nó do assinante da forma a seguir. SELECT pglogical.create_node( node_name := 'docs_lab_target', dsn := 'host=target-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdbuser=postgrespassword=********');create_node ------------- 2182738256 (1 row)
- 
        Crie a assinatura. SELECT pglogical.create_subscription( subscription_name := 'docs_lab_subscription', provider_dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdbuser=postgrespassword=*******', replication_sets := ARRAY['default'], synchronize_data := true, forward_origins := '{}' );create_subscription --------------------- 1038357190 (1 row)Ao concluir essa etapa, os dados da tabela no editor são criados na tabela no assinante. Se você quiser verificar se isso ocorreu, verifique a consulta SQL a seguir. SELECT count(*) FROM docs_lab_table;count ------- 5000 (1 row)
Desse ponto em diante, as alterações feitas na tabela do editor são replicadas na tabela do assinante.