Kända problem/begränsningar med onlinemigreringar från PostgreSQL till Azure Database for PostgreSQL

Kända problem och begränsningar som är kopplade till onlinemigreringar från PostgreSQL till Azure Database for PostgreSQL beskrivs i följande avsnitt.

Onlinemigreringskonfiguration

  • PostgreSQL-källservern måste köra version 9.4, 9.5, 9.6, 10 eller 11. Mer information finns i PostgreSQL-databasversioner som stöds.

  • Endast migreringar till samma eller en högre version stöds. Migrering av PostgreSQL 9.5 till Azure Database for PostgreSQL 9.6 eller 10 stöds till exempel. Migrering från PostgreSQL 11 till PostgreSQL 9.6 stöds inte.

  • Ange följande parametrar för att aktivera logisk replikering i postgreSQL postgresql.conf-källfilen :

    • wal_level: Ange som logisk.
    • max_replication_slots: Ange minst det maximala antalet databaser för migrering. Om du vill migrera fyra databaser anger du värdet till minst 4.
    • max_wal_senders: Ange antalet databaser som körs samtidigt. Det rekommenderade värdet är 10.
  • Lägg till DMS-agent-IP i källan PostgreSQL pg_hba.conf.

    1. Anteckna DMS IP-adressen när du har etablerat en instans av Azure Database Migration Service.

    2. Lägg till IP-adressen i filen pg_hba.conf :

          host    all    172.16.136.18/10    md5
          host    replication postgres    172.16.136.18/10     md5
      
  • Användaren måste ha replikeringsrollen på servern som är värd för källdatabasen.

  • Käll- och måldatabasscheman måste matcha.

Storleksbegränsningar

  • Du kan migrera upp till 1 TB data från PostgreSQL till Azure Database for PostgreSQL med hjälp av en enda DMS-tjänst.
  • MED DMS kan användarna välja tabeller i en databas som de vill migrera. Skärmbild av D M S-skärmen som visar alternativet att välja tabeller.

I bakgrunden finns det ett pg_dump kommando som används för att dumpa de valda tabellerna med något av följande alternativ:

  • -T för att inkludera tabellnamnen som valts i användargränssnittet
  • -t för att undanta tabellnamn som inte valts av användaren

Det finns en maxgräns på 7 500 tecken som kan inkluderas som en del av kommandot pg_dump enligt alternativet -t eller -T . Kommandot pg_dump använder antalet tecken för markerade eller omarkerade tabeller , beroende på vilket som är lägre. Om antalet tecken för de markerade och omarkerade tabellerna överskrider 7500 misslyckas kommandot pg_dump med ett fel.

I föregående exempel skulle kommandot pg_dump vara:

pg_dump -h hostname -u username -d databasename -T "\"public\".\"table_1\"" -T "\"public\".\"table_2\""

I föregående kommando är antalet tecken 55 (inkluderar dubbla citattecken, blanksteg, -T och snedstreck)

Begränsningar för datatyp

Begränsning: Om det inte finns någon primärnyckel i tabellerna kanske ändringarna inte synkroniseras till måldatabasen.

Lösning: Ange tillfälligt en primärnyckel för tabellen för migrering för att fortsätta. Ta bort primärnyckeln när datamigreringen är klar.

Begränsningar med onlinemigrering från AWS RDS PostgreSQL

När du försöker utföra en onlinemigrering från Amazon Web Service (AWS) Relational Database (RDS) PostgreSQL till Azure Database for PostgreSQL kan följande fel uppstå:

  • Fel: Standardvärdet för kolumnen {column} i tabellen {table} i databasen {database} skiljer sig på käll- och målservrar. Det har ”{value on source}” i källan och ”{value on target}” i målet.

    Begränsning: Det här felet uppstår när standardvärdet för ett kolumnschema skiljer sig mellan käll- och måldatabaserna.

    Lösning: Kontrollera att schemat på målet matchar schemat på källan. Mer information om hur du migrerar schemat finns i dokumentationen om Azure Database for PostgreSQL onlinemigrering.

  • Fel: Måldatabasen {database} har tabellerna {number of tables} medan källdatabasen {database} har tabellerna {number of tables}. Antalet tabeller i käll- och måldatabaserna måste vara lika många.

    Begränsning: Det här felet uppstår när antalet tabeller skiljer sig mellan käll- och måldatabaserna.

    Lösning: Kontrollera att schemat på målet matchar schemat på källan. Mer information om hur du migrerar schemat finns i dokumentationen om Azure Database for PostgreSQL onlinemigrering.

  • Fel: Källdatabasen {database} är tom.

    Begränsning: Det här felet uppstår när källdatabasen är tom. Du har förmodligen valt fel databas som källa.

    Lösning: Dubbelkolla källdatabasen som du valde för migrering och försök sedan igen.

  • Fel: Måldatabasen {database} är tom. Migrera schemat.

    Begränsning: Det här felet uppstår när det inte finns något schema för måldatabasen. Kontrollera att schemat på målet matchar schemat på källan.

    Lösning: Kontrollera att schemat på målet matchar schemat på källan. Mer information om hur du migrerar schemat finns i dokumentationen om Azure Database for PostgreSQL onlinemigrering.

Andra begränsningar

  • Databasnamnet får inte innehålla semikolon (;).
  • En insamlad tabell måste ha en primärnyckel. Om en tabell inte har någon primärnyckel blir resultatet av poståtgärderna DELETE och UPDATE oförutsägbart.
  • Uppdatering av ett primärnyckelsegment ignoreras. Om en sådan uppdatering tillämpas identifieras målet som en uppdatering som inte uppdaterade några rader. Resultatet är en post som skrivits till undantagstabellen.
  • Om tabellen har en JSON-kolumn kan alla DELETE- eller UPDATE-åtgärder i den här tabellen leda till en misslyckad migrering.
  • Migrering av flera tabeller med samma namn, men ett annat fall kan orsaka oförutsägbart beteende och stöds inte. Ett exempel är användningen av table1, TABLE1 och Table1.
  • Ändringsbearbetning av [CREATE | ALTER | SLÄPP | TRUNCATE] tabell-DDL:er stöds inte.
  • I Database Migration Service kan en enda migreringsaktivitet bara innehålla upp till fyra databaser.
  • Migrering av pg_largeobject-tabellen stöds inte.