Configurar um banco de dados PostgreSQL autogerenciado

As seções a seguir mostram como configurar um banco de dados PostgreSQL autogerenciado.

Ativar a replicação lógica no banco de dados

  1. Defina o parâmetro wal_level no seu banco de dados adicionando wal_level=logical ao arquivo postgresql.conf.

  2. Reinicie o servidor.

Criar uma publicação e um slot de replicação

  1. Faça login no console do PostgreSQL como superusuário.

  2. Crie uma publicação. Recomendamos que você crie uma publicação somente para as tabelas que quer replicar. Isso permite que o Datastream somente leia os dados relevantes e reduz a carga no banco de dados e no Datastream:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;

    Substitua:

    • PUBLICATION_NAME: é o nome da publicação. É necessário fornecer esse nome ao criar um stream no assistente de criação de streams do Datastream.
    • SCHEMA: o nome do esquema que contém a tabela.
    • TABLE: o nome da tabela que você quer replicar.

    É possível criar uma publicação para todas as tabelas em um esquema. Com essa abordagem, é possível replicar alterações em tabelas na lista de esquemas especificada, incluindo tabelas que você criar no futuro:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLES IN SCHEMA1, SCHEMA2;

    Você também pode criar uma publicação para todas as tabelas do seu banco de dados. Observe que essa abordagem aumenta a carga no banco de dados de origem e no Datastream:

    CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
    
  3. Crie um slot de replicação digitando o seguinte comando SQL:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');

    Substitua:

    • REPLICATION_SLOT_NAME: o nome do slot de replicação. Você precisará fornecer esse nome ao criar um stream no assistente de criação de streams do Datastream.

Criar um usuário do Datastream

  1. Para criar um usuário do Datastream, digite os seguintes comandos SQL:

    CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';

    Substitua:

    • USER_NAME: o nome do usuário do Datastream que você quer criar.
    • USER_PASSWORD: a senha de login do usuário do Datastream que você quer criar.
  2. Conceda os seguintes privilégios ao usuário que você criou:

    ALTER ROLE USER_NAME WITH REPLICATION;
    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
      GRANT SELECT ON TABLES TO USER_NAME;
    

    Substitua:

    • USER_NAME: o usuário a quem você quer conceder os privilégios.
    • SCHEMA_NAME: o nome do esquema a que você quer conceder os privilégios.