Configurar um banco de dados do Cloud SQL para PostgreSQL

As seções a seguir mostram como configurar um banco de dados do Cloud SQL para PostgreSQL.

Ativar replicação lógica

  1. Navegue até o Cloud SQL no console do Google Cloud.

  2. Abra a instância do Cloud SQL e clique em EDITAR.

  3. Acesse a seção Flags.

  4. Clique em ADICIONAR FLAG.

  5. Escolha a flag cloudsql.logical_decoding no menu suspenso.

  6. Defina o valor da flag como on.

  7. Clique em SALVAR. É necessário reiniciar sua instância para atualizá-la com as alterações.

  8. Depois que sua instância for reiniciada, confirme as alterações em Flags do banco de dados, na página Visão geral.

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

  1. Conecte-se ao banco de dados como um usuário com privilégios suficientes para criar um slot de replicação. Caso contrário, execute o seguinte comando:

    ALTER USER USER_NAME WITH REPLICATION;
    

    Substitua:

    • USER_NAME: o nome do usuário a quem você quer conceder privilégios de replicação.
  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 fluxo no assistente de criação de fluxos do Datastream.

Criar um usuário do Datastream

  1. Conecte-se ao banco de dados usando um cliente PostgreSQL.

  2. Digite o seguinte comando do PostgreSQL:

    CREATE USER USER_NAME WITH REPLICATION LOGIN 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.
  3. Conceda os seguintes privilégios ao usuário que você criou:

    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.