- Was ist Database Migration Service?
- Welche Quellen werden unterstützt?
- Welche Ziele werden unterstützt?
- Gibt es versionsübergreifenden Support?
- Welche Daten-, Schema- und Metadatenkomponenten werden migriert?
- Welche Änderungen werden während der kontinuierlichen Migration repliziert?
- Was wird nicht migriert?
- Welche Netzwerkmethoden werden verwendet?
- Welche bekannten Einschränkungen gibt es?
- Was ist Database Migration Service?
- Database Migration Service ist ein Dienst, der Ihnen die Migration Ihrer Daten zu erleichtert Google Cloud. Mit Database Migration Service können Sie Ihre PostgreSQL-Arbeitslasten zu Cloud SQL migrieren.
- Welche Quellen werden unterstützt?
-
- Amazon RDS 9.6.10+, 10.5+, 11.1+, 12, 13, 14, 15, 16, 17, 18.
- Amazon Aurora 10.11+, 11.6+, 12.4+, 13.3+, 14.6+, 15.2+, 16, 17, 18.
- Selbstverwaltetes PostgreSQL 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18 (lokal oder auf einer vollständig von Ihnen verwalteten Cloud-VM)
- Cloud SQL for PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18.
- Microsoft Azure Database for PostgreSQL Flexible Server: 11+
- Welche Ziele werden unterstützt?
-
- Cloud SQL for PostgreSQL 9.6, 10, 11, 12, 13, 14, 15, 16, 17, 18.
- Gibt es versionsübergreifenden Support?
- Database Migration Service unterstützt PostgreSQL-zu-Cloud SQL-Migrationen über alle Hauptversionen hinweg, wobei die Zielversion dieselbe oder höher als die Quellversion sein muss.
- Welche Daten-, Schema- und Metadatenkomponenten werden migriert?
- Database Migration Service migriert Schema, Daten und Metadaten von der Quelle zum Ziel. Alle folgenden Daten-, Schema- und Metadatenkomponenten werden im Rahmen der Datenbankmigration migriert:
Datenmigration
- Alle Schemas und alle Tabellen aus der ausgewählten Datenbank.
- Benennung
- Primärschlüssel
- Datentyp
- Ordinal position
- Standardwert
- Null-Zulässigkeit
- Attribute für automatische Inkrementierung
- Sekundäre Indexe
- Gespeicherte Prozeduren
- Funktionen
- Trigger
- Aufrufe
- Fremdschlüsseleinschränkungen
- Welche Änderungen werden während der kontinuierlichen Migration repliziert?
-
Während der Migration werden nur DML-Änderungen automatisch aktualisiert. Der Nutzer ist für die Verwaltung der DDL verantwortlich, damit die Quell- und Zieldatenbank(en) kompatibel bleiben. Dies kann auf zwei Arten erreicht werden:
- Beenden Sie Schreibvorgänge in die Quelle und führen Sie die DDL-Befehle in der Quelle und dem Ziel aus. Gewähren Sie dem Cloud SQL-Nutzer, der die DDL-Änderungen anwendet, die Rolle
cloudsqlexternalsync, bevor die DDL-Befehle für das Ziel ausgeführt werden. Gewähren Sie den entsprechenden Cloud SQL-Nutzern die Rollecloudsqlexternalsync, um Abfragen oder Änderungen der Daten zu ermöglichen. Verwenden Sie die
pglogical.replicate_ddl_command, um die DDL an einem konsistenten Punkt für die Quelle und das Ziel auszuführen. Der Nutzer, der diesen Befehl ausführt, muss denselben Nutzernamen für Quelle und Ziel haben und entweder Superuser oder Inhaber des migrierten Artefakts (z. B. Tabelle, Sequenz, Ansicht oder Datenbank) sein.Hier sind einige Beispiele für die Verwendung von
pglogical.replicate_ddl_command.Führen Sie den folgenden Befehl aus, um einer Datenbanktabelle eine Spalte hinzuzufügen:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');Führen Sie den folgenden Befehl aus, um den Namen einer Datenbanktabelle zu ändern:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');Führen Sie die folgenden Befehle aus, um eine Datenbanktabelle zu erstellen:
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);select pglogical.replication_set_add_table('default', '[schema].[table]');
- Beenden Sie Schreibvorgänge in die Quelle und führen Sie die DDL-Befehle in der Quelle und dem Ziel aus. Gewähren Sie dem Cloud SQL-Nutzer, der die DDL-Änderungen anwendet, die Rolle
- Was wird nicht migriert?
-
Wenn Sie der Cloud SQL-Zielinstanz Nutzer hinzufügen möchten, rufen Sie die Instanz auf und fügen Sie Nutzer auf dem Tab Nutzer hinzu oder fügen Sie sie über den PostgreSQL-Client hinzu. Weitere Informationen zum Erstellen und Verwalten von PostgreSQL-Nutzern
Große Objekte können nicht repliziert werden, da die logische Decodierung von PostgreSQL keine Änderungen an großen Objekten unterstützt. Bei Tabellen mit dem Spaltentyp „oid“, der auf große Objekte verweist, werden die Zeilen weiterhin synchronisiert und neue Zeilen repliziert. Wenn Sie jedoch versuchen, auf das große Objekt in der Zieldatenbank zuzugreifen (Lesen mit lo_get, Exportieren mit lo_export oder Überprüfen des Katalogs
pg_largeobjectfür die angegebene „oid“), schlägt der Vorgang mit einer Meldung fehl, dass das große Objekt nicht vorhanden ist.Bei Tabellen ohne Primärschlüssel unterstützt Database Migration Service die Migration des ersten Snapshots und der
INSERTAnweisungen während der CDC-Phase (Change Data Capture).UPDATE- undDELETE-Anweisungen sollten Sie manuell migrieren.Database Migration Service migriert keine Daten aus materialisierten Ansichten, sondern nur das Ansichtsschema. Führen Sie den folgenden Befehl aus, um die Ansichten zu füllen:
REFRESH MATERIALIZED VIEW view_name.Die
SEQUENCE-Status (z. B.last_value) in der neuen Cloud SQL-Zielinstanz können von denSEQUENCE-Status der Quelle abweichen. - Welche Netzwerkmethoden werden verwendet?
- Um eine Migration in Database Migration Service zu erstellen, muss eine Verbindung zwischen der Quelle und der Cloud SQL-Zielinstanz hergestellt werden. Es werden verschiedene Methoden unterstützt.
Wählen Sie die Methode aus, die für die jeweilige Arbeitslast am besten geeignet ist.
Netzwerkmethode Beschreibung Vorteile Nachteile IP-Zulassungsliste Bei dieser Methode wird der Quelldatenbankserver so konfiguriert, dass Verbindungen von der öffentlichen IP-Adresse von der Cloud SQL-Instanz akzeptiert werden. Wenn Sie diese Methode auswählen, führt Sie Database Migration Service während der Migrationseinrichtung durch den Einrichtungsprozess. - Einfach zu konfigurieren.
- Empfohlen für kurzlebige Migrationsszenarien (POC oder kleine Datenbankmigrationen).
- Die Firewallkonfiguration erfordert möglicherweise Unterstützung von der IT-Abteilung.
- Die Quelldatenbank wird einer öffentlichen IP-Adresse ausgesetzt.
- Die Verbindung ist standardmäßig nicht verschlüsselt. SSL muss in der Quelldatenbank aktiviert werden, um die Verbindung zu verschlüsseln.
Umgekehrter SSH-Tunnel über in der Cloud gehostete VM Stellt über einen sicheren umgekehrten SSH-Tunnel eine Verbindung vom Ziel zur Quelle her. Erfordert eine Bastion-Host-VM im Google Cloud Projekt und einen Computer (z. B. einen Laptop im Netzwerk), der eine Verbindung zur Quelle hat. Database Migration Service erfasst die erforderlichen Informationen bei der Migrationseinrichtung und generiert automatisch das Skript für die Einrichtung. - Einfach zu konfigurieren.
- Erfordert keine benutzerdefinierte Firewallkonfiguration.
- Empfohlen für kurzlebige Migrationsszenarien (POC oder kleine Datenbankmigrationen).
- Sie sind Inhaber der Bastion-VM und verwalten sie.
- Es können zusätzliche Kosten anfallen.
VPC-Peering Bei dieser Methode werden die VPCs für die Kommunikation miteinander konfiguriert. Diese Methode ist nur anwendbar, wenn sowohl die Quelle als auch das Ziel in gehostet werden Google Cloud. Empfohlen für Migrationen mit langer Laufzeit oder hohem Volumen. - Google Cloud Lösung.
- Einfach zu konfigurieren.
- Hohe Bandbreite
Nur verfügbar, wenn die Quelle in gehostet wird Google Cloud. VPN Richtet einen IPSec-VPN-Tunnel ein, der das interne Netzwerk und Google Cloud VPC über eine sichere Verbindung über das öffentliche Internet verbindet. Verwenden Sie Google Cloud VPN oder eine beliebige VPN-Lösung, die für das interne Netzwerk eingerichtet ist. - Robuste und skalierbare Verbindungslösung.
- Mittlere bis hohe Bandbreite.
- Integrierte Sicherheit.
- Wird als Google Cloud Lösung oder von anderen Drittanbietern angeboten.
- Zusätzliche Kosten.
- Nicht triviale Konfiguration (sofern nicht bereits vorhanden).
Cloud Interconnect Verwendet eine hochverfügbare Verbindung mit niedriger Latenz zwischen dem lokalen Netzwerk und Google Cloud. Höchste Bandbreite, ideal für Migrationen mit langer Laufzeit und hohem Volumen. - Zusätzliche Kosten.
- Die Verbindung ist standardmäßig nicht sicher.
- Nicht triviale Konfiguration (sofern nicht bereits vorhanden).
- Welche bekannten Einschränkungen gibt es?
- Weitere Informationen finden Sie unter Bekannte Einschränkungen.