A PostgreSQL-ből Azure Database for PostgreSQL-be történő online migrálás ismert problémái/korlátozásai

A PostgreSQL-ről Azure Database for PostgreSQL történő online migrálással kapcsolatos ismert problémákat és korlátozásokat az alábbi szakaszok ismertetik.

Online migrálás konfigurálása

  • A forrás PostgreSQL-kiszolgálónak a 9.4-es, 9.5-ös, 9.6-os, 10-es vagy 11-es verziót kell futtatnia. További információ: Támogatott PostgreSQL-adatbázisverziók.

  • Csak az ugyanahhoz vagy egy magasabb verzióhoz való migrálás támogatott. A PostgreSQL 9.5-ös verziójának áttelepítése például a 9.6-os vagy 10-Azure Database for PostgreSQL támogatott. A PostgreSQL 11-ről a PostgreSQL 9.6-ra való migrálás nem támogatott.

  • Ha engedélyezni szeretné a logikai replikációt a postgreSQL postgresql.conf forrásfájlban , állítsa be a következő paramétereket:

    • wal_level: Logikai beállítás.
    • max_replication_slots: Állítsa be legalább a migráláshoz szükséges adatbázisok maximális számát. Ha négy adatbázist szeretne migrálni, állítsa az értéket legalább 4 értékre.
    • max_wal_senders: Állítsa be az egyidejűleg futó adatbázisok számát. Az ajánlott érték 10.
  • Adja hozzá a DMS-ügynök IP-címét a PostgreSQL pg_hba.conf forráshoz.

    1. Jegyezze fel a DMS IP-címét, miután befejezte a Azure Database Migration Service példányának kiépítését.

    2. Adja hozzá az IP-címet a pg_hba.conf fájlhoz :

          host    all    172.16.136.18/10    md5
          host    replication postgres    172.16.136.18/10     md5
      
  • A felhasználónak replikációs szerepkörrel kell rendelkeznie a forrásadatbázist üzemeltető kiszolgálón.

  • A forrás- és céladatbázis-sémáknak egyeznie kell.

Méretkorlátozások

  • Egyetlen DMS-szolgáltatással akár 1 TB-ot is áttelepíthet a PostgreSQL-ből Azure Database for PostgreSQL.
  • A DMS lehetővé teszi, hogy a felhasználók táblákat válasszanak ki egy olyan adatbázisban, amelyet migrálni szeretnének. Képernyőkép a D M S képernyőről, amelyen a táblák kiválasztásának lehetősége látható.

A színfalak mögött található egy pg_dump parancs, amely a kijelölt táblák memóriaképének készítésére szolgál az alábbi lehetőségek egyikével:

  • -T a felhasználói felületen kiválasztott táblanevek belefoglalásához
  • -t a felhasználó által nem választott táblanevek kizárásához

Legfeljebb 7500 karakter hosszúságú lehet, amely a - t vagy - T kapcsolót követő pg_dump parancs részeként vehető fel. A pg_dump parancs a kijelölt vagy nem kijelölt táblák karaktereinek számát használja, amelyik alacsonyabb. Ha a kijelölt és a nem kijelölt táblák karaktereinek száma meghaladja a 7500-t, a pg_dump parancs hibaüzenettel meghiúsul.

Az előző példában a pg_dump parancs a következő:

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

Az előző parancsban a karakterek száma 55 (dupla idézőjeleket, szóközöket, -T és perjeleket tartalmaz)

Adattípusra vonatkozó korlátozások

Korlátozás: Ha nincs elsődleges kulcs a táblákban, előfordulhat, hogy a módosítások nem szinkronizálódnak a céladatbázissal.

Megkerülő megoldás: Ideiglenesen állítsa be a tábla elsődleges kulcsát a migrálás folytatásához. Az adatmigrálás befejezése után távolítsa el az elsődleges kulcsot.

Az AWS RDS PostgreSQL-ből való online migrálás korlátozásai

Amikor online migrálást kísérel meg végrehajtani az Amazon Web Service (AWS) relációs adatbázisból (RDS) PostgreSQL-ből Azure Database for PostgreSQL, a következő hibákat tapasztalhatja:

  • Hiba: A(z) {database} adatbázis {table} táblájának "{column}" oszlopának alapértelmezett értéke eltérő a forrás- és célkiszolgálókon. Az érték „{value on source}” a forráson és „{value on target}” a célon.

    Korlátozás: Ez a hiba akkor fordul elő, ha az oszlopséma alapértelmezett értéke eltér a forrás- és a céladatbázisok között.

    Megkerülő megoldás: Győződjön meg arról, hogy a cél sémája megegyezik a forrás sémával. A séma migrálásával kapcsolatos további információkért tekintse meg az Azure Database for PostgreSQL online migrálási dokumentációját.

  • Hiba: A(z) "{database}" céladatbázis {number of tables}" táblával rendelkezik, míg a(z) "{database}" forrásadatbázisban "{táblák száma}" táblák találhatók. A forrás- és a céladatbázisok táblái számának azonosnak kell lennie.

    Korlátozás: Ez a hiba akkor fordul elő, ha a táblák száma eltér a forrás- és a céladatbázisok között.

    Megkerülő megoldás: Győződjön meg arról, hogy a cél sémája megegyezik a forrás sémával. A séma migrálásával kapcsolatos további információkért tekintse meg az Azure Database for PostgreSQL online migrálási dokumentációját.

  • Hiba: A(z) {database} forrásadatbázis üres.

    Korlátozás: Ez a hiba akkor fordul elő, ha a forrásadatbázis üres. Valószínűleg nem a megfelelő adatbázist választotta ki forrásként.

    Megkerülő megoldás: Ellenőrizze duplán a migráláshoz kiválasztott forrásadatbázist, majd próbálkozzon újra.

  • Hiba: A(z) {database} céladatbázis üres. A séma migrálása.

    Korlátozás: Ez a hiba akkor fordul elő, ha nincs séma a céladatbázison. Győződjön meg arról, hogy a cél sémája megegyezik a forrás sémával.

    Megkerülő megoldás: Győződjön meg arról, hogy a cél sémája megegyezik a forrás sémával. A séma migrálásával kapcsolatos további információkért tekintse meg az Azure Database for PostgreSQL online migrálási dokumentációját.

Egyéb korlátozások

  • Az adatbázis neve nem tartalmazhat pontosvesszőt (;).
  • A rögzített tábláknak elsődleges kulccsal kell rendelkezniük. Ha egy tábla nem rendelkezik elsődleges kulccsal, a DELETE és AZ UPDATE rekordműveletek eredménye kiszámíthatatlan lesz.
  • Az elsődleges kulcs szegmensének frissítése figyelmen kívül lesz hagyva. Az ilyen frissítés alkalmazását a cél egy olyan frissítésként azonosítja, amely nem frissített sorokat. Az eredmény a kivételek táblába írt rekord.
  • Ha a tábla JSON-oszlopot tartalmaz, a táblán található DELETE vagy UPDATE műveletek sikertelen migráláshoz vezethetnek.
  • Több, azonos nevű, de eltérő esettel rendelkező tábla migrálása kiszámíthatatlan viselkedést okozhat, és nem támogatott. Ilyen például a table1, a TABLE1 és a Table1 használata.
  • A(z) [CREATE | ALTER | DROP | A TRUNCATE] tábla DLL-jei nem támogatottak.
  • A Database Migration Service egyetlen migrálási tevékenység legfeljebb négy adatbázist képes kezelni.
  • A pg_largeobject tábla áttelepítése nem támogatott.