Esta página descreve como configurar a captura de dados de alterações (CDC) para transmitir dados de uma base de dados do Cloud SQL para PostgreSQL para um destino suportado, como o BigQuery ou o Cloud Storage.
Ative a replicação lógica
Navegue para o Cloud SQL na Google Cloud consola.
Abra a instância do Cloud SQL e clique em EDITAR.
Aceda à secção Flags.
Clique em ADICIONAR MARCAÇÃO.
Escolha a opção
cloudsql.logical_decoding
no menu pendente.Defina o valor do sinalizador como on.
Clique em GUARDAR para guardar as alterações. Tem de reiniciar a instância para a atualizar com as alterações.
Depois de reiniciar a instância, confirme as alterações em Flags da base de dados na página Vista geral.
Crie uma publicação e um espaço de replicação
Estabeleça ligação à base de dados como um utilizador com privilégios suficientes para criar um espaço de replicação; caso contrário, execute o seguinte comando:
ALTER USER USER_NAME WITH REPLICATION;
Substitua o seguinte:
- USER_NAME: o nome do utilizador ao qual quer conceder privilégios de replicação.
Crie uma publicação. Recomendamos que crie uma publicação apenas para as tabelas que quer replicar. Isto permite que o Datastream leia apenas os dados relevantes e reduz a carga na base de dados e no Datastream:
CREATE PUBLICATION PUBLICATION_NAME FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;
Substitua o seguinte:
- PUBLICATION_NAME: o nome da sua publicação. Tem de indicar este nome quando criar uma stream no assistente de criação de streams de streams de dados.
- SCHEMA: o nome do esquema que contém a tabela.
- TABLE: o nome da tabela que quer replicar.
Também pode criar uma publicação para todas as tabelas na sua base de dados. Tenha em atenção que esta abordagem aumenta a carga na base de dados de origem e no Datastream:
CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
Crie um espaço de replicação introduzindo o seguinte comando SQL:
SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');
Substitua o seguinte:
- REPLICATION_SLOT_NAME: o nome da sua ranhura de replicação. Tem de indicar este nome quando criar uma stream no assistente de criação de streams de dados.
Crie um utilizador da stream de dados
Faça a ligação à base de dados através de um cliente PostgreSQL.
Introduza o seguinte comando do PostgreSQL:
CREATE USER USER_NAME WITH REPLICATION LOGIN PASSWORD 'USER_PASSWORD';
Substitua o seguinte:
- USER_NAME: o nome do utilizador do fluxo de dados que quer criar.
- USER_PASSWORD: a palavra-passe de início de sessão do utilizador do fluxo de dados que quer criar.
Conceda os seguintes privilégios ao utilizador que 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 o seguinte:
- SCHEMA_NAME: o nome do esquema ao qual quer conceder os privilégios.
- USER_NAME: o utilizador ao qual quer conceder os privilégios.
O que se segue?
- Saiba mais sobre como o Datastream funciona com origens PostgreSQL.