Panoramica
Questa pagina include script che aiutano a eseguire il debug e a utilizzare PostgreSQL.
Eseguire la migrazione delle operazioni UPDATE e DELETE per le tabelle non con chiave primaria
Per le tabelle senza chiavi primarie, Database Migration Service supporta la migrazione dello snapshot iniziale e delle istruzioni INSERT durante la fase Change Data Capture (CDC).
Per aggiornare i processi UPDATE e DELETE mancanti, consulta le sezioni successive di questo documento.
Rilevare i dati mancanti tra le istanze di origine e di destinazione Cloud SQL
- Identifica le tabelle che non hanno chiavi primarie:
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; - Prima di iniziare la migrazione, per tutte le tabelle senza chiavi primarie, verifica se sono presenti aggiornamenti o eliminazioni utilizzando questa query:
Dove: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: numero di righe inseriten_tup_upd: numero di righe aggiornate (incluse le righe HOT aggiornate)n_tup_del: numero di righe eliminate
- Salva questi risultati in una tabella separata o in un file.
- Al termine della configurazione della migrazione, esegui di nuovo la query.
- Confronta i risultati con quelli del passaggio 3.
Se durante la migrazione si verificano differenze nei valori di n_tup_upd o n_tup_del nell'origine, potrebbero verificarsi alcuni aggiornamenti o eliminazioni nell'origine.
Esegui manualmente la migrazione dei dati dall'origine alle istanze Cloud SQL di destinazione
Se rilevi alcune discrepanze tra l'origine e l'istanza di destinazione Cloud SQL, puoi eseguire la migrazione dei dati utilizzando una delle seguenti opzioni:
Opzione 1: confronta manualmente i dati tra l'origine e la destinazione Cloud SQL ed esegui le query SQL appropriate per aggiornare solo i dati diversi tra l'origine e la replica.
Opzione 2: esegui
pg_dumpepg_restoreper le tabelle senza chiavi primarie. Per saperne di più, vedi Esportare i dati da un server PostgreSQL on-premise utilizzando pg_dump.Opzione 3: utilizza il comando Postgres
COPYper eseguire la migrazione dei dati. Per saperne di più, consulta la documentazione di PostgreSQL. Tieni presente che questo passaggio richiede che la VM di replica sia in grado di connettersi alla VM di origine.