Übersicht
Bevor Sie Ihre Datenbanken zu Cloud SQL migrieren, sollten Sie die bekannten Einschränkungen für dieses Migrationsszenario berücksichtigen.
Bekannte Einschränkungen bei Verwendung einer PostgreSQL-Datenbank als Quelle:
Die
pglogicalErweiterung unterstützt die Replikation von generierten Spalten für PostgreSQL 12 und höher nicht.Änderungen an Tabellenstrukturen (DDL) werden nicht über Standard-DDL-Befehle repliziert, sondern nur mit Befehlen, die mit der für die Replikation verwendeten
pglogical-Erweiterung ausgeführt werden. Dazu gehören auch Änderungen anenumTypen.Beispielsweise bietet
pglogicaleine Funktionpglogical.replicate_ddl_command, mit der DDL an einem konsistenten Punkt sowohl in der Quelldatenbank als auch im Replikat ausgeführt werden kann. Der Nutzer, der diesen Befehl in der Quelle ausführt, muss bereits im Replikat vorhanden sein.Wenn Sie Daten für neue Tabellen replizieren möchten, müssen Sie mit dem Befehl
pglogical.replication_set_add_tabledie neuen Tabellen zu vorhandenen Replikationssätzen hinzufügen.Weitere Informationen zur DDL-Replikation während der Migration in Bearbeitung finden Sie im Abschnitt zu Zuverlässigkeit der Migration.
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). Sie solltenUPDATE- undDELETE-Anweisungen 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-Zustände (z. B.last_value) in der neuen Cloud SQL-Zielinstanz können von denSEQUENCE-Zuständen der Quelle abweichen.UNLOGGED- undTEMPORARY-Tabellen werden nicht repliziert und können auch nicht repliziert werden.Der Datentyp „Large Object“ wird nicht unterstützt. Weitere Informationen finden Sie im Abschnitt zu r Zuverlässigkeit der Migration.
Es können nur Erweiterungen und prozedurale Sprachen migriert werden, die von Cloud SQL für PostgreSQL unterstützt werden. Database Migration Service migriert keine Erweiterungen, die von Cloud SQL nicht unterstützt werden. Das Vorhandensein dieser Erweiterungen blockiert die Migration nicht. Um jedoch einen reibungslosen Migrationsprozess zu gewährleisten, prüfen Sie, ob Ihre Objekte oder Anwendungen auf nicht unterstützte Erweiterungen verweisen. Wir empfehlen, diese Erweiterungen und Verweise vor dem Fortfahren aus der Quelldatenbank zu entfernen.
Die
pg_cronErweiterung (oder allecronEinstellungen, die mit der Erweiterung verknüpft sind) werden nicht von Database Migration Service migriert, aber in Cloud SQL for PostgreSQL-Zielinstanzen unterstützt. Wenn Sie diepg_cron-Erweiterung in Ihren Quelldatenbanken verwenden, können Sie sie nach Abschluss der Migration in der Zielinstanz neu installieren.
Database Migration Service unterstützt keine Migration von Lesereplikaten, die sich im Wiederherstellungsmodus befinden.
Database Migration Service unterstützt keine Amazon RDS-Quellen, auf die das AWS SCT-Erweiterungspaket angewendet wird.
- Benutzerdefinierte Funktionen, die in C geschrieben wurden, können nicht migriert werden. Eine Ausnahme bilden Funktionen, die in der PostgreSQL-Datenbank installiert werden, wenn Sie Erweiterungen installieren, die von Cloud SQL unterstützt werden.
Wenn in der Quelldatenbank andere Erweiterungen und prozedurale Sprachen vorhanden sind oder ihre Versionen nicht unterstützt werden, schlägt der Test oder Start des Migrationsjobs fehl.
Datenbanken, die nach dem Start des Migrationsjobs hinzugefügt werden, werden nicht migriert.
- Sie können keine bestimmten Tabellen oder Schemas auswählen, wenn Sie mit Database Migration Service migrieren.
Database Migration Service migriert alle Tabellen und Schemas mit Ausnahme der folgenden:
- Das Informationsschema (
information_schema). - Alle Tabellen, die mit
pgbeginnen, z. B.pg_catalog. Die vollständige Liste der PostgreSQL-Kataloge, die mitpgbeginnen, finden Sie in der PostgreSQL-Dokumentation unter PostgreSQL-Systemkataloge. - Informationen zu Nutzern und Nutzerrollen werden nicht migriert.
- Das Informationsschema (
Wenn für verschlüsselte Datenbanken vom Kunden verwaltete Verschlüsselungsschlüssel zum Entschlüsseln der Datenbanken erforderlich sind und Database Migration Service keinen Zugriff auf die Schlüssel hat, können die Datenbanken nicht migriert werden.
Wenn Kundendaten jedoch mit der
pgcryptoErweiterung verschlüsselt werden, können die Daten mit Database Migration Service migriert werden, da Cloud SQL die Erweiterung unterstützt.Database Migration Service unterstützt auch die Migration von Daten aus verschlüsselten Amazon Aurora- oder Amazon RDS-Datenbanken, da diese Datenbanken die Entschlüsselung transparent in ihren Diensten verarbeiten. Weitere Informationen finden Sie unter Amazon Aurora-Ressourcen verschlüsseln und Amazon RDS-Ressourcen verschlüsseln.
Die Cloud SQL-Zieldatenbank ist während der Migration beschreibbar, damit bei Bedarf DDL-Änderungen angewendet werden können. Nehmen Sie keine Änderungen an der Datenbankkonfiguration oder den Tabellenstrukturen vor, da dies den Migrationsprozess unterbrechen oder die Datenintegrität beeinträchtigen kann.
Das Triggerverhalten hängt davon ab, wie sie konfiguriert wurden. Standardmäßig werden sie nicht ausgelöst. Wenn sie jedoch mit der Anweisung
ALTER EVENT TRIGGERoderALTER TABLEkonfiguriert wurden und der Triggerstatus auf „Replikat“ oder „Immer“ gesetzt ist, werden sie während der Replikation im Replikat ausgelöst.Funktionen mit dem Sicherheitsdefinierer werden von
cloudsqlexternalsyncim Cloud SQL-Replikat erstellt. Wenn sie von einem Nutzer ausgeführt werden, werden sie mit den Berechtigungen voncloudsqlexternalsyncausgeführt, das die Rollencloudsqlsuperuserundcloudsqlreplicahat. Es ist besser, die Verwendung einer Sicherheitsdefiniererfunktion auf einige Nutzer zu beschränken. Dazu muss der Nutzer die Standardberechtigungen für „PUBLIC“ widerrufen und dann die Ausführungsberechtigung selektiv erteilen.Cloud SQL unterstützt keine benutzerdefinierten Tablespaces. Alle Daten in benutzerdefinierten Tablespaces werden in den
pg_default-Tablespace in der Cloud SQL-Zielinstanz migriert.Die Verbindungsmethode über Private Service Connect-Schnittstellen wird nur für die Migration zu vorhandenen Zielinstanzen unterstützt. Wenn Sie die private IP-Verbindung verwenden und zu einer neuen Zielinstanz migrieren möchten, verwenden Sie VPC-Peering.
Einschränkungen für Migrationen zu vorhandenen Zielinstanzen
- Ihre vorhandene Zielinstanz kann nur Standardsystemdatenbanken enthalten
die beim Erstellen der Zielinstanz automatisch eingerichtet werden.
Die Migration zu vorhandenen Zielinstanzen
die Nutzerdaten enthalten (z. B. Tabellen in Systemschemas oder Datenbanken)
wird nicht unterstützt.
Wenn Probleme aufgrund zusätzlicher Daten in Ihrer vorhandenen Zielinstanz auftreten, löschen Sie die Datenbanken in der Zielinstanz und versuchen Sie es noch einmal. Weitere Informationen finden Sie unter Zusätzliche Daten aus einer vorhandenen Zielinstanz löschen.
- Sie können nur einen Migrationsjob pro Zielinstanz konfigurieren.
- Sie können nur zu eigenständigen Cloud SQL-Instanzen migrieren. Die Migration zu externen Serverreplikaten wird nicht unterstützt.
- Nachdem Sie eine Instanz hochgestuft haben, müssen Sie die Point-in-Time-Wiederherstellung aktivieren.
- Wenn Ihre Instanz benutzerdefinierte Sicherungseinstellungen hat (z. B. einen benutzerdefinierten Sicherungsspeicherort), müssen Sie die Sicherungseinstellungen nach dem Hochstufen der Instanz noch einmal anpassen. Während des Hochstufungsprozesses setzt Cloud SQL Ihre Sicherungseinstellungen auf die Standardwerte zurück.
- Für Terraform-Nutzer: Database Migration Service ändert die Sicherungs und Wiederherstellungseinstellungen Ihrer Zielinstanz. Dadurch können sich die Einstellungen der Zielinstanz von der Terraform Konfiguration unterscheiden, die Sie für die Bereitstellung verwendet haben. Wenn dieses Problem auftritt, folgen Sie der Anleitung unter Probleme diagnostizieren.
Kontingente
- Es können immer bis zu 2.000 Verbindungsprofile und 1.000 Migrationsjobs gleichzeitig vorhanden sein. Wenn Platz für weitere Jobs und Profile benötigt wird, können Migrationsjobs (einschließlich bereits abgeschlossene) und Verbindungsprofile gelöscht werden.
- Ihre vorhandene Zielinstanz kann nur Standardsystemdatenbanken enthalten
die beim Erstellen der Zielinstanz automatisch eingerichtet werden.
Die Migration zu vorhandenen Zielinstanzen
die Nutzerdaten enthalten (z. B. Tabellen in Systemschemas oder Datenbanken)
wird nicht unterstützt.