Menu Docs
Página inicial do Docs
/
Relational Migrator
/ /

Configurar pré-requisitos de migração para PostgreSQL

Nesta página

  • Antes de começar
  • Passos
  • Saiba mais

Para executar trabalhos de migração de um banco de banco de dados de origem PostgreSQL, o banco de dados de dados pode exigir algumas alterações de configuração. Se o Relational Migrator determinar que o banco de dados de dados precisa de alterações de configuração, ele gerará automaticamente um script SQL com as alterações necessárias. É recomendável que um administrador do banco de dados (DBA) revise os comandos neste script e execute sua execução no servidor do banco de dados de dados. Estas instruções configuram o PostgreSQL para ambos os tipos de tarefas de migração:

  • As tarefas de migração de snapshots migram todos os dados e depois param.

  • O tarefa de migração contínua executa um snapshot e, em seguida, entra em um estágio de CDC para replicar continuamente as alterações de dados.

Se o PostgreSQL estiver configurado como um cluster, o Relational Migrator deverá se conectar ao servidor mestre.

Para tarefas de snapshot no PostgreSQL, a conta de serviço requer permissões de esquema USAGE e tabela SELECT .

GRANT USAGE ON SCHEMA <schema_name> TO <database_user_name>;
GRANT SELECT ON TABLE <schema_name>.<table_name> TO <database_user_name>;
1

A replicação lógica pode não estar habilitada por padrão. Para habilitar a replicação lógica, altere o wal_level configuração no arquivo de configuração postgresql.conf. Você deve reiniciar a instância do banco de dados de dados depois de alterar o arquivo de configuração.

wal_level = logical

Se você estiver utilizando o PostgreSQL hospedado no Amazon Web Services RDS, você deverá configurar o parâmetro rds.logical_replication para 1. Para obter detalhes, consulte Habilitar replicação lógica no Amazon Web Services. Você deve reiniciar a instância do banco de dados de dados após definir o parâmetro.

Dica

Você pode usar a seguinte query para verificar se sua instância do Amazon Web Services RDS tem replicação lógica habilitada:

SELECT name,setting
FROM pg_settings
WHERE name IN ('wal_level','rds.logical_replication');
2
  1. Crie um papel com permissões de banco de dados de dados REPLICATION e LOGIN :

    CREATE ROLE <role> REPLICATION LOGIN;
  2. Conceda às permissões de tabela SELECT e esquema USAGE para a role. Cada tabela na migração requer uma declaração GRANT SELECT :

    GRANT USAGE ON SCHEMA <schema> TO <role>;
    GRANT SELECT ON <schema>.<table> TO <role>;
    -- ADDITIONAL GRANT SELECT STATEMENTS...
  3. Conceder o role à conta de serviço

    Substitua <original_owner> pelo proprietário das tabelas participantes.

    GRANT <role> TO <original_owner>;
    GRANT <role> TO <database_user_name>;
3

Cada tabela na migração requer uma declaração ALTER TABLE :

ALTER TABLE <schema>.<table> OWNER TO <role>;
-- ADDITIONAL ALTER TABLE STATEMENTS...
4

Criar uma publicação cada tabela na migração deve ser especificada na FOR declaração separada por vírgulas:

CREATE PUBLICATION "MIGRATOR_<name>_PUBLICATION"
FOR TABLE "<schema>"."<table1>","<schema>"."<table2>";
5

Cada tabela na migração requer uma declaração ALTER TABLE :

ALTER TABLE <schema>.<table> REPLICA IDENTITY FULL;
-- ADDITIONAL ALTER TABLE STATEMENTS...

O Relational Migrator depende do conector Debezium de código aberto para capturar alterações no nível da linha. Para obter mais detalhes, consulte Debezium PostgreSQL.

Voltar

Oráculo