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 Standard-DDL-Befehle repliziert, sondern nur über Befehle, die mit der für die Replikation verwendeten
pglogical
-Erweiterung ausgeführt werden. Dazu gehören Änderungen anenum
-Typen.pglogical
bietet beispielsweise eine 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 für die 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 Replikationssets 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 sollten die AnweisungenUPDATE
undDELETE
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
-Status (z. B.last_value
) im neuen AlloyDB-Ziel können sich von denSEQUENCE
-Status der Quelle unterscheiden.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 Migrationsgenauigkeit.
- Es können nur Erweiterungen und prozedurale Sprachen migriert werden, die von AlloyDB for PostgreSQL unterstützt werden.
Der 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.
- In C geschriebene benutzerdefinierte Funktionen können nicht migriert werden, mit Ausnahme von Funktionen, die bei der Installation von Erweiterungen, die von AlloyDB unterstützt werden, in der PostgreSQL-Datenbank installiert werden.
Wenn in der Quelldatenbank andere Erweiterungen und prozedurale Sprachen vorhanden sind oder ihre Versionen nicht unterstützt werden, schlägt der Test oder der Start des Migrationsjobs fehl.
Datenbanken, die nach dem Start des Migrationsjobs hinzugefügt werden, werden nicht migriert.
- Wenn Sie Database Migration Service für die Migration verwenden, können Sie keine bestimmten Tabellen oder Schemas auswählen.
Der Database Migration Service migriert alle Tabellen und Schemas mit Ausnahme der folgenden:
- Das Informationsschema (
information_schema
). - Alle Tabellen, die mit
pg
beginnen, z. B.pg_catalog
. Die vollständige Liste der PostgreSQL-Kataloge, die mitpg
beginnen, 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
pgcrypto
-Erweiterung verschlüsselt werden, können die Daten mit dem Database Migration Service migriert werden, da AlloyDB 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.
In die AlloyDB-Zieldatenbank kann während der Migration geschrieben werden, damit bei Bedarf DDL-Änderungen angewendet werden können. Nehmen Sie keine Änderungen an der Datenbankkonfiguration oder den Tabellenstrukturen vor, die den Migrationsprozess unterbrechen 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 „replica“ oder „always“ festgelegt ist, werden sie während der Replikation auf der Replik ausgelöst.Funktionen mit Sicherheitsdefinierer werden von
alloydbexternalsync
in der primären AlloyDB-Instanz erstellt. Wenn der Befehl von einem beliebigen Nutzer ausgeführt wird, erfolgt die Ausführung mit den Berechtigungen vonalloydbexternalsync
, der die Rollenalloydbsuperuser
undalloydbreplica
hat. Es ist besser, die Verwendung einer Sicherheitsdefiniererfunktion auf einige Nutzer zu beschränken. Dazu sollte der Nutzer die standardmäßigen PUBLIC-Berechtigungen widerrufen und dann die Ausführungsberechtigung selektiv erteilen.Die Verbindungsmethode für Private Service Connect-Schnittstellen wird nur für die Migration zu vorhandenen Zielinstanzen unterstützt. Wenn Sie eine Verbindung über eine private IP-Adresse herstellen und zu einer neuen Zielinstanz migrieren möchten, verwenden Sie VPC-Peering.
Einschränkungen für die Migration zu vorhandenen Zielclustern
- Der vorhandene Zielcluster muss leer sein oder darf nur Daten zur Systemkonfiguration enthalten. Die Migration zu einem vorhandenen Zielcluster, der Nutzerdaten (z. B. Tabellen) enthält, wird nicht unterstützt.
- Sie können nur einen Migrationsjob pro Zielcluster konfigurieren.
- Die Migration zu Clustern mit sekundären Clustern wird nicht unterstützt.
- Die Migration zu Clustern mit Lesepoolinstanzen wird unterstützt.
Weitere Informationen zu AlloyDB for PostgreSQL-Clustern und -Instanzen finden Sie unter AlloyDB for PostgreSQL – Übersicht.
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.