Übersicht
Auf dieser Seite finden Sie Skripts, 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 Prozesse UPDATE und DELETE finden Sie in den späteren Abschnitten dieses Dokuments.
Fehlende Daten zwischen dem Quell- und dem AlloyDB-Zielcluster erkennen
- Ermitteln Sie, welche Tabellen keinen 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 dem Starten der Migration für alle Tabellen ohne Primärschlüssel, ob es Aktualisierungen oder Löschvorgänge gibt, indem Sie diese Abfrage verwenden:
Dabei gilt: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 noch einmal aus, nachdem die Migration eingerichtet wurde.
- 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, kann es sein, dass die Quelle aktualisiert oder gelöscht wurde.
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_dumpundpg_restorefür die Tabellen ohne Primärschlüssel aus. Weitere InformationenOption 3: Verwenden Sie den Postgres-Befehl
COPY, um Ihre Daten zu migrieren. Weitere Informationen finden Sie in der PostgreSQL-Dokumentation. Für diesen Schritt muss die Replikat-VM eine Verbindung zur Quell-VM herstellen können.