Oracle migrálása az Azure Database for PostgreSQL-be az Ora2Pg használatával
A következőkre vonatkozik: Azure Database for PostgreSQL – Rugalmas kiszolgáló
Ez az útmutató segít az Oracle-sémának az Azure Database for PostgreSQL-be való migrálásában.
Részletes és átfogó Ora2Pg migrálási útmutatóért tekintse meg a Migrálási útmutató erőforrásait.
Előfeltételek
Az Oracle-sémának az Azure Database for PostgreSQL-be való migrálásához a következőkre van szükség:
- Ellenőrizze, hogy a forráskörnyezet támogatott-e.
- Töltse le az Ora2Pg legújabb verzióját.
- A DBD modul legújabb verziójával rendelkezik.
Áttekintés
A PostgreSQL a világ egyik legfejlettebb nyílt forráskódú adatbázisa. Ez a cikk azt ismerteti, hogyan használható az ingyenes Ora2Pg eszköz egy Oracle-adatbázis PostgreSQL-be való migrálásához. Az Ora2Pg használatával áttelepíthet egy Oracle-adatbázist vagy MySQL-adatbázist Egy PostgreSQL-kompatibilis sémába.
Az Ora2Pg eszköz csatlakoztatja az Oracle-adatbázist, automatikusan megvizsgálja, és kinyeri annak struktúráját vagy adatait. Ezután az Ora2Pg olyan SQL-szkripteket hoz létre, amelyeket betölthet a PostgreSQL-adatbázisba. Az Ora2Pg-t olyan feladatokhoz használhatja, mint az Oracle-adatbázisok visszafejtése, egy hatalmas vállalati adatbázis migrálása vagy néhány Oracle-adat egyszerűen replikálása PostgreSQL-adatbázisba. Az eszköz könnyen használható, és nem igényel Oracle-adatbázis-ismereteket azon kívül, hogy meg tudja adni az Oracle-adatbázishoz való csatlakozáshoz szükséges paramétereket.
Feljegyzés
Az Ora2Pg legújabb verziójának használatáról további információt az Ora2Pg dokumentációjában talál.
Tipikus Ora2Pg migrálási architektúra
A virtuális gép és az Azure Database for PostgreSQL kiépítése után két konfigurációra van szükség a kapcsolat engedélyezéséhez: Az Azure-szolgáltatásokhoz való hozzáférés engedélyezése és az SSL-kapcsolat kényszerítése:
Kapcsolatbiztonság panel >Az Azure-szolgáltatásokhoz>való hozzáférés engedélyezése ON
Kapcsolatbiztonság panel >– SSL-beállítások>– SSL-kapcsolat>kényszerítése letiltva
Ajánlások
Az Oracle-kiszolgálón az értékelési vagy exportálási műveletek teljesítményének javítása érdekében gyűjtsön statisztikákat:
BEGIN DBMS_STATS.GATHER_SCHEMA_STATS DBMS_STATS.GATHER_DATABASE_STATS DBMS_STATS.GATHER_DICTIONARY_STATS END;
Adatok exportálása a
COPY
parancsINSERT
helyett.Kerülje a táblák exportálását idegen kulcsokkal (FK-kkal), korlátozásokkal és indexekkel. Ezek az elemek lelassítják az adatok PostgreSQL-be való importálásának folyamatát.
A no data záradék használatával materializált nézeteket hozhat létre. Ezután frissítse a nézeteket később.
Ha lehetséges, használjon egyedi indexeket a materializált nézetekben. Ezek az indexek felgyorsíthatják a frissítést a szintaxis
REFRESH MATERIALIZED VIEW CONCURRENTLY
használatakor.
A migrálás előtt
Miután ellenőrizte, hogy a forráskörnyezet támogatott-e, és hogy megfelelt-e az előfeltételeknek, készen áll az előkészítési szakasz elindítására. A kezdéshez:
- Felfedezés: Leltározza a migrálni kívánt adatbázisokat.
- Értékelés: Az adatbázisok értékelése a lehetséges migrálási problémákra vagy blokkolókra.
- Konvertálás: A feltárt elemek feloldása.
Az olyan heterogén migrálások esetében, mint az Oracle és az Azure Database for PostgreSQL, ebben a szakaszban a forrásadatbázis-sémák kompatibilissé tétele a célkörnyezettel.
Felderítés
A felderítési fázis célja a meglévő adatforrások és a használt funkciók részleteinek azonosítása. Ez a fázis segít jobban megérteni és megtervezni a migrálást. A folyamat magában foglalja a hálózat vizsgálatát, hogy azonosítsa a szervezet Oracle-példányait a használt verzióval és funkciókkal együtt.
Az Oracle-hez készült Microsoft előzetes értékelési szkriptjei az Oracle-adatbázison futnak. Az előzetes értékelés szkriptjei lekérdezik az Oracle metaadatait. A szkriptek a következőket biztosítják:
- Adatbázisleltár, beleértve az objektumok számát séma, típus és állapot szerint.
- Az egyes sémák nyers adatainak hozzávetőleges becslése statisztikák alapján.
- A táblák mérete az egyes sémákban.
- A kódsorok száma csomagonként, függvényenként, eljárásonként stb.
Töltse le a kapcsolódó szkripteket a GitHubról.
Értékelés
Az Oracle-adatbázisok leltározása után megismerheti az adatbázis méretét és a lehetséges kihívásokat. A következő lépés az értékelés futtatása.
Az Oracle-ből a PostgreSQL-be való migrálás költségeinek becslése nem egyszerű. A migrálási költség felméréséhez az Ora2Pg ellenőrzi az összes adatbázis-objektumot, függvényt és tárolt eljárást olyan objektumok és PL/SQL-kódok esetében, amelyeket nem tud automatikusan átalakítani.
Az Ora2Pg eszköz tartalomelemzési móddal rendelkezik, amely az Oracle-adatbázist vizsgálja meg egy szöveges jelentés létrehozásához. A jelentés leírja, hogy mit tartalmaz az Oracle-adatbázis, és mit nem lehet exportálni.
Az elemzési és jelentés mód aktiválásához használja az exportált típust SHOW_REPORT
az alábbi parancsban látható módon:
ora2pg -t SHOW_REPORT
Az Ora2Pg eszköz sql- és PL/SQL-kódot konvertálhat az Oracle szintaxisából PostgreSQL-re. Az adatbázis elemzése után az Ora2Pg megbecsülheti a kódokkal kapcsolatos nehézségeket és a teljes adatbázis migrálásához szükséges időt.
A migrálási költségek emberi napokon történő becsléséhez az Ora2Pg lehetővé teszi egy úgynevezett ESTIMATE_COST
konfigurációs irányelv használatát. Ezt az irányelvet parancssorban is engedélyezheti:
ora2pg -t SHOW_REPORT --estimate_cost
Az alapértelmezett migrálási egység körülbelül öt percet jelent egy PostgreSQL-szakértő számára. Ha ez az első migrálás, a konfigurációs irányelv COST_UNIT_VALUE
vagy a parancssori beállítás használatával növelheti az alapértelmezett migrálási --cost_unit_value
egységet.
A jelentés utolsó sora a teljes becsült áttelepítési kódot jeleníti meg az emberi napokban. A becslés az egyes objektumokra becsült áttelepítési egységek számát követi.
A következő kód példában néhány értékelési változat látható:
- Táblák értékelése
- Oszlopok értékelése
- Az alapértelmezett 5 perces költségegységet használó sémafelmérés
- 10 perces költségegységet használó sémafelmérés
ora2pg -t SHOW_TABLE -c c:\ora2pg\ora2pg_hr.conf > c:\ts303\hr_migration\reports\tables.txt
ora2pg -t SHOW_COLUMN -c c:\ora2pg\ora2pg_hr.conf > c:\ts303\hr_migration\reports\columns.txt
ora2pg -t SHOW_REPORT -c c:\ora2pg\ora2pg_hr.conf --dump_as_html --estimate_cost > c:\ts303\hr_migration\reports\report.html
ora2pg -t SHOW_REPORT -c c:\ora2pg\ora2pg_hr.conf –-cost_unit_value 10 --dump_as_html --estimate_cost > c:\ts303\hr_migration\reports\report2.html
A sémaértékelés B-5 migrálási szintjének kimenete:
Migrálási szintek:
A – Automatikusan futtatható migrálás
B – A kód átírásával és az emberi napokkal való migrálás legfeljebb 5 napba kerül
C – Migrálás kódátírással és emberi napok költsége 5 nap alatt
Technikai szintek:
1 = Triviális: Nincsenek tárolt függvények és nincsenek triggerek
2 = Egyszerű: Nincsenek tárolt függvények, hanem triggerek; nincs manuális újraírás
3 = Egyszerű: Tárolt függvények és/vagy triggerek; nincs manuális újraírás
4 = Manuális: Nincsenek tárolt függvények, de kód újraírásával aktiválja vagy nézetben
5 = Nehéz: Tárolt függvények és/vagy triggerek kód újraírásával
Az értékelés a következőkből áll:
Egy betű (A vagy B), amely megadja, hogy a migrálás manuális újraírást igényel-e.
1 és 5 közötti szám, amely jelzi a technikai nehézséget.
Egy másik lehetőség az -human_days_limit
emberi napok korlátját határozza meg. Itt állítsa a migrálási szintet C értékre, hogy jelezze, hogy az áttelepítéshez nagy mennyiségű munka, teljes projektkezelés és migrálási támogatás szükséges. Az alapértelmezett érték 10 emberi nap. A konfigurációs irányelv HUMAN_DAYS_LIMIT
használatával véglegesen módosíthatja ezt az alapértelmezett értéket.
Ezt a sémaértékelést úgy fejlesztették ki, hogy a felhasználók eldöntsék, melyik adatbázist migrálják először, és mely csapatokat kell mozgósítani.
Konvertálás
A minimális állásidő-migrálás során a migrálási forrás megváltozik. Az egyszeri migrálás után az adatok és a séma tekintetében eltér a céltól. Az adatszinkronizálási fázis során győződjön meg arról, hogy a forrásban lévő összes módosítás rögzítése és alkalmazása a célra közel valós időben történik. Miután ellenőrizte, hogy minden módosítást alkalmaz-e a célra, átvághat a forrásból a célkörnyezetbe.
A migrálás ezen lépésében az Oracle-kód- és DDL-szkriptek a PostgreSQL-re lesznek konvertálva vagy lefordítva. Az Ora2Pg eszköz automatikusan PostgreSQL formátumban exportálja az Oracle-objektumokat. A létrehozott objektumok némelyike manuális módosítások nélkül nem fordítható le a PostgreSQL-adatbázisban.
Annak megértéséhez, hogy mely elemekhez van szükség manuális beavatkozásra, először fordítsa le az Ora2Pg által létrehozott fájlokat a PostgreSQL-adatbázisra. Ellenőrizze a naplót, majd végezze el a szükséges módosításokat, amíg a sémastruktúra nem kompatibilis a PostgreSQL szintaxisával.
Migrálási sablon létrehozása
Javasoljuk, hogy az Ora2Pg által biztosított áttelepítési sablont használja. Amikor a beállításokat --project_base
használja, és --init_project
az Ora2Pg létrehoz egy projektsablont egy munkafával, egy konfigurációs fájllal és egy szkripttel az összes objektum exportálásához az Oracle-adatbázisból. További információkért tekintse meg az Ora2Pg dokumentációját.
Használja az alábbi parancsot:
ora2pg --project_base /app/migration/ --init_project test_project
A példa kimenete a következő:
ora2pg --project_base /app/migration/ --init_project test_project
Creating project test_project.
/app/migration/test_project/
schema/
dblinks/
directories/
functions/
grants/
mviews/
packages/
partitions/
procedures/
sequences/
synonyms/
tables/
tablespaces/
triggers/
types/
views/
sources/
functions/
mviews/
packages/
partitions/
procedures/
triggers/
types/
views/
data/
config/
reports/
Generating generic configuration file
Creating script export_schema.sh to automate all exports.
Creating script import_all.sh to automate all imports.
A sources/
könyvtár tartalmazza az Oracle-kódot. A schema/
könyvtár tartalmazza a PostgreSQL-be portolt kódot. A könyvtár pedig reports/
tartalmazza a HTML-jelentéseket és a migrálási költségbecslést.
A projektstruktúra létrehozása után létrejön egy általános konfigurációs fájl. Adja meg az Oracle-adatbázis kapcsolatát és a megfelelő konfigurációs paramétereket a konfigurációs fájlban. A konfigurációs fájlról további információt az Ora2Pg dokumentációjában talál.
Oracle-objektumok exportálása
Ezután exportálja az Oracle-objektumokat PostgreSQL-objektumokként a fájl export_schema.sh futtatásával.
cd /app/migration/mig_project
./export_schema.sh
Futtassa manuálisan a következő parancsot.
SET namespace="/app/migration/mig_project"
ora2pg -p -t DBLINK -o dblink.sql -b %namespace%/schema/dblinks -c %namespace%/config/ora2pg.conf
ora2pg -p -t DIRECTORY -o directory.sql -b %namespace%/schema/directories -c %namespace%/config/ora2pg.conf
ora2pg -p -t FUNCTION -o functions2.sql -b %namespace%/schema/functions -c %namespace%/config/ora2pg.conf
ora2pg -p -t GRANT -o grants.sql -b %namespace%/schema/grants -c %namespace%/config/ora2pg.conf
ora2pg -p -t MVIEW -o mview.sql -b %namespace%/schema/mviews -c %namespace%/config/ora2pg.conf
ora2pg -p -t PACKAGE -o packages.sql -b %namespace%/schema/packages -c %namespace%/config/ora2pg.conf
ora2pg -p -t PARTITION -o partitions.sql -b %namespace%/schema/partitions -c %namespace%/config/ora2pg.conf
ora2pg -p -t PROCEDURE -o procs.sql -b %namespace%/schema/procedures -c %namespace%/config/ora2pg.conf
ora2pg -p -t SEQUENCE -o sequences.sql -b %namespace%/schema/sequences -c %namespace%/config/ora2pg.conf
ora2pg -p -t SYNONYM -o synonym.sql -b %namespace%/schema/synonyms -c %namespace%/config/ora2pg.conf
ora2pg -p -t TABLE -o table.sql -b %namespace%/schema/tables -c %namespace%/config/ora2pg.conf
ora2pg -p -t TABLESPACE -o tablespaces.sql -b %namespace%/schema/tablespaces -c %namespace%/config/ora2pg.conf
ora2pg -p -t TRIGGER -o triggers.sql -b %namespace%/schema/triggers -c %namespace%/config/ora2pg.conf
ora2pg -p -t TYPE -o types.sql -b %namespace%/schema/types -c %namespace%/config/ora2pg.conf
ora2pg -p -t VIEW -o views.sql -b %namespace%/schema/views -c %namespace%/config/ora2pg.conf
Az adatok kinyeréséhez használja az alábbi parancsot.
ora2pg -t COPY -o data.sql -b %namespace%/data -c %namespace/config/ora2pg.conf
Fájlok fordítása
Végül fordítsa le az összes fájlt az Azure Database for PostgreSQL-kiszolgálón. Dönthet úgy, hogy betölti a manuálisan létrehozott DDL-fájlokat, vagy a második szkript import_all.sh segítségével interaktívan importálja ezeket a fájlokat.
psql -f %namespace%\schema\sequences\sequence.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -L %namespace%\ schema\sequences\create_sequences.log
psql -f %namespace%\schema\tables\table.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -L %namespace%\schema\tables\create_table.log
Az adatimportálási parancs a következő:
psql -f %namespace%\data\table1.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -l %namespace%\data\table1.log
psql -f %namespace%\data\table2.sql -h server1-server.postgres.database.azure.com -p 5432 -U username@server1-server -d database -l %namespace%\data\table2.log
A fájlok fordítása közben ellenőrizze a naplókat, és javítsa ki azokat a szintaxisokat, amelyeket az Ora2Pg önmagában nem tudott konvertálni.
További információ: Oracle–Azure Database for PostgreSQL migrálási kerülő megoldások.
Migrate
Miután elvégezte a szükséges előfeltételeket, és elvégezte a bevezetési lépéseket, elindíthatja a sémát és az adatok migrálását.
Séma és adatok migrálása
A szükséges javítások elvégzése után az adatbázis stabil buildje üzembe helyezhető. Futtassa az importálási psql
parancsokat, és mutasson a módosított kódot tartalmazó fájlokra. Ez a feladat lefordítja az adatbázis-objektumokat a PostgreSQL-adatbázisra, és importálja az adatokat.
Ebben a lépésben a párhuzamosság szintjét valósíthatja meg az adatok importálása során.
Adatok szinkronizálása és átvágása
Az online (minimális állásidős) migrálások esetében az áttelepítési forrás továbbra is változik. Az egyszeri migrálás után az adatok és a séma tekintetében eltér a céltól.
Az adatszinkronizálási fázis során győződjön meg arról, hogy a forrásban lévő összes módosítás rögzítése és alkalmazása a célra közel valós időben történik. Miután ellenőrizte, hogy minden módosítás alkalmazva van-e, átvághat a forrásból a célkörnyezetbe.
Online migráláshoz forduljon AskAzureDBforPostgreSQL@service.microsoft.com a támogatási szolgálathoz.
Az Ora2Pg-t használó delta/növekményes migrálásban minden táblához használjon dátum, idő vagy más paraméter alapján szűrőket (kivágó) lekérdezést. Ezután fejezze be az áttelepítést egy második lekérdezéssel, amely a fennmaradó adatokat migrálja.
A forrásadattáblában először migrálja az összes előzményadatot. Példa:
select * from table1 where filter_data < 01/01/2019
A kezdeti migrálás óta bekövetkezett változásokat az alábbihoz hasonló parancs futtatásával kérdezheti le:
select * from table1 where filter_data >= 01/01/2019
Ebben az esetben azt javasoljuk, hogy mindkét oldalon, a forráson és a célon ellenőrizze az adatok paritását.
A migrálás után
A migrálási szakasz után végezze el a migrálás utáni feladatokat, hogy minden a lehető leggördülékenyebben és leghatékonyabban működjön.
Alkalmazások szervizelése
Az adatok célkörnyezetbe való migrálása után a forrást korábban használó összes alkalmazásnak el kell kezdenie a cél használatát. A beállításhoz időnként módosítani kell az alkalmazásokat.
Teszt
Az adatok célba való migrálása után futtasson teszteket az adatbázisokon annak ellenőrzéséhez, hogy az alkalmazások megfelelően működnek-e a célokkal. Győződjön meg arról, hogy a forrás és a cél megfelelően migrálva van, ha manuális adatérvényesítési szkripteket futtat az Oracle-forrás- és PostgreSQL-céladatbázisokon.
Ideális esetben, ha a forrás- és céladatbázisok hálózati elérési úttal rendelkeznek, az Ora2Pg-t kell használni az adatérvényesítéshez. A művelet segítségével TEST
meggyőződhet arról, hogy az Oracle-adatbázis összes objektuma létrejött a PostgreSQL-ben.
Futtassa ezt a parancsot:
ora2pg -t TEST -c config/ora2pg.conf > migration_diff.txt
Optimalizálás
A migrálás utáni fázis kulcsfontosságú az adatok pontosságával kapcsolatos problémák egyeztetéséhez és a teljesség ellenőrzéséhez. Ebben a fázisban a számítási feladat teljesítményproblémáival is foglalkozik.
Migrálási eszközök
A migrálási forgatókönyvről az alábbi forrásokban talál további információt. Támogatják a valós migrálási projektek bevonását.
Erőforrás | Leírás |
---|---|
Oracle–Azure PostgreSQL migrálási szakácskönyv | Ez a dokumentum segít az építészeknek, tanácsadóknak, adatbázis-rendszergazdáknak és a kapcsolódó szerepköröknek a számítási feladatok Oracle-ből Azure Database for PostgreSQL-be való migrálásában az Ora2Pg használatával. |
Oracle–Azure PostgreSQL migrálási kerülő megoldások | Ez a dokumentum segítséget nyújt az építészeknek, tanácsadóknak, adatbázis-rendszergazdáknak és a kapcsolódó szerepköröknek a számítási feladatok Oracle-ből Azure Database for PostgreSQL-be való migrálása során felmerülő problémák gyors megoldásában vagy megoldásában. |
Az Ora2Pg telepítésének lépései Windows vagy Linux rendszeren | Ez a dokumentum gyors telepítési útmutatót nyújt a sémák és adatok Oracle-ből az Azure Database for PostgreSQL-be való migrálásához a Windows vagy Linux rendszeren futó Ora2Pg használatával. További információkért tekintse meg az Ora2Pg dokumentációját. |
A Data SQL Engineering csapata kifejlesztette ezeket az erőforrásokat. Ennek a csapatnak az alapvető chartája az adatplatform-migrálási projektek komplex modernizálásának feloldása és felgyorsítása a Microsoft Azure adatplatformra.
További támogatás
Az Ora2Pg eszközhasználatán túlmutató migrálási segítségért forduljon @Ask Azure DB for PostgreSQL-hez.
Következő lépések
Az adatbázis- és adatmigráláshoz, valamint a speciális feladatokhoz kapcsolódó szolgáltatások és eszközök mátrixát lásd : Szolgáltatások és eszközök az adatmigráláshoz.
Dokumentáció: