Bekende problemen/migratiebeperkingen met onlinemigraties van PostgreSQL naar Azure DB for PostgreSQL
Bekende problemen en beperkingen met betrekking tot onlinemigraties van PostgreSQL naar Azure Database for PostgreSQL worden beschreven in de volgende secties.
Configuratie van onlinemigratie
Op de postgreSQL-bronserver moet versie 9.4, 9.5, 9.6, 10 of 11 worden uitgevoerd. Zie voor meer informatie het artikel Supported PostgreSQL Database Versions (Ondersteunde versies van de PostgreSQL-database).
Alleen migraties naar dezelfde of een hogere versie worden ondersteund. Het migreren van PostgreSQL 9.5 naar Azure Database for PostgreSQL 9.6 of 10 wordt bijvoorbeeld ondersteund, maar de migratie van PostgreSQL 11 naar PostgreSQL 9.6 wordt niet ondersteund.
Als u logische replicatie in het bronbestand PostgreSQL postgresql.conf wilt inschakelen, stelt u de volgende parameters in:
- wal_level = logisch
- max_replication_slots = [ten minste het maximum aantal databases voor migratie]; Als u vier databases wilt migreren, stelt u de waarde in op ten minste 4.
- max_wal_senders = [aantal databases dat gelijktijdig wordt uitgevoerd]; de aanbevolen waarde is 10
VOEG het IP-adres van de DMS-agent toe aan de bron-PostgreSQL pg_hba.conf
Noteer het DMS IP-adres nadat u een exemplaar van de DMS-Azure Database Migration Service.
Voeg het IP-adres toe aan pg_hba.conf-bestand, zoals wordt weergegeven:
host all 172.16.136.18/10 md5 host replication postgres 172.16.136.18/10 md5
De gebruiker moet de rol REPLICATIE hebben op de server die als host voor de brondatabase wordt gebruikt.
De bron- en doeldatabaseschema's moeten overeenkomen.
Groottebeperkingen
- U kunt maximaal 1 TB aan gegevens migreren van PostgreSQL naar Azure DB for PostgreSQL één DMS-service.
Beperkingen voor gegevenstype
Beperking: als er geen primaire sleutel in tabellen staat, worden wijzigingen mogelijk niet gesynchroniseerd met de doeldatabase.
Tijdelijke oplossing: stel tijdelijk een primaire sleutel in voor de tabel om de migratie voort te zetten. U kunt de primaire sleutel verwijderen nadat de gegevensmigratie is voltooid.
Beperkingen bij het online migreren van AWS RDS PostgreSQL
Wanneer u probeert een onlinemigratie uit te voeren van AWS RDS PostgreSQL naar Azure Database for PostgreSQL, kunnen de volgende fouten optreden.
Fout: De standaardwaarde van de kolom {kolom} in tabel {tabel} in database {database} is verschillend op bron- en doelservers. De waarde {waarde op bron} in de bron en {waarde op doel} op het doel.
Beperking: deze fout treedt op wanneer de standaardwaarde in een kolomschema verschilt tussen de bron- en doeldatabases. Tijdelijke oplossing: zorg ervoor dat het schema op het doel overeenkomt met het schema op de bron. Raadpleeg de online migratiedocumentatie voor Azure PostgreSQLvoor meer informatie over het migreren van het schema.
Fout: Doeldatabase {database} heeft {aantal tabellen} tabellen terwijl brondatabase {database} {aantal tabellen} tabellen heeft. Het aantal tabellen op de bron- en doeldatabase moet overeenkomen.
Beperking: deze fout treedt op wanneer het aantal tabellen verschilt tussen de bron- en doeldatabases.
Tijdelijke oplossing: zorg ervoor dat het schema op het doel overeenkomt met het schema op de bron. Raadpleeg de online migratiedocumentatie voor Azure PostgreSQLvoor meer informatie over het migreren van het schema.
Fout: De brondatabase {database} is leeg.
Beperking: deze fout treedt op wanneer de brondatabase leeg is. Dit komt waarschijnlijk doordat u de verkeerde database als bron hebt geselecteerd.
Tijdelijke oplossing: controleer de brondatabase die u hebt geselecteerd voor migratie en probeer het opnieuw.
Fout: De doeldatabase {database} is leeg. Migreer het schema.
Beperking: deze fout treedt op wanneer de doeldatabase geen schema bevat. Zorg ervoor dat het schema op het doel overeenkomt met het schema op de bron. Tijdelijke oplossing: zorg ervoor dat het schema op het doel overeenkomt met het schema op de bron. Raadpleeg de online migratiedocumentatie voor Azure PostgreSQLvoor meer informatie over het migreren van het schema.
Andere beperkingen
- De databasenaam mag geen punt-dubbele punt (;).
- Een vastgelegde tabel moet een primaire sleutel hebben. Als een tabel geen primaire sleutel heeft, is het resultaat van recordbewerkingen DELETE en UPDATE onvoorspelbaar.
- Het bijwerken van een primaire-sleutelsegment wordt genegeerd. In dergelijke gevallen wordt het toepassen van een dergelijke update door het doel geïdentificeerd als een update die geen rijen heeft bijgewerkt en resulteert in een record die naar de tabel met uitzonderingen wordt geschreven.
- Migratie van meerdere tabellen met dezelfde naam maar een ander geval (bijvoorbeeld table1, TABLE1 en Table1) kan onvoorspelbaar gedrag veroorzaken en wordt daarom niet ondersteund.
- Wijzigingsverwerking van [CREATE | ALTER | DROP | TRUNCATE] tabel-DDL's worden niet ondersteund.
- In Azure Database Migration Service is één migratieactiviteit geschikt voor maximaal vier databases.
- Migratie van de pg_largeobject tabel wordt niet ondersteund.