Configurar pré-requisitos de migração para PostgreSQL
Nesta página
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.
Antes de começar
Se o PostgreSQL estiver configurado como um cluster, o Relational Migrator deverá se conectar ao servidor mestre.
Passos
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>;
Habilitar replicação lógica
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');
Criar uma função de replicação SQL
Crie um papel com permissões de banco de dados de dados
REPLICATION
eLOGIN
:CREATE ROLE <role> REPLICATION LOGIN; Conceda às permissões de tabela
SELECT
e esquemaUSAGE
para a role. Cada tabela na migração requer uma declaraçãoGRANT SELECT
:GRANT USAGE ON SCHEMA <schema> TO <role>; GRANT SELECT ON <schema>.<table> TO <role>; -- ADDITIONAL GRANT SELECT STATEMENTS... 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>;
Criar uma publicação
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>";
Saiba mais
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.