Configurar um banco de dados PostgreSQL do Amazon RDS

Veja na página a seguir como configurar o CDC para um banco de dados do Amazon RDS para PostgreSQL.

Criar um grupo de parâmetros

  1. Inicie seu painel do Amazon RDS.

  2. Na Gaveta de navegação, clique em Grupos de parâmetros e, em seguida, em Criar grupo de parâmetros. A página Criar grupo de parâmetros é exibida.

  3. Selecione a família correspondente ao seu banco de dados, forneça um nome e uma descrição para o grupo de parâmetros e clique em Criar.

  4. Marque a caixa de seleção à esquerda do grupo de parâmetros recém-criado e, em Ações do grupo de parâmetros, clique em Editar.

  5. Defina o parâmetro a seguir para seu grupo.

    ParâmetroValor
    logical_replication1
  6. Clique em Salvar alterações.

Configurar o banco de dados de origem

  1. Inicie seu painel do Amazon RDS.

  2. Na Gaveta de navegação, clique em Bancos de dados.

  3. Selecione a origem e clique em Modificar.

  4. Acesse a seção Configuração adicional.

  5. Selecione o grupo de parâmetros que você criou.

  6. Clique em Continuar.

  7. Em Programação de modificações, selecione Aplicar imediatamente.

Verifique se o grupo de parâmetros está atribuído à instância do banco de dados

  1. Inicie seu painel do Amazon RDS.

  2. Na Gaveta de navegação, clique em Bancos de dados e selecione a instância do banco de dados.

  3. Clique na guia Configurações.

  4. Verifique se você vê o grupo de parâmetros criado e se o status dele é pending-reboot.

  5. Reinicie a instância do banco de dados para concluir a configuração. Para reiniciar a instância:

    1. Na Gaveta de navegação, clique em Instâncias.
    2. Selecione sua instância do banco de dados.
    3. No menu Ações da instância, selecione Reiniciar.

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

  1. 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;
    
  2. Crie um slot de replicação digitando o seguinte comando do PostgreSQL:

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

    Substitua:

    • REPLICATION_SLOT_NAME: o nome do slot de replicação. É necessário 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 o seguinte comando do PostgreSQL:

    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:

    GRANT RDS_REPLICATION TO USER_NAME;
    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER;
    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.