Configurar um banco de dados do Amazon Aurora PostgreSQL

As seções a seguir mostram como configurar um banco de dados do Amazon Aurora 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. Use a tabela a seguir para preencher os campos desta página e clique em Criar:
    CampoDescrição
    Família de grupos de parâmetrosSelecione a família correspondente ao seu banco de dados.
    TipoSelecione o grupo de parâmetros do cluster do banco de dados.
    Nome do grupoDê um nome ao grupo de parâmetros.
    DescriçãoForneça uma descrição do grupo de parâmetros.
  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. Mude o valor do parâmetro rds.logical_replication para 1.
  6. Clique em Salvar alterações.

Atribuir o grupo de parâmetros à 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. No menu Ações da instância, selecione Modificar. A caixa de diálogo Modificar instância de BD é exibida.
  4. Na seção Configuração adicional, selecione o grupo de parâmetros do cluster do banco de dados que você criou.
  5. Defina o Período de retenção do backup como 7 dias.
  6. Clique em Continuar.
  7. No painel Programação de modificações, selecione a opção Aplicar imediatamente.

Reinicializar a 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. No menu suspenso Ações, selecione Reiniciar e depois Confirmar.

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

  1. Crie uma publicação para as alterações nas tabelas que você quer replicar. Recomendamos criar uma publicação somente para as tabelas que você 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 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_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
      GRANT SELECT ON TABLES TO USER_NAME;
    

    Substitua:

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