Was ist die Konversion des Schemas von Oracle zu Azure Database for PostgreSQL Flexible Server?

Das Oracle-zu-Azure Database for PostgreSQL-Schemakonvertierungsfeature in der PostgreSQL-Erweiterung für Visual Studio Code hilft Ihnen, Ihre vorhandenen Oracle-Datenbank-Schemaobjekte in ein mit PostgreSQL kompatibles Schema zu konvertieren. Diese Funktion ist für relationale Schemata konzipiert und erzeugt ein konvertiertes Schema für Azure Database for PostgreSQL – Flexible Server.

Das Tool bietet eine projektbasierte Benutzeroberfläche zum Automatisieren der Schemakonvertierung. Wenn bestimmte Objekte nicht automatisch konvertiert werden können, kennzeichnet das Tool sie als Überprüfungsaufgaben, die Sie manuell mithilfe des GitHub-Copilot-Agent-Modus auflösen können.

Diagramm der Oracle-Zu-Azure Database for PostgreSQL Schemakonvertierungsarchitektur.

Aufbau

Der Schemakonvertierungsprozess umfasst mehrere Komponenten, die zusammenarbeiten:

  • Oracle-Quelldatenbank: Ihre vorhandene Oracle-Datenbank, die das zu konvertierende Schema enthält.
  • Visual Studio Code PostgreSQL-Erweiterung: Die primäre Schnittstelle für die Verwaltung des Konvertierungsprozesses.
  • Azure Database for PostgreSQL Flexible Server: Beherbergt die Arbeitsschemas, die für Validierung und Tests verwendet werden.
  • Microsoft Foundry: Stellt die Sprachmodelle bereit, die KI-gesteuerte Schematransformation unterstützen.
  • Agenten für die Schemakonvertierung: KI-gestützte Agenten, die den automatisierten Konvertierungsprozess durchführen.

So funktioniert es

Der Schemakonvertierungsprozess verwendet einen intelligenten, multistage Ansatz, der die automatisierte Transformation mit der menschlichen Aufsicht kombiniert:

  • Verbindung und Ermittlung: Das Tool stellt eine Verbindung mit Ihrer Oracle-Datenbank und katalogisiert alle Schemaobjekte dar. Sie analysiert ihre Struktur, Abhängigkeiten und Komplexität, um einen Konvertierungsplan zu erstellen.
  • AI-basierte Transformation: Schemakonvertierungs-Agents verwenden sprachmodelle, die in Microsoft Foundry gehostet werden, um Oracle-spezifische Konstrukte in PostgreSQL-kompatible Entsprechungen zu transformieren. Die KI berücksichtigt Kontext, Beziehungen und bewährte Methoden der Plattform.
  • Validation in Scratch-Schemas: Das Tool testet alle konvertierten Objekte in Scratch-Schemas auf Ihrem Azure Database for PostgreSQL flexiblen Server. In diesem Schritt wird die Syntaxkorrektur und Kompatibilität vor der endgültigen Ausgabegenerierung überprüft.
  • Generierung von Prüfaufgaben: Das Tool kennzeichnet Objekte, die nicht vollständig automatisiert verarbeitet werden können oder menschliches Urteilsvermögen erfordern, als Prüfaufgaben. Diese Objekte können komplexe Geschäftslogik oder Oracle-spezifische Features umfassen, die manuelle Aufmerksamkeit erfordern.
  • Angeleitete Lösung: Der GitHub Copilot Agent-Modus unterstützt beim Erledigen von Prüfaufgaben. Es bietet kontextbezogene Vorschläge und Azure Database für PostgreSQL flexible Server best Practices, die Ihnen helfen, fundierte Entscheidungen zu treffen.
  • Ausgabegenerierung: Das Tool konvertiert erfolgreich überprüfte Objekte in organisierte PostgreSQL-Dateien .sql , die für die Bereitstellung in Ihrer Zielumgebung bereit sind.

Installieren der Erweiterung

Das Oracle-zu-PostgreSQL-Schemakonvertierungsfeature ist in die erweiterung PostgreSQL für Visual Studio Code integriert. Sie müssen keine separate Erweiterung installieren.

Installationsschritte

  1. Öffnen Sie den Erweiterungs-Marketplace: Wählen Sie in Visual Studio Code auf der Aktivitätsleiste auf der linken Seite das Symbol "Erweiterungen" aus, oder verwenden Sie die Tastenkombination Ctrl+Shift+X (Windows/Linux) oder Cmd+Shift+X (macOS).
  2. Suchen Sie nach der Erweiterung: Geben Sie PostgreSQL im Suchfeld "Extensions Marketplace" (oder die Erweiterungs-ID ms-ossdata.vscode-pgsql) die Erweiterung ein, um die Erweiterung zu finden.
  3. Installieren Sie die Erweiterung: Suchen Sie in den Suchergebnissen PostgreSQL veröffentlicht von Microsoft, und wählen Sie dann Install aus. Es stehen mehrere PostgreSQL-Erweiterungen im Marketplace zur Verfügung. Stellen Sie daher sicher, dass der Herausgeber Microsoft ist, bevor Sie die Installation ausführen.
  4. Access-Schemakonvertierung: Nachdem die Erweiterung installiert wurde, wird in der Visual Studio Code Aktivitätsleiste ein Elefantensymbol angezeigt. Wählen Sie das Symbol aus, um die PostgreSQL-Erweiterung zu öffnen und auf das Schemakonvertierungsfeature zuzugreifen.

Schemakonvertierungs-Workflow

In diesem Abschnitt werden die Kernkonzepte erläutert, die im Workflow zur Schemakonvertierung von Oracle zu Azure Database for PostgreSQL verwendet werden, einschließlich Konvertierungseinheiten (Schemas, Tabellen, Indizes, Ansichten und Prozeduren), Prüfaufgaben zur menschlichen Kontrolle, der Validierung anhand einer Scratch-Datenbank, KI-gestützten Agenten für die Schemakonvertierung und der daraus resultierenden PostgreSQL-SQL-Artefakte. Das Verständnis dieser Konzepte hilft Ihnen, Konvertierungsergebnisse zu interpretieren, gekennzeichnete Elemente zu priorisieren und aufzulösen und konvertierte Dateien für die Bereitstellung in Azure Database für PostgreSQL flexiblen Server vorzubereiten.

Scratch-Datenbank

Das Schemakonvertierungstool verwendet einen Azure Database for PostgreSQL flexiblen Server als temporäre Überprüfungsumgebung. Innerhalb dieses Servers erstellt das Tool ein oder mehrere Scratch-Schemas, bei denen es sich um kurzlebige PostgreSQL-Schemas handelt, die konvertierte Objekte enthalten, damit das Tool sie testen kann, ohne dass sich dies auf Ihre Produktionsdaten auswirkt.

Mithilfe von Entwurfsschemas in einer Entwurfsdatenbank kann das Tool folgendes überprüfen:

  • Konvertierte Objekte sind syntaktisch korrekt.
  • Abhängigkeiten zwischen Objekten werden in der richtigen Reihenfolge aufgelöst.
  • Objektdefinitionen bleiben mit der Ziel-PostgreSQL-Version kompatibel.
  • Die Features von Azure Database for PostgreSQL – Flexible Server werden korrekt angewendet.

Note

Der Benutzer muss über CREATE Berechtigungen für die Entwurfsdatenbank verfügen, damit das Tool bei Bedarf Entwurfsschemas erstellen und löschen kann, die das Präfix _mig_scratch_ tragen.

Überprüfen von Aufgaben

Das Tool kennzeichnet Elemente für die manuelle Überprüfung, wenn die KI ein Objekt nicht vollständig konvertieren kann oder empfiehlt, das Ergebnis zu bestätigen. Allgemeine Überprüfungsaufgaben umfassen:

  • Komplexe PL/SQL-Prozeduren, die manuelle Anpassung erfordern.
  • Oracle-spezifische Datentypen mit mehreren PostgreSQL-Alternativen.
  • Benutzerdefinierte Funktionen, die Oracle-spezifische Logik enthalten.

Weitere Informationen zum Überprüfen von Aufgabenprioritäten und generierten Ausgabeordnern finden Sie unter "Überprüfen von Aufgaben und Ausgabeordnern für Oracle zum Azure Database for PostgreSQL flexiblen Serverschemakonvertierung".

GitHub Copilot-Agent-Modus

Der GitHub-Copilot-Agent-Modus ist ein integriertes Visual Studio Code-Feature, das geführte Eingabeaufforderungen bereitstellt, mit denen Sie Überprüfungsaufgaben ausführen und das konvertierte Schema an Ihre Anwendungsanforderungen ausrichten können. Agentmodus bietet:

  • Kontextbezogene Vorschläge für Schemaänderungen.
  • Empfehlungen zu bewährten Methoden für Azure Database for PostgreSQL – Flexibler Server.
  • Codeabschluss für komplexe Transformationen.
  • Integration in Ihren vorhandenen Entwicklungsworkflow.

Oracle-Konnektivitätsmodi

Das Schemakonvertierungstool unterstützt zwei Verbindungsmodi für die Verbindung mit Ihrer Oracle-Quelldatenbank: dünn und dick. Wenn Sie den Unterschied verstehen, können Sie den richtigen Modus für Ihre Umgebung auswählen.

Thin Client-Modus (Standard)

Der Dünnmodus stellt eine direkte Verbindung mit Oracle Database ohne zusätzliche Oracle-Clientbibliotheken bereit. Dieser Modus ist die Standardeinstellung und erfordert keine zusätzliche Einrichtung.

  • Erfordert keine Oracle Instant Client-Installation.
  • Unterstützt Oracle Database 12.1 und höher.
  • Passt zu den meisten Schemakonvertierungsszenarien.
  • Stellt über ein Standard-TCP/IP-Netzwerk eine Verbindung her.

Thick Client-Modus

Der Thick Mode verwendet die Oracle Instant Client-Bibliotheken, um eine Verbindung zur Oracle-Datenbank herzustellen. Das Schemakonvertierungstool erkennt, wann der dicke Modus basierend auf Ihrer Oracle-Netzwerkkonfiguration benötigt wird und automatisch zu ihr wechselt.

Wenn der dicke Clientmodus erforderlich ist

Sie können ermitteln, ob der dicke Clientmodus erforderlich ist, indem Sie die Oracle-Netzwerkkonfigurationsdateien in Ihrer Quellumgebung überprüfen. Suchen Sie nach den folgenden Parametern in der sqlnet.ora Datei (normalerweise in $ORACLE_HOME/network/admin/ zu finden):

Parameter Gibt an, dass der Dicke-Modus erforderlich ist.
SQLNET.CRYPTO_CHECKSUM_CLIENT Festlegen auf REQUIRED oder REQUESTED für systemeigene Netzwerkverschlüsselung
SQLNET.ENCRYPTION_CLIENT Festlegen auf REQUIRED oder REQUESTED für systemeigene Netzwerkverschlüsselung

Wenn einer dieser Parameter in Ihrer Oracle-Quellumgebung konfiguriert ist, ist der dicke Clientmodus erforderlich. Das Schemakonvertierungstool erkennt diese Konfiguration und wechselt automatisch in den Dickmodus. Stellen Sie sicher, dass Oracle Instant Client auf dem Computer installiert ist, auf dem Visual Studio Code ausgeführt wird, bevor Sie die Konvertierung starten.

Installieren von Oracle Instant Client

Um den dicken Clientmodus zu verwenden, installieren Sie Oracle Instant Client auf dem Computer, auf dem Visual Studio Code und das Schemakonvertierungstool ausgeführt werden. Die Schemakonvertierung wird nur unter Windows und Linux unterstützt.

  1. Laden Sie das Oracle Instant Client Basic - oder Basic Light-Paket von Der Website von Oracle für Ihr Betriebssystem herunter.
  2. Extrahieren Sie das Paket in ein Verzeichnis auf dem Computer.
  3. Fügen Sie das Instant Client-Verzeichnis zur Systemumgebungsvariable PATH hinzu:
    • Windows: Fügen Sie das Instant Client-Verzeichnis direkt der PATH-Variablen über Systemeigenschaften>Umgebungsvariablen oder mit der PowerShell hinzu.
    • Linux: Fügen Sie das Instant Client-Verzeichnis hinzu PATH , und legen Sie die LD_LIBRARY_PATH Umgebungsvariable so fest, dass sie das Verzeichnis enthält. Stellen Sie sicher, dass die libaio Bibliothek installiert ist.
  4. Starten Sie Visual Studio Code neu, um die aktualisierten Umgebungsvariablen zu übernehmen.

Authentifizierung für Microsoft Foundry

Das Schemakonvertierungstool unterstützt zwei Authentifizierungsmethoden zum Herstellen einer Verbindung mit Sprachmodellen in Microsoft Foundry:

API-Schlüsselauthentifizierung

Die API-Schlüsselauthentifizierung verwendet einen bereitstellungsspezifischen Schlüssel, um Anforderungen zu autorisieren. Diese Methode ist einfach und eignet sich für Entwicklungs- und Testszenarien.

Microsoft Entra ID-Authentifizierung

Microsoft Entra ID Authentifizierung bietet tokenbasierten, identitätsgesteuerten Zugriff auf Microsoft Foundry, ohne API-Schlüssel zu verwalten. Diese Methode wird für Produktionsumgebungen und Organisationen mit zentralisierter Identitätsverwaltung empfohlen.

So verwenden Sie die Microsoft Entra ID-Authentifizierung:

  1. Assignieren Sie die erforderliche Rolle: Stellen Sie sicher, dass der angemeldete Benutzer oder Dienstprinzipal den Foundry User Rolle (ehemals Azure AI User) auf der Microsoft Foundry-Ressource aufweist, die Ihre Modellbereitstellung hostt. Weisen Sie die Rolle im Azure-Portal unter Zugriffssteuerung (IAM) zu. Weitere Informationen finden Sie unter Rollenbasierte Zugriffssteuerung für Microsoft Foundry.
  2. Melden Sie sich in Visual Studio Code bei Azure an: Verwenden Sie den Befehl Azure: Sign In aus der Befehlspalette (Ctrl+Shift+P), um sich mit Ihrem Microsoft Entra ID-Konto zu authentifizieren.
  3. Select Entra ID authentication: Wählen Sie im Migrations-Assistent Konfigurationsschritt des Sprachmodells Microsoft Entra ID als Authentifizierungsmethode statt API-Schlüssel aus.
  4. Geben Sie den Endpunkt an: Geben Sie die Endpunkt-URL für Microsoft Foundry ein. Das Tool erwirbt das Authentifizierungstoken automatisch aus Ihrer angemeldeten Sitzung.

Note

Microsoft Entra ID Authentifizierung erfordert die Azure AccountErweiterung in Visual Studio Code. Die Erweiterung muss mit einer Identität angemeldet sein, die über die entsprechende Rollenzuweisung für die Microsoft Foundry-Ressource verfügt.

Sicherheit und Netzwerk

Wenn Sie das Schemakonvertierungsfeature verwenden, stellen Sie sicher, dass Ihre Visual Studio Code-Umgebung sowohl mit Ihrer Oracle-Quelldatenbank als auch mit der flexiblen Azure-Serverinstanz für PostgreSQL eine sichere Verbindung herstellen kann, die Sie als Scratch-Datenbank verwenden.

Microsoft empfiehlt, mithilfe eines privaten Endpunkts eine Verbindung mit Ihrer Microsoft Foundry-Ressource herzustellen. Weitere Informationen finden Sie unter Configure a private link for Microsoft Foundry.

Weitere Informationen zum Sichern Ihrer Microsoft Foundry-Verbindungen finden Sie unter Daten, Datenschutz und Sicherheit für Azure Direct Models in Microsoft Foundry.

Diagramm, wie Visual Studio Code eine Verbindung mit einem privaten Endpunkt herstellt.

Important

Kundenvalidierungsverantwortung: Dasselbe KI-Modul, das für die Schemakonvertierung verwendet wird, kann auch bei der Validierung und Überprüfung helfen. KI-Systeme können gelegentlich ihre eigenen Fehler bestätigen. Um Datenverluste, funktionale Regressionen oder Sicherheitsprobleme zu verhindern, überprüfen Sie unabhängig alle konvertierten Objekte und Überprüfungsaufgabenauflösungen vor der Bereitstellung in der Produktion. Im Rahmen Ihrer Kontrolleinstellungen sollten Sie die Inhaltsfilterung von Foundry aktivieren, um die Ausgabe schädlicher oder unerwünschter Inhalte zu reduzieren. Anleitungen finden Sie unter "Inhaltsfilterung in Foundry".

Warum sollte das Schemakonvertierungsfeature verwendet werden?

Das Konvertieren von Oracle-Schemas in Azure Database für PostgreSQL optimiert die Migration und Modernisierung. Dies reduziert den manuellen Aufwand und das Risiko, indem die Transformationen automatisiert, die Ergebnisse in einer Scratch-Datenbank validiert, eine KI-unterstützte Überprüfung ermöglicht und eine auf Microsoft Azure optimierte Ausgabe bereitgestellt wird, die für den Einsatz bereit ist.

  • Automatisierte Konvertierung: Reduziert manuellen Aufwand, indem kompatible Schemaobjekte automatisch konvertiert werden.
  • AI-basierte Transformation: Verwendet Sprachmodelle, die in Microsoft Foundry gehostet werden, um Kontextbezogene Konvertierungsentscheidungen zu treffen.
  • Überprüfungs-first-Ansatz: Verwendet Scratch-Schemas, um zu bestätigen, dass konvertierte Objekte ordnungsgemäß funktionieren.
  • Integrierter Workflow: Funktioniert innerhalb der Visual Studio Code Entwicklungsumgebung.
  • Flexible Oracle-Konnektivität: Unterstützt sowohl dünne als auch dicke Clientmodi für die Verbindung mit Oracle-Datenbanken.
  • Mehrere Authentifizierungsoptionen: Unterstützt die Authentifizierung per API-Schlüssel und Microsoft Entra ID für Microsoft Foundry.
  • Überprüfung und Verfeinerung: Bietet klare Anleitungen für manuelle Überprüfungsaufgaben.
  • Azure-Optimierung: Konzipiert für Azure Database for PostgreSQL – Flexible Server.

Unterstützte Schemaobjekte

Das Konvertierungstool unterstützt eine breite Palette von Oracle-Schema- und Codeobjekten, einschließlich Datendefinitionselementen, Komponenten auf Schemaebene und prozeduralem Code. Sie können zwar viele gängige Objekte automatisch konvertieren, aber möglicherweise müssen Sie die Zuordnung für bestimmte Oracle-spezifische Features oder proprietäre Erweiterungen manuell überprüfen oder anpassen. Ausführliche Listen der unterstützten Objekte und bekannten Einschränkungen finden Sie in den Abschnitten in diesem Artikel.

Wie Konvertierungen erzeugt werden

Das Schemakonvertierungstool kombiniert KI-basierte Übersetzung mit automatisierter Validierung, um zuverlässige Ergebnisse zu liefern. Microsoft Foundry Modelle übersetzen Oracle DDL in PostgreSQL. Anschließend kompiliert das Tool jedes konvertierte Objekt anhand eines Scratch-Schemas in Ihrem Ziel Azure Database for PostgreSQL flexiblen Server, führt statische Analysen aus und wendet automatisierte Korrekturen für häufige Probleme an. Die verbleibenden Phasen der Pipeline – Quellanalyse, Metadatenextraktion und Skriptgenerierung – werden als vorhersagbare, regelbasierte Schritte ausgeführt.

Für PL/pgSQL-Routinen fügt das Tool eine Bodysemantiküberprüfung hinzu, die die plpgsql_check Erweiterung in der Scratch-Datenbank verwendet. Wenn die Prüfung einen Fehler findet, der nicht erfasst wird, verwirft das Tool diese Routine und sendet sie zurück über die KI-Fixschleife, anstatt sie in die Ausgabe zu schreiben. Weitere Informationen finden Sie unter Validate converted PL/pgSQL with plpgsql_check.

Dieser Ansatz verwendet KI, wo er den größten Wert hinzufügt und den Rest des Workflows deterministisch und verifizierbar hält. Objekte, die nicht vollständig überprüft werden können, werden als Überprüfungsaufgaben gekennzeichnet, sodass Sie sie adressieren können, bevor Sie das konvertierte Schema anwenden. Für Oracle-Features, die nicht über ein praktisches PostgreSQL-Äquivalent verfügen, finden Sie unter Oracle zu Azure Database for PostgreSQL flexiblen Serverschemakonvertierungseinschränkungen.

Datenbankschemaobjekte

Das Konvertierungstool unterstützt die folgenden Oracle-Datenbankobjekte:

  • Tabellen: Tabellendefinitionen, Spaltenspezifikationen und Einschränkungen auf Tabellenebene.
  • Einschränkungen: Primärschlüssel, Fremdschlüssel, eindeutige Einschränkungen und Check-Einschränkungen.
  • Indizes: B-Strukturindizes, eindeutige Indizes und zusammengesetzte Indizes.
  • Sequenzen: Oracle-Sequenzobjekte für autoinkrementierende Werte.
  • Trigger: Trigger auf Zeilenebene und auf Anweisungsebene.
  • Ansichten: Standarddatenbankansichten.
  • Materialisierte Ansichten: materialisierte Ansichten in Oracle und Aktualisierungslogik.
  • Schemas: Objekte auf Schemaebene und Organisation.
  • Synonyme: Öffentliche und private Synonyme (mit Einschränkungen).

Oracle-Codeobjekte

Das Konvertierungstool unterstützt die folgenden Oracle-Codekonstrukte:

  • Trigger: Komplexe Triggerlogik und Ereignisbehandlung.
  • Pakete: Oracle-Paketspezifikationen und -gremien.
  • Funktionen: Benutzerdefinierte Funktionen mit komplexer Logik.
  • Gespeicherte Prozeduren: Oracle gespeicherte Prozeduren und Parameterbehandlung.
  • Typen und Auflistungen: Oracle-Objekttypen, TYPE BODY Membermethoden, VARRAYgeschachtelte Tabellen und SUBTYPE Deklarationen.

Paketkonvertierung

Oracle-Pakete verfügen nicht über ein direktes PostgreSQL-Äquivalent, daher konvertiert das Tool jeden Teil eines Pakets in ein PostgreSQL-Konstrukt, das die aufrufbare Oberfläche bewahrt:

  • Konstanten: Das Tool konvertiert öffentliche Paketkonstanten in IMMUTABLE Getterfunktionen.
  • Sammlungen und Cursor: Geschachtelte Tabellen und VARRAY werden zu Arraydomänen, wobei VARRAY auch eine Längeneinschränkung abgerufen wird. Assoziative Arrays mit Zeichenfolgenschlüssel werden zu jsonb Domänen und REF CURSOR werden .refcursor
  • Paketstatus: Öffentliche Paketvariablen werden getter und Setterpaare, die durch eine Sitzungseinstellung unterstützt werden, die den Oracle-Paketsitzungszustand emuliert.
  • Ausnahmen: Vom Benutzer deklarierte Ausnahmen werden zu Funktionen, die einen SQLSTATE Wert zurückgeben. Eine Ausnahme beispielsweise, die mit -20001 Zuordnungen U0001initialisiert wurde.
  • Nur Spezifikationspakete: Ein Paket ohne Textkörper wird in Stubs konvertiert, die einen Fehler auslösen, sodass die aufrufbare Oberfläche weiterhin vorhanden ist.

Hierarchische Abfragen

Oracle-hierarchische Abfragen werden in allgemeine Tabellenausdrücke von PostgreSQL WITH RECURSIVE konvertiert. Das Tool konvertiert CONNECT BY und PRIOR in die rekursive Memberverknnung, START WITH in das Ankerelement und LEVEL in einen Tiefenzähler. Es konvertiert SYS_CONNECT_BY_PATHauch , CONNECT_BY_ROOT, , ORDER SIBLINGS BYund NOCYCLE. Nach der Konvertierung überprüft das Tool, ob das generierte Objekt über die erwartete rekursive Form verfügt, und wiederholt die Konvertierung, wenn dies nicht der Vorgang ist.

Transaktionssteuerung

Eine Routine, die ihre ursprüngliche Oracle-Objektklasse verwendet PRAGMA AUTONOMOUS_TRANSACTION , sodass eine Funktion und vorhandene Aufrufer, die sie in einem SELECT oder Ausdruck verwenden, weiterhin funktionieren. Die autonome Arbeit wird über die dblink Erweiterung auf einer separaten Verbindung ausgeführt. Stellen Sie daher sicher, dass dblink sie auf dem Zielserver verfügbar ist. Eine Routine, die eine explizite COMMIT oder ROLLBACK ohne dieses Pragma verwendet, wird in eine Prozedur konvertiert, da PostgreSQL die Transaktionssteuerung dort zulässt.

Überprüfen konvertierter PL/pgSQL mit plpgsql_check

PostgreSQL überprüft einen PL/pgSQL-Routinetext nicht vollständig, wenn Sie ihn erstellen. CREATE FUNCTION bestätigt, dass der Textkörper analysiert wird, aber die Tabellen, Spalten und Variablen, auf die der Textkörper verweist, nicht aufgelöst wird. Eine Routine, die eine Spalte liest, die nicht vorhanden ist, wird erfolgreich erstellt und schlägt nur bei der ersten Ausführung fehl. Bei einer Migration verwandelt sich ein Konvertierungsfehler in einen Produktionsvorfall, da die Bereitstellung sauber aussieht.

Das Schemakonvertierungstool schließt diese Lücke mit der plpgsql_check Erweiterung. Nachdem eine konvertierte Routine in der Scratch-Datenbank kompiliert wurde, führt das Tool eine Textsemantiküberprüfung aus. Wenn die Prüfung einen echten Fehler findet, verwirft das Tool die Routine und gibt sie an die KI-Fixschleife zurück, die sie repariert und erneut kompiliert. Nur Routinen, die übergeben werden, werden in die Konvertierungsausgabe geschrieben.

Diese Überprüfung ist der Hauptgrund, warum eine konvertierte Routine vertrauenswürdig ist, bevor Sie sie jemals bereitstellen. Behandeln Sie plpgsql_check einen erforderlichen Teil der Konvertierungsumgebung anstelle eines optionalen Zusätzlichen.

Wo die Prüfung ausgeführt wird

Die Überprüfung wird vollständig in der Entwurfsdatenbank ausgeführt, die das Tool während der Konvertierung erstellt. Ihre Zieldatenbank benötigt plpgsql_check zur Laufzeit nicht, und nichts, das vom Tool generiert wird, hängt davon ab. Bei der Erweiterung handelt es sich um ein Konvertierungszeitqualitätsgate, nicht um eine Laufzeitabhängigkeit.

Was geschieht, wenn die Erweiterung nicht verfügbar ist

Die Prüfung ist nicht geöffnet. Wenn plpgsql_check die Zulassungsliste nicht zulässig ist oder auf dem Server, auf dem die Scratch-Datenbank gehostet wird, nicht verfügbar ist, überspringt das Tool die Überprüfung, und die Konvertierung wird fortgesetzt. Kein Fehler und keine Warnung wird im Schemakonvertierungsbericht angezeigt, sodass eine Ausführung ohne die Erweiterung mit der Erweiterung identisch aussieht.

Routinen werden weiterhin kompiliert, sodass Syntaxfehler immer noch abgefangen werden. Was Sie verlieren, ist die tiefere Textkörperüberprüfung, sodass Fehler wie z. B. eine nicht aufgelöste Spalten- oder Tabellenreferenz die generierte Ausgabe und Oberfläche später zur Laufzeit erreichen können. Vergewissern Sie sich, dass die Erweiterung verfügbar ist, bevor Sie sich auf Konvertierungsergebnisse verlassen.

Stellen Sie die Überprüfung zur Verfügung

plpgsql_checkwird auf Azure Database for PostgreSQL flexiblen Server für PostgreSQL 14 und höher unterstützt. Allowlist the extension, add it to shared_preload_libraries, and restart the server before you convert. Das Tool installiert dann die Erweiterung in der Scratch-Datenbank für Sie. Die vollständige Vorgehensweise finden Sie unter Bewährte Methoden für Oracle zum Azure Database for PostgreSQL flexiblen Serverschemakonvertierung.

Unterstützte Oracle-Versionen

In diesem Abschnitt werden die Datenbankmodulversionen zusammengefasst, die automatisierte Schemakonvertierung unterstützen, und hebt Kompatibilitätsaspekte hervor. Verwenden Sie die aufgeführten unterstützten Oracle- und PostgreSQL-Versionen, um die besten Ergebnisse zu erzielen. Überprüfen Sie Konvertierungen in einer Nichtproduktionstestumgebung, und verwenden Sie den neuesten Nebenpatch jeder unterstützten Hauptversion. Wenn Ihre Umgebung eine nicht unterstützte Version verwendet oder Oracle proprietäre Features enthält, müssen Sie möglicherweise vor der Bereitstellung zusätzliche manuelle Zuordnungen oder Überprüfungen durchführen.

Die folgenden Oracle-Datenbankversionen unterstützen die Schemakonvertierung:

  • Oracle 21c
  • Oracle 19c
  • Oracle 18c
  • Oracle 12.2
  • Oracle 12.1

Feedback und Support

Verwenden Sie bei Fehlern, Featureanforderungen und Problemen im Zusammenhang mit dem Schemakonvertierungsfeature oder der PostgreSQL-Erweiterung das integrierte Feedbacktool in Visual Studio Code. Sie können auf zwei Arten auf dieses Tool zugreifen:

Menü "Hilfe"

Wechseln Sie zu Hilfe>Problem melden.

Befehlspalette

  1. Öffnen Sie die Befehlspalette mit Ctrl+Shift+P (Windows/Linux) oder Cmd+Shift+P (macOS).
  2. Führen Sie den Befehl aus: PGSQL: Problem melden.

Wenn Sie Ihre Anfrage erstellen oder Feedback geben, fügen Sie Schema Conversion: als Präfix in Ihren Titel ein. Dieses Präfix hilft dem Entwicklungsteam, Schemakonvertierungsfeedback schnell zu identifizieren und zu priorisieren. Dieser Rückmeldemechanismus hilft dem Entwicklungsteam, die Funktion zur Schemakonvertierung kontinuierlich zu verbessern und alle Probleme zu beheben, auf die Sie während Ihrer Migrationsprojekte von Oracle zu Azure Database for PostgreSQL stoßen.