O pgsql2pgsql é uma ferramenta integrada ao pacote de código aberto rds_dbsync. Use-a para migrar ou sincronizar dados entre instâncias do PostgreSQL, PPAS, Greenplum Database e AnalyticDB for PostgreSQL.
Operações compatíveis
O pgsql2pgsql oferece suporte a dois modos:
|
Modo |
Descrição |
Versões de source compatíveis |
|
Migração completa de dados |
Migra todos os dados das tabelas entre qualquer combinação de PostgreSQL, PPAS, Greenplum Database e AnalyticDB for PostgreSQL |
Qualquer versão |
|
Migração completa e incremental de dados |
Migra dados continuamente, incluindo alterações capturadas após o carregamento inicial |
PostgreSQL ou PPAS 9.4 ou posterior (o destino também deve ser PostgreSQL ou PPAS) |
Pré-requisitos
Para migração completa de dados
Antes de configure o pgsql2pgsql, verifique se você tem:
Credenciais de proprietário do banco de dados PostgreSQL de source
Permissão de gravação na tabela de destino no banco de dados de destino
Para migração completa e incremental de dados
Além dos pré-requisitos da migração completa, verifique se você tem:
Permissão para crie slots de replicação no banco de dados de source
Replicação lógica ativada na instância PostgreSQL de source (versão 9.4 ou posterior)
Para ative a replicação lógica, defina os seguintes parâmetros no arquivo postgresql.conf da instância de source:
wal_level = logical
max_wal_senders = 6
max_replication_slots = 6
Configure conexões
O pgsql2pgsql lê os detalhes de conexão do arquivo postgresql.conf. Configure as três seções de conexão conforme descrito abaixo:
Banco de dados de source:
[src.pgsql]
connect_string = "host=192.168.1.1 dbname=test port=3432 user=test password=pgsql"
Defina o parâmetro user como o proprietário do banco de dados PostgreSQL de source.
Banco de dados temporário local:
[local.pgsql]
connect_string = "host=192.168.1.2 dbname=test port=3432 user=test2 password=pgsql"
Banco de dados de destino:
[desc.pgsql]
connect_string = "host=192.168.1.3 dbname=test port=3432 user=test3 password=pgsql"
O usuário da conexão de destino deve ter permissão de gravação na tabela de destino.
Execute uma migração completa
Após configure o arquivo postgresql.conf, execute o comando abaixo para iniciar a migração completa:
./pgsql2pgsql
Esse comando migra todos os dados das tabelas de usuário do banco de dados de source para o banco de dados de destino.
Monitorar o status da migração
Conecte-se ao banco de dados temporário local e consulte a tabela db_sync_status para verificar o progresso da migração:
SELECT * FROM db_sync_status;
Essa tabela armazena as seguintes informações:
Horários de início e término da migração completa de dados
Horário de início da migração incremental de dados
Status da sincronização incremental de dados