Migrationsablauf

Bei homogenen PostgreSQL-Migrationen zu AlloyDB for PostgreSQL stellt Database Migration Service eine Verbindung zur primären Instanz des Ziel-AlloyDB for PostgreSQL-Clusters her und verwaltet den kontinuierlichen Migrationsprozess in dessen Namen. Die primäre Zielinstanz stellt die Verbindung zu Ihrer Quelldatenbank her, während Database Migration Service die End-to-End-Datenpipeline orchestriert und überwacht.

Für standardmäßige homogene PostgreSQL-Migrationen zu AlloyDB for PostgreSQL unterstützt der Database Migration Service kontinuierliche Migrationen. Bei einer kontinuierlichen Migration werden die ersten Daten aus einem Snapshot-Dump geladen. Anschließend werden laufende Datenänderungen kontinuierlich aus dem Write-Ahead-Log (WAL) der Quelldatenbank mithilfe der logischen Decodierung und der Erweiterung pglogical repliziert. Für kontinuierliche Schnellstartmigrationen verwendet Database Migration Service pgnative.

Phasen der kontinuierlichen Migration

Kontinuierliche Migrationen durchlaufen die folgenden sequenziellen Phasen:

Standardmigrationen

  1. Replikationseinrichtung und -orchestrierung: Wenn Sie den Migrationsjob erstellen, konfiguriert Database Migration Service die primäre Instanz des AlloyDB for PostgreSQL-Zielclusters so, dass sie als Replikat fungiert, und richtet Replikationsabos mit der Erweiterung pglogical ein. Bei der Migration zu einem vorhandenen AlloyDB for PostgreSQL-Cluster konfiguriert der Database Migration Service die externe Replikation, ohne die Datenbank in den Lesemodus zu versetzen.
  2. Phase des ersten Snapshots: Wenn Sie den Migrationsjob starten, erstellt Database Migration Service einen konsistenten Snapshot der ausgewählten Datenbanken auf der Quellinstanz. Bei diesem Vorgang wird die Tabelle kurz gesperrt (in der Regel weniger als 10 Sekunden pro Tabelle), während der Snapshot initialisiert wird. Die Quelldatenbank akzeptiert während des gesamten Prozesses weiterhin Lese- und Schreibvorgänge.
  3. Datenladephase: Database Migration Service streamt die ersten Snapshot-Daten aus der Quelldatenbank und lädt sie in die primäre Instanz des AlloyDB for PostgreSQL-Zielclusters.
  4. Einschränkungs- und Indexerstellung: Nach dem ersten Laden der Daten werden Tabelleneinschränkungen (einschließlich Primär- und Fremdschlüssel) und sekundäre Indexe auf der Zielinstanz erstellt. Wenn Sie das Laden von Daten von der Erstellung von Einschränkungen trennen, wird die Geschwindigkeit der Datenaufnahme optimiert.
  5. CDC-Phase (Change Data Capture): Sobald die Einschränkungen angewendet wurden, wechselt Database Migration Service in die kontinuierliche CDC-Phase. Während des CDC erfasst der Database Migration Service laufende DML-Änderungen aus dem logischen Replikationsstream der Quelldatenbank mithilfe von pglogical und wendet sie nahezu in Echtzeit auf den Zielcluster an.
  6. Umstellungs- und Hochstufungsphase: Wenn Sie bereit sind, den Anwendungstraffic auf den Zielcluster umzustellen, beenden Sie die Schreibvorgänge in der Quelldatenbank, prüfen Sie, ob die Replikationsverzögerung null erreicht, und initiieren Sie die Hochstufung in Database Migration Service. Während der Hochstufung trennt Database Migration Service den Zielcluster von der Quelle, entfernt Replikationsslots und wandelt das Ziel in eine eigenständige AlloyDB for PostgreSQL-Primärinstanz mit Lese-/Schreibzugriff um.

Schnellstart-Migrationen

  1. Replikationseinrichtung und -orchestrierung: Wenn Sie den Migrationsjob erstellen, richtet Database Migration Service automatisch die Netzwerkverbindung über private IP-Adressen mithilfe von Private Service Connect-Schnittstellen ein. Dabei werden automatisch Konfigurationen für private Konnektivität, Netzwerkanhänge und Subnetze erstellt. Es wird eine Replikation zwischen der Quell- und der Zieldatenbank mithilfe der logischen PostgreSQL-Replikation (mit pgnative) eingerichtet, ohne dass die Erweiterung pglogical auf der Quelle installiert werden muss. Das Ziel kann ein aktiver AlloyDB for PostgreSQL-Cluster sein, der Traffic an andere Datenbanken weiterleitet.
  2. Phase des ersten Snapshots: Wenn Sie den Migrationsjob starten, erstellt Database Migration Service einen konsistenten Snapshot der ausgewählten Datenbanken (Migration von bis zu 50 Datenbanken pro Job) auf dem Quelldatenbankserver. Die Quelldatenbank akzeptiert während des gesamten Prozesses weiterhin Lese- und Schreibvorgänge.
  3. Datenladephase: Database Migration Service streamt die anfänglichen Snapshot-Daten über eine private Verbindung direkt in den AlloyDB for PostgreSQL-Zielcluster. Zieldatenbankobjekten wird die Inhaberschaft des Zieldatenbanknutzers zugewiesen, der für den Migrationsjob konfiguriert wurde (z. B. der Standardnutzer postgres).
  4. Einschränkungs- und Indexerstellung: Nach dem ersten Laden der Daten werden Tabelleneinschränkungen und sekundäre Indexe im Zielcluster erstellt, um die Schematreue zu gewährleisten und gleichzeitig die Aufnahmeleistung zu maximieren.
  5. CDC-Phase (Change Data Capture): Sobald die Einschränkungen angewendet wurden, wechselt Database Migration Service in die kontinuierliche CDC-Phase. Während des CDC streamt Database Migration Service laufende DML-Änderungen aus dem logischen Replikationsstream von pgnative PostgreSQL und wendet sie nahezu in Echtzeit auf den Zielcluster an. Bei Tabellen ohne Primärschlüssel können UPDATE- und DELETE-Vorgänge repliziert werden, wenn die Replikatidentität der Tabelle auf INDEX oder FULL konfiguriert ist.
  6. Umstellungs- und Hochstufungsphase: Wenn Sie bereit sind, den Anwendungstraffic auf den Zielcluster umzustellen, beenden Sie die Schreibvorgänge in der Quelldatenbank, prüfen Sie, ob die Replikationsverzögerung null erreicht, und initiieren Sie die Hochstufung in Database Migration Service. Während der Hochstufung schließt Database Migration Service die CDC-Replikation ab, beendet die Replikationsslots und trennt die Migrationspipeline, sodass Ihre AlloyDB for PostgreSQL-Zieldatenbanken für Clientverbindungen vollständig betriebsbereit sind.

Nächste Schritte