Debug e altri strumenti

Questa pagina include script che aiutano a eseguire il debug e a utilizzare PostgreSQL.

Esegui la migrazione delle operazioni UPDATE e DELETE per le tabelle senza chiave primaria

Per le tabelle senza chiavi primarie, nelle migrazioni standard Database Migration Service supporta la migrazione degli snapshot iniziali e delle istruzioni INSERT durante la fase Change Data Capture (CDC). Tuttavia, le istruzioni UPDATE e DELETE non vengono replicate automaticamente per le tabelle senza chiave primaria nelle migrazioni standard (le migrazioni con avvio rapido supportano la replica delle operazioni UPDATE e DELETE quando configuri REPLICA IDENTITY).

Per rilevare e sincronizzare manualmente le operazioni UPDATE e DELETE mancanti nelle migrazioni standard, completa le procedure descritte nelle sezioni seguenti.

Rileva i dati mancanti tra l'origine e il cluster di destinazione AlloyDB per PostgreSQL

  1. Identifica le tabelle nel database di origine 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;
  2. Prima di avviare il job di migrazione, registra le statistiche di modifica di tutte le tabelle senza chiavi primarie:
    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');
    Dove:
    • n_tup_ins: il numero di righe inserite
    • n_tup_upd: numero di righe aggiornate (incluse le righe aggiornate HOT)
    • n_tup_del: numero di righe eliminate
  3. Salva queste statistiche di riferimento in una tabella o un file.
  4. Al termine della configurazione della migrazione e prima di promuovere il job di migrazione, esegui nuovamente la query.
  5. Confronta le statistiche iniziali con quelle più recenti. Se n_tup_upd o n_tup_del sono cambiati durante la migrazione, nell'origine si sono verificati aggiornamenti o eliminazioni che non sono stati acquisiti da CDC.

Esegui manualmente la migrazione dei dati dal cluster AlloyDB per PostgreSQL di origine a quello di destinazione

Se rilevi discrepanze nelle tabelle senza chiavi primarie, puoi sincronizzare i dati utilizzando una delle seguenti opzioni:

  • Opzione 1: confronta manualmente i dati tra il database di origine e il cluster AlloyDB per PostgreSQL di destinazione utilizzando query di checksum o script delta ed esegui gli aggiornamenti SQL appropriati per i record divergenti.
  • Opzione 2: esegui pg_dump e pg_restore in modo specifico per le tabelle senza chiavi primarie durante il cutover della manutenzione dell'applicazione.
  • Opzione 3: utilizza il comando COPY di PostgreSQL per esportare e importare i dati della tabella. Per ulteriori informazioni, consulta la documentazione di PostgreSQL.