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öschungen erforderlich sind:
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');
Wobei:
n_tup_ins: Anzahl der eingefügten Zeilen
n_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 sich die Werte von n_tup_upd oder n_tup_del in der Quelle während der Migration unterscheiden, wurden in der Quelle möglicherweise einige Daten 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: Sie vergleichen die Daten zwischen der Quelle und dem AlloyDB-Ziel manuell und führen entsprechende SQL-Abfragen aus, um nur die Daten zu aktualisieren, die sich zwischen der Quelle und dem Replikat unterscheiden.
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.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-18 (UTC)."],[[["\u003cp\u003eThis page provides debugging scripts and guidance for using AlloyDB, particularly focusing on data migration from PostgreSQL.\u003c/p\u003e\n"],["\u003cp\u003eDatabase Migration Service supports the initial snapshot and \u003ccode\u003eINSERT\u003c/code\u003e statements for tables without primary keys during migration, but manual steps are needed for \u003ccode\u003eUPDATE\u003c/code\u003e and \u003ccode\u003eDELETE\u003c/code\u003e operations.\u003c/p\u003e\n"],["\u003cp\u003eYou can detect potential data discrepancies between the source and destination by identifying tables without primary keys and tracking \u003ccode\u003eINSERT\u003c/code\u003e, \u003ccode\u003eUPDATE\u003c/code\u003e, and \u003ccode\u003eDELETE\u003c/code\u003e activity using queries against \u003ccode\u003einformation_schema\u003c/code\u003e and \u003ccode\u003epg_stat_user_tables\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eIf discrepancies are detected, manual migration options include comparing data and running SQL queries, utilizing \u003ccode\u003epg_dump\u003c/code\u003e and \u003ccode\u003epg_restore\u003c/code\u003e, or employing the Postgres \u003ccode\u003eCOPY\u003c/code\u003e command, which might require pre-migration data cleanup on the replica.\u003c/p\u003e\n"]]],[],null,[]]