Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Use the pglogical extension

Última atualização: Oct 10, 2026

Este tópico descreve como usar a extensão pglogical do PostgreSQL para replicar os dados de uma instância do ApsaraDB RDS for PostgreSQL. Esta extensão utiliza o padrão publish/subscribe para implementar a replicação lógica em streaming.

Pré-requisitos

  • Sua instância RDS executa o PostgreSQL 10 ou superior.

  • Sua instância RDS executa a versão secundária do mecanismo 20230830 ou superior. Se a sua instância RDS executar o PostgreSQL 17, a versão secundária do mecanismo deverá ser 20241030 ou superior.

    Importante

    O ApsaraDB RDS oferece suporte a esta extensão em versões secundárias do mecanismo anteriores a 20230830. No entanto, o ApsaraDB RDS planeja otimizar extensões vulneráveis nas atualizações de versões secundárias do mecanismo. O objetivo é padronizar o gerenciamento de extensões e aumentar a segurança. Portanto, não é possível criar esta extensão em instâncias RDS que executam uma versão secundária do mecanismo anterior a 20230830. Para mais informações, consulte Restrições na criação de extensões para RDS for PostgreSQL.

    • Se você já criou esta extensão para uma instância RDS que executa uma versão secundária do mecanismo anterior a 20230830, pode continuar usando a extensão.

    • Se estiver criando esta extensão pela primeira vez ou precisar recriá-la para sua instância RDS, atualize a versão secundária do mecanismo para a versão mais recente. Para mais informações, consulte Atualize a versão secundária do mecanismo.

  • O valor do parâmetro shared_preload_libraries da sua instância RDS inclui o pglogical.

    Para mais informações sobre como adicionar pglogical ao valor do parâmetro shared_preload_libraries, consulte Defina os parâmetros da instância.

    Nota

    Por favor, modifique e aplique o valor do parâmetro shared_preload_libraries. A sua instância RDS reinicia imediatamente. A reinicialização desconecta a sua aplicação da instância RDS. Prossiga com cautela. Antes de acionar a reinicialização, planeje suas operações e certifique-se de que a sua aplicação esteja configurada para se reconectar automaticamente ao banco de dados.

Informações de contexto

A extensão pglogical do PostgreSQL é um método altamente eficiente de replicação de dados e serve como alternativa à replicação física por meio do padrão publish/subscribe. Ela oferece uma velocidade de replicação maior que a do Slony, Bucardo e Londiste, além de suportar atualizações entre versões. Esta extensão é adequada para os seguintes cenários:

  • Atualização de versões principais do mecanismo

  • Replicação de todos os dados de um banco de dados na sua instância RDS

  • Replicação de tabelas, linhas e colunas específicas por meio de conjuntos de replicação

  • Agregação e mesclagem de dados de vários servidores upstream

Use a extensão

  • Inicialmente, ative a extensão pglogical.

    CREATE EXTENSION pglogical;
  • Desative a extensão pglogical.

    DROP EXTENSION pglogical;

Configure a replicação lógica em streaming

  1. Para começar, crie um nó publicador no publicador.

    Nota

    Primeiro, defina o parâmetro host como 127.0.0.1 para o nó publicador. Em seguida, execute a instrução SHOW PORT; para obter o valor do parâmetro port do nó publicador.

    SELECT pglogical.create_node(
        node_name := 'provider',
        dsn := 'host=127.0.0.1 port=<Port number> dbname=test user=provider_user password=provider_pass'
    );
  2. Configure um conjunto de replicação.

    Para isso, selecione todas as tabelas no schema public e adicione-as ao conjunto de replicação padrão.

    SELECT pglogical.replication_set_add_all_tables('default', ARRAY['public']);
    Nota
    • O conjunto de replicação replica somente as tabelas especificadas e as alterações definidas nessas tabelas do publicador para o assinante.

    • O conjunto de replicação padrão replica todas as tabelas e as respectivas alterações do publicador para o assinante. Para mais informações, consulte a documentação do pglogical.

  3. Agora, crie um nó assinante no assinante.

    Nota

    Primeiro, defina o parâmetro host como 127.0.0.1 para o nó assinante. Em seguida, execute a instrução SHOW PORT; para obter o valor do parâmetro port do nó assinante.

    SELECT pglogical.create_node(
        node_name := 'subscriber',
        dsn := 'host=127.0.0.1 port=<Port number> dbname=test user=subscriber_user password=subscriber_pass'
    );
  4. Por fim, crie uma assinatura no assinante.

    Nota
    SELECT pglogical.create_subscription(
        subscription_name := 'subscription',
        provider_dsn := 'host=<Internal endpoint of the provider> port=<Internal port number of the provider> dbname=test user=provider_user password=provider_pass'
    );

    Após a criação da assinatura, os processos de sincronização e replicação iniciam em segundo plano.

Referências

Para mais informações, consulte a documentação do pglogical.