Vista geral
Esta página inclui scripts que ajudam na depuração e na utilização do PostgreSQL.
Migre operações UPDATE e DELETE para tabelas de chaves não principais
Para tabelas que não têm chaves principais, o Database Migration Service suporta a migração da imagem instantânea inicial e das declarações INSERT
durante a fase de captura de dados de alterações (CDC).
Para atualizar os processos UPDATE
e DELETE
em falta, consulte as secções posteriores deste documento.
Detetar dados em falta entre as instâncias de origem e de destino do Cloud SQL
- Identifique as tabelas que não têm chaves principais:
select tab.table_schema, tab.table_name from information_schema.tables tab left join information_schema.table_constraints tco on tab.table_schema = tco.table_schema and tab.table_name = tco.table_name and tco.constraint_type = 'PRIMARY KEY' where tab.table_type = 'BASE TABLE' and tab.table_schema not in ('pg_catalog', 'information_schema', 'pglogical') and tco.constraint_name is null order by table_schema, table_name;
- Antes de iniciar a migração, para todas as tabelas sem chaves primárias, verifique se existem atualizações ou eliminações através desta consulta:
Onde:SELECT schemaname, relname, n_tup_ins, n_tup_upd, n_tup_del FROM pg_stat_user_tables WHERE schemaname NOT IN ('pglogical', 'pg_catalog', 'information_schema');
n_tup_ins
: número de linhas inseridasn_tup_upd
: número de linhas atualizadas (inclui linhas atualizadas HOT)n_tup_del
: número de linhas eliminadas
- Guarde estes resultados numa tabela separada ou num ficheiro.
- Após a conclusão da configuração da migração, execute novamente a consulta.
- Compare os resultados com os resultados do passo 3.
Se existirem diferenças nos valores de n_tup_upd
ou n_tup_del
na origem durante a migração, podem ocorrer algumas atualizações ou eliminações na origem.
Migre manualmente os dados da origem para as instâncias de destino do Cloud SQL
Se detetar algumas discrepâncias entre a origem e a instância de destino do Cloud SQL, pode migrar os dados através de uma das seguintes opções:
Opção 1: compare manualmente os dados entre a origem e o destino do Cloud SQL e execute as consultas SQL adequadas para atualizar apenas os dados que são diferentes entre a origem e a réplica.
Opção 2: execute
pg_dump
epg_restore
para as tabelas sem chaves primárias. Consulte o artigo Exporte dados de um servidor PostgreSQL no local através do pg_dump para mais informações.Opção 3: use o comando
COPY
do Postgres para migrar os seus dados. Consulte a documentação do PostgreSQL para mais informações. Tenha em atenção que este passo requer que a VM de réplica consiga estabelecer ligação à VM de origem.