Esta página inclui scripts que ajudam a depurar e usar o PostgreSQL.
Migrar operações UPDATE e DELETE para tabelas sem chave primária
Para tabelas sem chaves primárias, o Database Migration Service oferece suporte à migração de snapshots iniciais e instruções INSERT durante a fase de captura de dados alterados (CDC).
Para atualizar os processos UPDATE e DELETE ausentes, consulte as seções posteriores deste documento.
Detectar dados ausentes entre as instâncias de origem e de destino do Cloud SQL
- Identifique quais tabelas não têm chaves primárias:
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 há atualizações ou exclusões usando esta consulta:
Em que: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 por HOT)n_tup_del: número de linhas excluídas
- Salve esses resultados em uma tabela separada ou em um arquivo.
- Depois que a configuração da migração for concluída, execute a consulta novamente.
- Compare os resultados com os da etapa 3.
Se houver diferenças nos valores de n_tup_upd ou n_tup_del na origem durante a migração, talvez haja algumas atualizações ou exclusões na origem.
Migrar dados manualmente da origem para as instâncias de destino do Cloud SQL
Se você detectar discrepâncias entre a origem e a instância de destino do Cloud SQL, migre os dados usando uma das opções:
Opção 1: comparar manualmente os dados entre a origem e o destino do Cloud SQL e executar as consultas SQL apropriadas para atualizar apenas os dados que são diferentes entre a origem e a réplica.
Opção 2: execute
pg_dumpepg_restorepara as tabelas sem chaves primárias. Consulte Exportar dados de um servidor PostgreSQL local usando pg_dump para mais informações.Opção 3: use o comando
COPYdo PostgreSQL para migrar seus dados. Consulte a documentação do PostgreSQL para mais informações. Essa etapa exige que a VM de réplica possa se conectar à VM de origem.