Ü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
pglogical
-Erweiterung unterstützt die Replikation von generierten Spalten für PostgreSQL 12 und höher nicht.Änderungen an Tabellenstrukturen (DDL) werden nicht über standardmäßige DDL-Befehle repliziert, sondern nur mit Befehlen, die mit der für die Replikation verwendeten
pglogical
-Erweiterung ausgeführt werden.pglogical
bietet beispielsweise die Funktionpglogical.replicate_ddl_command
, mit der DDL sowohl in der Quelldatenbank als auch im Replikat an einem konsistenten Punkt ausgeführt werden kann. Der Nutzer, der diesen Befehl auf der Quelle ausführt, muss bereits auf dem Replikat vorhanden sein.Wenn Sie Daten für neue Tabellen replizieren möchten, müssen Sie die neuen Tabellen mit dem Befehl
pglogical.replication_set_add_table
zu vorhandenen Replikationssätzen hinzufügen.Weitere Informationen zur DDL-Replikation während der Migration finden Sie im Abschnitt zur Migrationstreue.
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). Sie solltenUPDATE
- undDELETE
-Anweisungen manuell migrieren.Der 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
) im neuen Cloud SQL-Ziel 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 zur Migrationstreue.
Es können nur Erweiterungen und prozedurale Sprachen migriert werden, die von Cloud SQL für PostgreSQL unterstützt werden. Der Database Migration Service migriert keine Erweiterungen, die von Cloud SQL nicht unterstützt werden. Die Migration wird durch diese Erweiterungen nicht blockiert. Für einen reibungslosen Migrationsprozess sollten Sie jedoch prüfen, ob Ihre Objekte oder Anwendungen keine nicht unterstützten Erweiterungen enthalten. Wir empfehlen, diese Erweiterungen und Verweise aus Ihrer Quelldatenbank zu entfernen, bevor Sie fortfahren.
Die
pg_cron
-Erweiterung (oder alle mit der Erweiterung verknüpftencron
-Einstellungen) wird vom Database Migration Service nicht migriert, sondern wird in Cloud SQL for PostgreSQL-Zielen unterstützt. Wenn Sie diepg_cron
-Erweiterung in Ihren Quelldatenbanken verwenden, können Sie sie nach Abschluss der Migration in Ihrer Zielinstanz neu installieren.
Der Datenbankmigrationsdienst 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 sind, 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.
- Bei der Migration mit dem Database Migration Service können Sie keine bestimmten Datenbankobjekte (z. B. Datenbanken, Tabellen oder Schemas) auswählen.
Der Database Migration Service migriert alle Tabellen und Schemas mit Ausnahme der folgenden Schemas:
- Das Informationsschema (
information_schema
) - Alle Schemas, die mit
pg
beginnen (z. B.pg_catalog
, das die Systemtabellen und alle integrierten Datentypen, Funktionen und Operatoren enthält und automatisch in allen Datenbanken vorhanden ist). Daher werden Informationen zu Nutzern und Nutzerrollen nicht migriert. Vollständige Liste der Schemas, die mitpg
beginnen
- 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 Erweiterung
pgcrypto
verschlüsselt sind, können sie mit dem Database Migration Service migriert werden, da Cloud SQL die Erweiterung unterstützt.Der 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 in ihren Diensten transparent 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. Achten Sie darauf, keine Änderungen an der Datenbankkonfiguration oder den Tabellenstrukturen vorzunehmen, die den Migrationsprozess beeinträchtigen oder die Datenintegrität beeinträchtigen könnten.
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 TRIGGER
oderALTER TABLE
konfiguriert wurden und der Triggerstatus auf „Replik“ oder „Immer“ festgelegt ist, werden sie während der Replikation auf dem Replik ausgelöst.Funktionen mit Sicherheitsdefinitor werden von
cloudsqlexternalsync
im Cloud SQL-Replikat erstellt. Wenn er von Nutzern ausgeführt wird, geschieht dies mit den Berechtigungen voncloudsqlexternalsync
, der die Rollencloudsqlsuperuser
undcloudsqlreplica
hat. Es ist besser, die Verwendung einer Sicherheitsdefinition auf einige Nutzer zu beschränken. Dazu muss der Nutzer die standardmäßigen PUBLIC-Berechtigungen widerrufen und dann die Ausführungsberechtigung selektiv gewähren.Cloud SQL unterstützt keine benutzerdefinierten Tablespaces. Alle Daten in benutzerdefinierten Tablespaces werden in den Tablespace
pg_default
in der Cloud SQL-Zielinstanz migriert.
Einschränkungen für Migrationen zu vorhandenen Zielinstanzen
- Die vorhandene Zielinstanz muss leer sein oder nur Systemkonfigurationsdaten enthalten. Die Migration zu vorhandenen Zielinstanzen, die Nutzerdaten (z. B. Tabellen) enthalten, wird nicht unterstützt.
Wenn Probleme aufgrund zusätzlicher Daten in der 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 der 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.
- Die Migration von Daten zu einer Cloud SQL-Instanz, für die Private Service Connect aktiviert ist, wird nicht unterstützt.
- Nachdem Sie eine Instanz hochgestuft haben, müssen Sie die Wiederherstellung zu einem bestimmten Zeitpunkt 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: Der Database Migration Service ändert die Sicherungs- und Wiederherstellungseinstellungen Ihrer Zielinstanz. Dies kann dazu führen, dass 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.