Bei homogenen PostgreSQL-Migrationen zu Cloud SQL stellt Database Migration Service eine Verbindung zur Zielinstanz von Cloud SQL for PostgreSQL her und verwaltet den kontinuierlichen Migrationsprozess in ihrem Namen. Die Zielinstanz stellt die Verbindung zu Ihrer Quelldatenbank her, während Database Migration Service die End-to-End-Datenpipeline orchestriert und überwacht.
Für homogene PostgreSQL-Standardmigrationen zu Cloud SQL unterstützt 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
-
Replikationseinrichtung und -orchestrierung: Wenn Sie den Migrationsjob erstellen, konfiguriert Database Migration Service die Cloud SQL for PostgreSQL-Zielinstanz als Replikat und richtet Replikationsabos mit der Erweiterung
pglogicalein. Bei der Migration zu einer vorhandenen Cloud SQL-Instanz stuft Database Migration Service die Instanz herab, um sie als externes Replikat zu konfigurieren (ohne die Datenbank in den Lesemodus zu versetzen). - 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 (normalerweise 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.
- Datenladephase: Database Migration Service streamt die ersten Snapshot-Daten aus der Quelldatenbank und lädt sie in die Cloud SQL for PostgreSQL-Zielinstanz.
- 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.
-
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
pglogicalund wendet sie nahezu in Echtzeit auf die Zielinstanz an. - Umstellungs- und Hochstufungsphase: Wenn Sie bereit sind, den Anwendungstraffic auf die Zielinstanz 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 die Zielinstanz von der Quelle, entfernt Replikationsslots und wandelt das Ziel in eine eigenständige primäre Cloud SQL for PostgreSQL-Instanz mit Lese- und Schreibzugriff um.
Schnellstart-Migrationen
-
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 Erweiterungpglogicalauf der Quelle installiert oder die Zielinstanz herabgestuft werden muss. Das Ziel kann eine aktive Instanz sein, die Traffic für andere Datenbanken bereitstellt. - 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.
- Datenladephase: Database Migration Service streamt die anfänglichen Snapshot-Daten über eine private Verbindung direkt in die Cloud SQL for PostgreSQL-Zielinstanz. Zieldatenbankobjekten wird der Migrationsnutzer zugewiesen, der von Database Migration Service generiert wurde (bei Verwendung der Google Cloud Console) oder mit der Google Cloud CLI angegeben wurde.
- Einschränkungs- und Indexerstellung: Nach dem ersten Laden der Daten werden Tabelleneinschränkungen und sekundäre Indexe auf der Zielinstanz erstellt, um die Schematreue zu gewährleisten und gleichzeitig die Aufnahmekapazität zu maximieren.
-
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
pgnativePostgreSQL und wendet sie nahezu in Echtzeit auf die Zielinstanz an. Bei Tabellen ohne Primärschlüssel könnenUPDATE- undDELETE-Vorgänge repliziert werden, wenn die Replikatidentität der Tabelle aufINDEXoderFULLkonfiguriert ist. - Umstellungs- und Hochstufungsphase: Wenn Sie bereit sind, den Anwendungstraffic auf die Zielinstanz 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 Cloud SQL for PostgreSQL-Zieldatenbanken für Clientverbindungen vollständig betriebsbereit sind.
Nächste Schritte
Weitere Informationen zur Unterstützung von PostgreSQL-Daten und -Funktionen in Database Migration Service finden Sie unter Bekannte Einschränkungen.
Eine vollständige Schritt-für-Schritt-Anleitung zur Migration finden Sie unter Erste Schritte mit Cloud SQL for PostgreSQL-Migrationen.