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 uma vez e depois param.
Os trabalhos de migração contínua executam uma migração de snapshot e, em seguida, entram em um estágio do CDC, que replica 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.