Übersicht
Diese Seite enthält Scripts, die beim Debuggen und Verwenden von AlloyDB helfen.
UPDATE- und DELETE-Vorgänge für Tabellen ohne Primärschlüssel migrieren
Bei Tabellen ohne Primärschlüssel unterstützt Database Migration Service die Migration des ersten Snapshots und der INSERT
-Anweisungen während der CDC-Phase (Change Data Capture).
Informationen zum Aktualisieren der fehlenden UPDATE
- und DELETE
-Prozesse finden Sie in den folgenden Abschnitten dieses Dokuments.
Fehlende Daten zwischen der Quelle und dem AlloyDB-Zielcluster erkennen
- Ermitteln Sie, welche Tabellen keine Primärschlüssel haben:
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;
- Prüfen Sie vor Beginn der Migration mit dieser Abfrage, ob für alle Tabellen ohne Primärschlüssel Aktualisierungen oder Löschvorgänge vorliegen:
Wobei: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
: Anzahl der eingefügten Zeilenn_tup_upd
: Anzahl der aktualisierten Zeilen (einschließlich HOT-aktualisierter Zeilen)n_tup_del
: Anzahl der gelöschten Zeilen
- Speichern Sie diese Ergebnisse entweder in einer separaten Tabelle oder in einer Datei.
- Führen Sie die Abfrage nach Abschluss der Migrationseinrichtung noch einmal aus.
- Vergleichen Sie die Ergebnisse mit den Ergebnissen aus Schritt 3.
Wenn es während der Migration Unterschiede bei den Werten von n_tup_upd
oder n_tup_del
in der Quelle gibt, wurden möglicherweise einige Daten in der Quelle aktualisiert oder gelöscht.
Daten manuell von der Quelle zu den AlloyDB-Zielinstanzen migrieren
Wenn Sie Abweichungen zwischen der Quelle und der AlloyDB-Zielinstanz feststellen, können Sie die Daten mit einer der folgenden Optionen migrieren:
Option 1: Vergleichen Sie die Daten zwischen der Quelle und dem AlloyDB-Ziel manuell und führen Sie entsprechende SQL-Abfragen aus, um nur die Daten zu aktualisieren, die sich zwischen der Quelle und dem Replikat unterscheiden.
Option 2: Führen Sie
pg_dump
undpg_restore
für die Tabellen ohne Primärschlüssel aus. Weitere Informationen finden Sie unter Daten mit pg_dump von einem lokalen PostgreSQL-Server exportieren.Option 3: Mit dem Postgres-Befehl
COPY
Daten migrieren Weitere Informationen finden Sie in der PostgreSQL-Dokumentation. Für diesen Schritt muss die Replik-VM eine Verbindung zur Quell-VM herstellen können.