Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Schemakonverteringsfunktionen Oracle till Azure Database for PostgreSQL i Visual Studio Code PostgreSQL-tillägget hjälper dig att konvertera dina befintliga Oracle-databasschemaobjekt till PostgreSQL-kompatibelt schema. Den här funktionen är utformad för relationsscheman och skapar ett konverterat schema för Azure Database for PostgreSQL flexibel server.
Verktyget tillhandahåller ett projektbaserat användargränssnitt för att automatisera schemakonverteringen. Om vissa objekt inte kan konverteras automatiskt flaggar verktyget dem som granskningsuppgifter, vilket du kan lösa manuellt med hjälp av GitHub Copilot-agent läge.
Architecture
Schemakonverteringsprocessen omfattar flera komponenter som arbetar tillsammans:
- Oracle-källdatabas: Din befintliga Oracle-databas som innehåller schemat som ska konverteras.
- Visual Studio Code PostgreSQL-tillägget: Det primära gränssnittet för att hantera konverteringsprocessen.
- Azure Database for PostgreSQL flexibel server: Är värd för de scratch-scheman som används för validering och testning.
- Microsoft Foundry: Tillhandahåller de språkmodeller som driver AI-driven schematransformering.
- Schemakonverteringsagenter: AI-baserade agenter som hanterar den automatiserade konverteringsprocessen.
Så här fungerar det
Schemakonverteringsprocessen använder en intelligent metod med flera nivåer som kombinerar automatiserad omvandling med mänsklig tillsyn:
- Anslutning och identifiering: Verktyget ansluter till Oracle-databasen och katalogiserar alla schemaobjekt. Den analyserar deras struktur, beroenden och komplexitet för att skapa en konverteringsplan.
- AI-baserad transformering: Schemakonverteringsagenter använder språkmodeller som finns i Microsoft Foundry för att omvandla Oracle-specifika konstruktioner till PostgreSQL-kompatibla motsvarigheter. AI:n tar hänsyn till kontext, relationer och plattformens bästa praxis.
- Validering i scratchscheman: Verktyget testar alla konverterade objekt i scratchscheman på din Azure Database for PostgreSQL – flexibel server. Det här steget verifierar syntaxens korrekthet och kompatibilitet innan den slutliga utdatagenereringen.
- Generering av granskningsuppgifter: Verktyget markerar objekt som inte kan helautomatiseras eller som kräver mänsklig bedömning som granskningsuppgifter. Dessa objekt kan innehålla komplex affärslogik eller Oracle-specifika funktioner som behöver manuell uppmärksamhet.
- Guided resolution: GitHub Copilot-agent-läge ger hjälp med att slutföra granskningsuppgifter. Den erbjuder sammanhangsmedvetna förslag och metodtips för flexibel Azure Database for PostgreSQL-server som hjälper dig att fatta välgrundade beslut.
-
Utdatagenerering: Verktyget konverterar korrekt verifierade objekt till organiserade PostgreSQL-filer
.sqlsom är redo för distribution till målmiljön.
Installera tillägget
Schemakonverteringsfunktionen Oracle till PostgreSQL är inbyggd i PostgreSQL-tillägget för Visual Studio Code. Du behöver inte installera ett separat tillägg.
Installationssteg
-
Open Extensions Marketplace: I Visual Studio Code väljer du ikonen Tillägg i aktivitetsfältet till vänster eller använder kortkommandot
Ctrl+Shift+X(Windows/Linux) ellerCmd+Shift+X(macOS). -
Sök efter tillägget: I sökrutan Tillägg på Marketplace anger du
PostgreSQL(eller tilläggs-IDms-ossdata.vscode-pgsql) för att hitta tillägget. - Installera tillägget: Leta upp PostgreSQL publicerat av Microsoft och välj sedan Install. Flera PostgreSQL-tillägg är tillgängliga på Marketplace, så kontrollera att utgivaren är Microsoft innan du installerar.
- Access Schema Conversion: När tillägget har installerats visas en elefantikon i aktivitetsfältet Visual Studio Code. Välj ikonen för att öppna PostgreSQL-tillägget och få åtkomst till funktionen Schemakonvertering.
Arbetsflöde för schemakonvertering
Det här avsnittet förklarar de centrala begreppen som används i arbetsflödet för schemakonvertering från Oracle till Azure Database for PostgreSQL, inklusive konverteringsenheter (scheman, tabeller, index, vyer och procedurer), granskningsuppgifter för mänsklig tillsyn, validering mot en temporär databas, AI-baserade agenter för schemakonvertering och de resulterande SQL-artefakterna för PostgreSQL. Genom att förstå dessa begrepp kan du tolka konverteringsresultat, prioritera och lösa flaggade objekt och förbereda konverterade filer för distribution till azure database for PostgreSQL – flexibel server.
Scratch-databas
Verktyget för schemakonvertering använder en Azure Database for PostgreSQL flexibel server som en tillfällig valideringsmiljö. På den servern skapar verktyget ett eller flera scratch-scheman, som är kortlivade PostgreSQL-scheman som innehåller konverterade objekt så att verktyget kan testa dem utan att påverka dina produktionsdata.
Med hjälp av scratch-scheman i en scratch-databas kan verktyget kontrollera att:
- Konverterade objekt är syntaktiskt korrekta.
- Beroenden mellan objekt löses i rätt ordning.
- Objektdefinitioner är fortfarande kompatibla med PostgreSQL-målversionen.
- Funktionerna i Azure Database for PostgreSQL Flexible Server tillämpas korrekt.
Note
Den anslutande användaren måste ha CREATE behörigheter på scratch-databasen så att verktyget kan skapa och ta bort scratch-scheman (med prefixet _mig_scratch_) vid behov.
Granska uppgifter
Verktyget flaggar objekt för manuell granskning när AI:n inte kan konvertera ett objekt helt eller rekommenderar att du bekräftar resultatet. Vanliga granskningsuppgifter är:
- Komplexa PL/SQL-procedurer som behöver justeras manuellt.
- Oracle-specifika datatyper som har flera PostgreSQL-alternativ.
- Anpassade funktioner som innehåller Oracle-specifik logik.
Mer information om att granska aktivitetsprioriteringar och genererade utdatamappar finns i Granska aktiviteter och utdatamappar för Oracle för att Azure Database for PostgreSQL flexibel serverschemakonvertering.
GitHub Copilot-agent-läge
GitHub-Copilot-agent läge är en integrerad Visual Studio Code funktion som ger guidade uppmaningar som hjälper dig att slutföra granskningsuppgifter och justera det konverterade schemat efter dina programkrav. Erbjudanden för agentläge:
- Sammanhangsmedvetna förslag på schemaändringar.
- Rekommendationer för bästa praxis för Azure Database for PostgreSQL flexibel server.
- Kodkomplettering för komplexa transformeringar.
- Integrering med ditt befintliga arbetsflöde för utveckling.
Oracle-anslutningslägen
Verktyget för schemakonvertering stöder två anslutningslägen för att ansluta till din Oracle-källdatabas: tunn och tjock. Att förstå skillnaden hjälper dig att välja rätt läge för din miljö.
Tunt klientläge (förvalt)
Tunt läge ansluter direkt till Oracle Database utan ytterligare Oracle-klientbibliotek. Det här läget är standard och kräver ingen extra installation.
- Kräver ingen Oracle Instant Client-installation.
- Stöder Oracle Database 12.1 och senare.
- Passar de flesta schemakonverteringsscenarier.
- Ansluter med hjälp av standard-TCP/IP-nätverk.
Tjockt klientläge
Tjockt läge använder Oracle Instant Client-bibliotek för att ansluta till Oracle Database. Verktyget för schemakonvertering identifierar när tjockt läge behövs baserat på oracle-nätverkskonfigurationen och växlar till det automatiskt.
När tjockt klientläge krävs
Du kan avgöra om tjockt klientläge krävs genom att kontrollera Oracle-nätverkskonfigurationsfilerna i källmiljön. Leta efter följande parametrar i sqlnet.ora filen (finns vanligtvis i $ORACLE_HOME/network/admin/):
| Parameter | Anger att tjockt läge krävs |
|---|---|
SQLNET.CRYPTO_CHECKSUM_CLIENT |
Ange till REQUIRED eller REQUESTED för intern nätverkskryptering |
SQLNET.ENCRYPTION_CLIENT |
Ange till REQUIRED eller REQUESTED för intern nätverkskryptering |
Om någon av dessa parametrar har konfigurerats i oracle-källmiljön krävs tjockt klientläge. Verktyget för schemakonvertering identifierar den här konfigurationen och växlar automatiskt till tjockt läge. Kontrollera att Oracle Instant Client är installerat på den dator där Visual Studio Code körs innan du påbörjar konverteringen.
Installera Oracle Instant Client
Om du vill använda tjockt klientläge installerar du Oracle Instant Client på den dator där Visual Studio Code och schemakonverteringsverktyget körs. Schemakonvertering stöds endast i Windows och Linux .
- Ladda ned Oracle Instant Client Basic - eller Basic Light-paketet från Oracles webbplats för ditt operativsystem.
- Extrahera paketet till en katalog på datorn.
- Lägg till katalogen Instant Client i systemmiljövariabeln
PATH:-
Windows: Lägg till katalogen Instant Client i variabeln
PATHviaMiljövariabler för > eller med hjälp av PowerShell. -
Linux: Lägg till katalogen Instant Client i
PATHoch angeLD_LIBRARY_PATHmiljövariabeln så att den innehåller katalogen. Kontrollera attlibaiobiblioteket är installerat.
-
Windows: Lägg till katalogen Instant Client i variabeln
- Starta om Visual Studio Code för att hämta de uppdaterade miljövariablerna.
Autentisering för Microsoft Foundry
Verktyget för schemakonvertering stöder två autentiseringsmetoder för att ansluta till språkmodeller i Microsoft Foundry:
API-nyckelautentisering
API-nyckelautentisering använder en distributionsspecifik nyckel för att auktorisera begäranden. Den här metoden är enkel och lämplig för utvecklings- och testscenarier.
Microsoft Entra ID-autentisering
Microsoft Entra ID autentisering ger tokenbaserad, identitetsdriven åtkomst till Microsoft Foundry utan att hantera API-nycklar. Den här metoden rekommenderas för produktionsmiljöer och organisationer med centraliserad identitetshantering.
Så här använder du Microsoft Entra ID-autentisering:
- Tilldela den roll som krävs: Kontrollera att den inloggade användaren eller tjänstens huvudnamn har rollen Foundry User (tidigare Azure AI User) på Microsoft Foundry-resursen som är värd för modelldistributionen. Tilldela rollen i Azure-portalen under Åtkomstkontroll (IAM). Mer information finns i Rollbaserad åtkomstkontroll för Microsoft Foundry.
-
Logga in på Azure i Visual Studio Code: Använd kommandot Azure: Sign In från kommandopaletten (
Ctrl+Shift+P) för att autentisera dig med ditt Microsoft Entra ID-konto. - Välj Entra ID-autentisering: I konfigurationssteget för språkmodell i Migration Wizard väljer du Microsoft Entra ID som autentiseringsmetod i stället för API-nyckel.
- Ange slutpunkten: Ange URL:en för din Microsoft Foundry-slutpunkt. Verktyget hämtar autentiseringstoken automatiskt från den inloggade sessionen.
Note
Microsoft Entra ID autentisering kräver tillägget Azure account i Visual Studio Code. Tillägget måste loggas in med en identitet som har rätt rolltilldelning för resursen Microsoft Foundry.
Säkerhet och nätverk
När du använder funktionen för schemakonvertering kontrollerar du att Visual Studio Code-miljön på ett säkert sätt kan ansluta till både oracle-källdatabasen och azure database for PostgreSQL-instansen för flexibel server som du använder som scratch-databas.
Microsoft rekommenderar att du ansluter till din Microsoft Foundry-resurs med hjälp av en privat slutpunkt. Mer information finns i Konfigurera en privat länk för Microsoft Foundry.
Mer information om hur du skyddar dina Microsoft Foundry-anslutningar finns i Data, sekretess och säkerhet för Azure Direct Models i Microsoft Foundry.
Important
Kundens valideringsansvar: Samma AI-motor som används för schemakonvertering kan också hjälpa till med validering och granskning. AI-system kan ibland bekräfta sina egna misstag. För att förhindra dataförlust, funktionella regressioner eller säkerhetsproblem kan du oberoende verifiera alla konverterade objekt och granska aktivitetsmatchningar innan du distribuerar till produktion. Som en del av dina kontroller bör du överväga att aktivera filtrering av Foundry-innehåll för att minska skadliga eller oönskade utdata. Vägledning finns i Innehållsfiltrering i Foundry.
Varför ska du använda funktionen för schemakonvertering?
Om du konverterar Oracle-scheman till Azure Database for PostgreSQL effektiviseras migreringen och moderniseringen. Det minskar manuella ansträngningar och risker genom att automatisera transformeringar, validera resultat i en scratch-databas och tillhandahålla AI-assisterad granskning och Azure-optimerade utdata som är redo för distribution.
- Automatiserad konvertering: Minskar manuella ansträngningar genom att automatiskt konvertera kompatibla schemaobjekt.
- AI-baserad transformering: Använder språkmodeller som finns i Microsoft Foundry för kontextmedvetna konverteringsbeslut.
- Valideringsmetoden först: Använder scratch-scheman för att bekräfta att konverterade objekt fungerar korrekt.
- Integrerat arbetsflöde: Fungerar i Visual Studio Code utvecklingsmiljön.
- Flexibel Oracle-anslutning: Stöder både tunna och tjocka klientlägen för anslutning till Oracle-databaser.
- Flera autentiseringsalternativ: Stöd för autentisering med API-nycklar och Microsoft Entra ID för Microsoft Foundry.
- Granskning och förfining: Ger tydlig vägledning för manuella granskningsuppgifter.
- Azure-optimering: Utformad för Azure Database for PostgreSQL – flexibel server.
Schemaobjekt som stöds
Konverteringsverktyget stöder ett brett utbud av Oracle-schema- och kodobjekt, inklusive datadefinitionselement, komponenter på schemanivå och procedurkod. Du kan konvertera många vanliga objekt automatiskt, men du kan behöva granska eller anpassa mappningen manuellt för vissa Oracle-specifika funktioner eller egna tillägg. Detaljerade listor över objekt som stöds och kända begränsningar finns i avsnitten i den här artikeln.
Så här skapas konverteringar
Verktyget för schemakonvertering kombinerar AI-baserad översättning med automatiserad validering för att ge tillförlitliga resultat. Microsoft Foundry-modeller översätter Oracle DDL till PostgreSQL. Verktyget kompilerar sedan varje konverterat objekt mot ett scratch-schema i ditt mål Azure Database for PostgreSQL flexibel server, kör statisk analys och tillämpar automatiserade korrigeringar för vanliga problem. De återstående stegen i pipelinen – källparsning, extrahering av metadata och skriptgenerering – körs som förutsägbara regelbaserade steg.
För PL/pgSQL-rutiner lägger verktyget till en kontroll av body-semantik som använder plpgsql_check tillägget på scratch-databasen. När kontrollen hittar en defekt som vanlig kompilering inte fångar, tar verktyget bort den rutinen och skickar tillbaka den via AI-korrigeringsloopen i stället för att skriva den till utdata. Mer information finns i Verifiera konverterad PL/pgSQL med plpgsql_check.
Den här metoden använder AI där den lägger till mest värde och håller resten av arbetsflödet deterministiskt och verifierbart. Objekt som inte kan verifieras fullständigt flaggas som granskningsuppgifter så att du kan åtgärda dem innan du tillämpar det konverterade schemat. Oracle-funktioner som inte har någon praktisk PostgreSQL-motsvarighet finns i Oracle för att Azure Database for PostgreSQL begränsningar för flexibel serverschemakonvertering.
Databasschemaobjekt
Konverteringsverktyget stöder följande Oracle-databasobjekt:
- Tabeller: Tabelldefinitioner, kolumnspecifikationer och begränsningar på tabellnivå.
- Begränsningar: Primära nycklar, sekundärnycklar, unika begränsningar och kontrollbegränsningar.
- Index: B-trädindex, unika index och sammansatta index.
- Sekvenser: Oracle-sekvensobjekt för autoinkrementeringsvärden.
- Utlösare: Utlösare på radnivå och satsnivå.
- Vyer: Standardvyer för databaser.
- Materialiserade vyer: Oracle-materialiserade vyer och uppdateringslogik.
- Scheman: Objekt på schemanivå och organisation.
- Synonymer: Offentliga och privata synonymer (med begränsningar).
Oracle-kodobjekt
Konverteringsverktyget stöder följande Oracle-kodkonstruktioner:
- Utlösare: Komplex utlösarlogik och händelsehantering.
- Paket: Oracle-paketspecifikationer och paketkroppar.
- Funktioner: Användardefinierade funktioner med komplex logik.
- Lagrade procedurer: Oracle-lagrade procedurer och parameterhantering.
-
Typer och samlingar: Oracle-objekttyper,
TYPE BODYmedlemsmetoder,VARRAYkapslade tabeller ochSUBTYPEdeklarationer.
Konvertering av paket
Oracle-paket har ingen direkt PostgreSQL-motsvarighet, så verktyget konverterar varje del av ett paket till en PostgreSQL-konstruktion som bevarar den anropsbara ytan:
-
Konstanter: Verktyget konverterar konstanter för offentliga paket till
IMMUTABLEgetter-funktioner. -
Samlingar och markörer: Kapslade tabeller och
VARRAYblir matrisdomäner, därVARRAYdet också finns en längdbegränsning. Strängnyckelbaserade associativa matriser blirjsonbdomäner ochREF CURSORblirrefcursor. - Pakettillstånd: Offentliga paketvariabler blir getter- och setterpar som backas upp av en sessionsinställning som emulerar Oracle-paketsessionstillståndet.
-
Undantag: Användardefinierade undantag blir funktioner som returnerar ett
SQLSTATEvärde. Ett undantag har till exempel initierats med-20001mappar tillU0001. - Paket med endast specifikation: Ett paket som inte har någon brödtext konverteras till stubs som genererar ett fel när det anropas, så den anropsbara ytan finns fortfarande.
Hierarkiska frågor
Oracle-hierarkiska frågor konverteras till vanliga PostgreSQL-tabelluttryck WITH RECURSIVE . Verktyget konverterar CONNECT BY och PRIOR till den rekursiva medlemskopplingen, START WITH till fästpunkten och LEVEL till en djupräknare. Den konverterar SYS_CONNECT_BY_PATHockså , CONNECT_BY_ROOT, ORDER SIBLINGS BYoch NOCYCLE. Efter konverteringen verifierar verktyget att det genererade objektet har den förväntade rekursiva formen och försöker konvertera igen om det inte gör det.
Transaktionskontroll
En rutin som använder PRAGMA AUTONOMOUS_TRANSACTION behåller sin ursprungliga Oracle-objektklass, så en funktion förblir en funktion och befintliga anropare som använder den i ett SELECT eller -uttryck fortsätter att fungera. Det autonoma arbetet körs på en separat anslutning via dblink tillägget, så se till att dblink det är tillgängligt på målservern. En rutin som använder en explicit COMMIT eller ROLLBACK utan denna pragma konverteras till en procedur, eftersom PostgreSQL tillåter transaktionskontroll där.
Verifiera konverterad PL/pgSQL med plpgsql_check
PostgreSQL verifierar inte helt en PL/pgSQL-rutintext när du skapar den.
CREATE FUNCTION bekräftar att brödtexten parsar, men den löser inte de tabeller, kolumner och variabler som brödtexten refererar till. En rutin som läser en kolumn som inte finns skapas och misslyckas bara första gången den körs. I en migrering omvandlar det en konverteringsdefekt till en produktionsincident, eftersom distributionen ser ren ut.
Schemakonverteringsverktyget stänger det gapet med plpgsql_check tillägget. När en konverterad rutin har kompilerats på scratch-databasen kör verktyget en kontroll av body-semantik mot den. När kontrollen hittar en verklig defekt tar verktyget bort rutinen och returnerar den till AI-korrigeringsloopen, som reparerar den och kompilerar den igen. Endast rutiner som skickas skrivs till konverteringsutdata.
Den här valideringen är den främsta orsaken till att en konverterad rutin är tillförlitlig innan du distribuerar den. Behandla plpgsql_check som en obligatorisk del av konverteringsmiljön i stället för ett valfritt extra.
Var kontrollen körs
Kontrollen körs helt på den scratch-databas som verktyget skapar under konverteringen. Måldatabasen behöver plpgsql_check inte vid körning, och inget som verktyget genererar beror på den. Tillägget är en kvalitetsgrind för konverteringstid, inte ett körningsberoende.
Vad händer när tillägget inte är tillgängligt
Kontrollen är inte öppen. När plpgsql_check inte är tillåten eller inte är tillgänglig på den server som är värd för den tillfälliga databasen hoppar verktyget över kontrollen och konverteringen fortsätter. Inget fel och ingen varning visas i schemakonverteringsrapporten, så en körning utan tillägget ser likadan ut som en körning med den.
Rutiner kompileras fortfarande, så syntaxfel fångas fortfarande. Det du förlorar är den djupare kroppsverifieringen, så defekter som en olöst kolumn- eller tabellreferens kan nå de genererade utdata och ytor senare vid körning. Bekräfta att tillägget är tillgängligt innan du förlitar dig på konverteringsresultat.
Gör kontrollen tillgänglig
plpgsql_checkstöds på Azure Database for PostgreSQL flexibel server för PostgreSQL 14 och senare. Tillåtlistning av tillägget, lägg till det i shared_preload_librariesoch starta om servern innan du konverterar. Verktyget installerar sedan tillägget på den tillfälliga databasen åt dig. Den fullständiga proceduren finns i Metodtips för Oracle för att Azure Database for PostgreSQL flexibel serverschemakonvertering.
Oracle-versioner som stöds
Det här avsnittet sammanfattar databasmotorversionerna som stöder automatisk schemakonvertering och belyser kompatibilitetsöverväganden. Använd de Oracle- och PostgreSQL-versioner som stöds för bästa resultat. Verifiera konverteringar i en icke-produktionstestmiljö och använd den senaste mindre korrigeringen för varje större version som stöds. Om din miljö använder en version som inte stöds eller innehåller oracle-patentskyddade funktioner kan du behöva utföra extra manuell mappning eller granskning före distributionen.
Följande Oracle-databasversioner stöder schemakonvertering:
- Oracle 21c
- Oracle 19c
- Oracle 18c
- Oracle 12.2
- Oracle 12.1
Feedback och support
För buggar, funktionsbegäranden och problem som rör schemakonverteringsfunktionen eller PostgreSQL-tillägget använder du det inbyggda feedbackverktyget i Visual Studio Code. Du kan komma åt det här verktyget på två sätt:
Hjälp-menyn
Gå till Hjälp>Rapportera problem.
Kommandopalett
- Öppna kommandopaletten med
Ctrl+Shift+P(Windows/Linux) ellerCmd+Shift+P(macOS). - Kör kommandot: PGSQL: Rapportproblem.
När du skapar ditt problem eller ger feedback ska du inkludera Schema Conversion: som ett prefix i rubriken. Det här prefixet hjälper utvecklingsteamet att snabbt identifiera och prioritera schemakonverteringsrelaterad feedback. Den här feedbackmekanismen hjälper utvecklingsteamet att kontinuerligt förbättra funktionen för schemakonvertering och åtgärda eventuella problem som du stöter på under dina migreringsprojekt från Oracle till Azure Database for PostgreSQL.
Relaterat innehåll
- Metodtips för oracle att Azure Database for PostgreSQL flexibel serverschemakonvertering
- Granska aktiviteter och utdatamappar för Oracle för att Azure Database for PostgreSQL flexibel serverschemakonvertering
- Begränsningar för konvertering av schemakonvertering för Oracle till Azure Database for PostgreSQL flexibel server