View a markdown version of this page

Einstellungen für die Konvertierung von Oracle in PostgreSQL - AWS Database Migration Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Einstellungen für die Konvertierung von Oracle in PostgreSQL

Die folgenden Einstellungen gelten, wenn die Quelle Oracle und das Ziel Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL ist. Sie können diese Einstellungen mithilfe der AWS Management Console oder der API-Operation konfigurieren. ModifyConversionConfiguration

In diesem Thema werden Einstellungen behandelt, die für den Konvertierungspfad von Oracle nach PostgreSQL spezifisch sind. Zusätzlich zu diesen Einstellungen bietet die DMS-Schemakonvertierung Einstellungen, die für alle Quell- und Zielpaare gelten, wie z. B. den Schweregrad für Kommentare zu Aktionselementen in konvertiertem SQL und die Option, generative KI für die Konvertierung zu verwenden. Informationen zu diesen Einstellungen finden Sie unter. Allgemeine Konvertierungseinstellungen

Wenn Sie die API oder AWS CLI verwenden, geben Sie die Einstellungen für den Konvertierungspfad unter den Abschnittsnamen ORACLE_TO_POSTGRESQLORACLE_TO_POSTGRESQL_14, oder anORACLE_TO_POSTGRESQL_15. Alle drei versionierten Abschnitte akzeptieren dieselben Schlüssel. Um herauszufinden, welche Abschnittsnamen Ihr Projekt verwendet, rufen Sie DescribeConversionConfigurationzuerst an und aktualisieren Sie nur die Abschnitte, die in der Antwort enthalten sind.

Jede Einstellung zeigt das AWS Management Console Label gefolgt vom API- und AWS CLI-Parameternamen in Klammern. Verwenden Sie den Parameternamen, wenn Sie Einstellungen mit der API oder AWS CLI konfigurieren. Die Einstellungen werden in derselben Reihenfolge aufgeführt, in der sie in der erscheinen AWS Management Console.

Version der Ziel-Engine (ORACLE_TO_POSTGRESQL_target_engine_version)

Wählen Sie die Engine-Version für Ihre Zieldatenbank aus. Bei dieser Einstellung handelt es sich um den Funktionsumfang der PostgreSQL-Hauptversion, auf den die DMS-Schemakonvertierung abzielt, und sie bestimmt, welcher Abschnitt mit versionierten Einstellungen für die DMS-Schemakonvertierung gilt (oder). ORACLE_TO_POSTGRESQL_14 ORACLE_TO_POSTGRESQL_15 Der Wert 15 zielt auf die Funktionen von PostgreSQL 15 und späteren Versionen sowie auf die Funktionen von PostgreSQL 14 14 ab, sodass Ihre Zieldatenbank eine neuere Version als den von Ihnen ausgewählten Wert ausführen kann (z. B. ein Wert von 15 für ein PostgreSQL 16-Ziel). Im Gegensatz zu den anderen Einstellungen auf dieser Seite wird diese Einstellung nicht in einem Konvertierungspfadabschnitt gespeichert. Stattdessen wird sie im Conversion version Bereich auf oberster Ebene gespeichert, wie im folgenden Beispiel gezeigt.

{ "Conversion version": { "ORACLE_TO_POSTGRESQL_target_engine_version": "15" } }

Typ: Zeichenfolge (14|15)

Standardwert: 15

Materialisierte Ansichten () MaterializedViewConvert

Gibt an, wie DMS Schema Conversion materialisierte Oracle-Ansichten auf dem Ziel konvertiert.

API/CLI Wert Ergebnis entspricht dem Ziel
TABLE Die DMS-Schemakonvertierung erstellt eine reguläre Tabelle mit denselben Spalten. Verwenden Sie diese Option, wenn Sie die Aktualisierung manuell oder mit einem Replikationstool verwalten.
MATERIALIZED_VIEW Die DMS-Schemakonvertierung erstellt ein MATERIALIZED VIEW PostgreSQL. Verwenden Sie dies, wenn das Ziel dies unterstützt. REFRESH MATERIALIZED VIEW

Typ: Zeichenfolge (TABLE|MATERIALIZED_VIEW)

Standardwert: TABLE

Generieren Sie die Zeilen-ID (GenerateRowId)

Ihre Oracle-Quelldatenbank kann die Pseudospalte ROWID verwenden. PostgreSQL unterstützt keine ähnlichen Funktionen. Diese Einstellung legt fest, ob DMS Schema Conversion die ROWID Pseudospalte im konvertierten Code emuliert und welchen Datentyp DMS Schema Conversion für die Emulation verwendet.

Bezeichnung der Konsole API/CLI Wert Behavior
Nicht generieren false Die DMS-Schemakonvertierung emuliert die ROWID Pseudospalte nicht und belässt Verweise als Aktionspunkte. Verwenden Sie dies, wenn Ihr Oracle-Quellcode dies nicht verwendet. ROWID Der konvertierte Code läuft schneller.
Verwenden Sie den Bigint-Datentyp, um die ROWID-Pseudospalte zu emulieren true Die DMS-Schemakonvertierung emuliert die ROWID Pseudospalte im konvertierten Code mithilfe des Datentyps. bigint
Verwenden Sie den zeichenvariablen Datentyp, um die ROWID-Pseudospalte zu emulieren GENERATE_AS_CHARACTER_DOMAIN_TYPE Die DMS-Schemakonvertierung emuliert die ROWID Pseudospalte im konvertierten Code mithilfe des Datentyps. character varying

Typ: Zeichenfolge (Enum)

Standardwert: false

Code

Wählen Sie die Konvertierungseinstellungen aus, die für Ihren Oracle-Quellcode spezifisch sind.

Verwenden Sie die optimierte Datentypzuordnung für Spalten des NUMBER-Datentyps (UseOptimizedMappingForNumberConversion)

Gibt an, ob die DMS-Schemakonvertierung jede NUMBER Oracle-Spalte auf Grundlage der Genauigkeit und Skalierung dem am besten passenden numerischen Datentyp zuordnet.

  • true— Die DMS-Schemakonvertierung ordnet jede NUMBER Spalte auf der Grundlage ihrer Genauigkeit und Skalierung dem spezifischsten numerischen PostgreSQL-Typ zu (z. B. SMALLINTINTEGER,, oderBIGINT).

  • false— Die DMS-Schemakonvertierung ordnet alle Spalten zu. NUMBER NUMERIC

Typ: Boolean (|) true false

Standardwert: true

Verwenden Sie eine native PostgreSQL-TO_CHAR-Funktion () ToCharFunctionOracle

Gibt an, ob die DMS-Schemakonvertierung die TO_CHAR Oracle-Funktion im konvertierten Code emuliert.

  • false— Die DMS-Schemakonvertierung emuliert das TO_CHAR Oracle-Verhalten im konvertierten Code.

  • true— Die DMS-Schemakonvertierung konvertiert die native TO_CHAR PostgreSQL-Funktion TO_CHAR und TO_NCHAR ruft sie auf. Wählen Sie diese Option, um Emulationen zu vermeiden, wenn Ihre Formatzeichenfolgen mit PostgreSQL kompatibel sind.

Typ: Boolean (|) true false

Standardwert: false

Verwenden Sie eine native PostgreSQL-TO_DATE-Funktion () ToDateFunctionOracle

Gibt an, ob die DMS-Schemakonvertierung die TO_DATE Oracle-Funktion im konvertierten Code emuliert.

  • false— Die DMS-Schemakonvertierung emuliert das TO_DATE Oracle-Verhalten im konvertierten Code.

  • true— Die DMS-Schemakonvertierung konvertiert TO_DATE Aufrufe in die native PostgreSQL-FunktionTO_DATE.

Typ: Boolean (|) true false

Standardwert: false

Verwenden Sie eine native PostgreSQL-TO_NUMBER-Funktion () ToNumber

Gibt an, ob die DMS-Schemakonvertierung die TO_NUMBER Oracle-Funktion im konvertierten Code emuliert.

  • false— Die DMS-Schemakonvertierung emuliert das TO_NUMBER Oracle-Verhalten im konvertierten Code.

  • true— Die DMS-Schemakonvertierung konvertiert TO_NUMBER Aufrufe in die native PostgreSQL-FunktionTO_NUMBER.

Typ: Boolean (|) true false

Standardwert: false

Verbessern Sie die Leistung des konvertierten Codes, wenn die Datenbank und die Anwendungen dieselbe Zeitzone verwenden () ToTimeZone

Gibt an, ob die DMS-Schemakonvertierung Zeitzonen im konvertierten Code emuliert.

  • true— Die DMS-Schemakonvertierung emuliert keine Zeitzonen. Verwenden Sie diese Option, wenn Ihre Datenbank und Anwendungen dieselbe Zeitzone verwenden. Der konvertierte Code wird schneller ausgeführt.

  • false— Die DMS-Schemakonvertierung emuliert Zeitzonen im konvertierten Code.

Typ: Boolean (|) true false

Standardwert: false

Füllen Sie konvertierte Sequenzen mit dem letzten Wert auf, der auf der Quellseite generiert wurde () AlertSequenceRestart

Gibt an, ob die DMS-Schemakonvertierung die konvertierten Sequenzen aus dem letzten auf der Quelle generierten Wert fortsetzt.

  • true— Die DMS-Schemakonvertierung legt fest, dass jede konvertierte Sequenz mit dem letzten in der Quelle generierten Wert beginnt, sodass die Sequenzen ohne Konflikte fortgesetzt werden.

  • false— Die DMS-Schemakonvertierung startet konvertierte Sequenzen mit ihrem standardmäßigen Anfangswert.

Typ: Boolean (|) true false

Standardwert: false

Konvertiert Primär- und Fremdschlüsselspalten des NUMBER-Datentyps in den BIGINT-Datentyp () ConvertNumberToBigint

Gibt an, ob die DMS-Schemakonvertierung Primärschlüssel- und Fremdschlüsselspalten des NUMBER Datentyps in konvertiert. BIGINT Gehen Sie vorsichtig vor, um Datenverlust zu vermeiden, wenn Ihre Quelldatenbank Gleitkommazahlen in diesen Spalten speichert.

  • true— Die DMS-Schemakonvertierung ordnet Primärschlüssel- und Fremdschlüsselspalten zu. NUMBER BIGINT

  • false— Die DMS-Schemakonvertierung verwendet die standardmäßige numerische Zuordnung für diese Spalten.

Typ: Boolean (|) true false

Standardwert: false

Konvertiert nur aktive Trigger und Einschränkungen () IgnoreDisabledTriggersConstraints

Gibt an, ob die DMS-Schemakonvertierung deaktivierte Trigger und Einschränkungen bei der Konvertierung überspringt.

  • true— Die DMS-Schemakonvertierung konvertiert nur aktive Trigger und Einschränkungen und überspringt deaktivierte.

  • false— Die DMS-Schemakonvertierung konvertiert alle Trigger und Einschränkungen, auch die deaktivierten.

Typ: Boolean (|) true false

Standardwert: false

Konvertiert den dynamischen SQL-Code, der in sogenannten Routinen () erstellt wurde ConvertOutputAsDynamic

Gibt an, ob die DMS-Schemakonvertierung Zeichenkettenvariablen, auf die außerhalb der Routine verwiesen wird, als dynamisches SQL konvertiert.

  • true— DMS Schema Conversion konvertiert Zeichenkettenvariablen, auf die außerhalb der Routine verwiesen wird, als dynamisches SQL.

  • false— Die DMS-Schemakonvertierung konvertiert diese Zeichenkettenvariablen nicht in dynamisches SQL.

Typ: Boolean (|) true false

Standardwert: false

Konvertiert Prozeduren in Funktionen () ConvertProceduresToFunction

Gibt an, ob DMS Schema Conversion gespeicherte Oracle-Prozeduren in ungültige PostgreSQL-Funktionen konvertiert.

  • true— Die DMS-Schemakonvertierung konvertiert gespeicherte Oracle-Prozeduren in PostgreSQL-Void-Funktionen.

  • false— Die DMS-Schemakonvertierung konvertiert gespeicherte Oracle-Prozeduren in PostgreSQL-Prozeduren.

Typ: Boolean (|) true false

Standardwert: false

Behalten Sie die Namen der vom System generierten Einschränkungen () bei ConvertSysConstraintNamesUsingOriginal

Gibt an, ob die DMS-Schemakonvertierung die ursprünglichen, vom Oracle-System generierten Constraint-Namen im Ziel beibehält. Verwenden Sie diese Option, wenn Ihr Oracle-Quellcode systemgenerierte Constraint-Namen verwendet, um Constraints mit denselben Namen in Ihrer Zieldatenbank zu erstellen.

  • true— Die DMS-Schemakonvertierung behält die ursprünglichen, vom Oracle-System generierten Constraint-Namen im Ziel bei.

  • false— Die DMS-Schemakonvertierung generiert neue Einschränkungsnamen.

Typ: Boolean (|) true false

Standardwert: false

Stellen Sie die Zeitzone Ihrer Quelldatenbank ein () UseDefaultTimeZoneForSysdateEmulation

Gibt an, ob die Funktion, die die SYSDATE Oracle-Funktion emuliert, die Zeitzone in verwendetDefaultTimeZoneForSysdateEmulation, sodass der konvertierte Code dieselben Werte zurückgibt wie Ihre Quelldatenbank.

  • true— Die DMS-Schemakonvertierung verwendet die in angegebene Zeitzone DefaultTimeZoneForSysdateEmulation für SYSDATE die Emulation.

  • false— Die DMS-Schemakonvertierung verwendet die Standardzeitzone für die Emulation. SYSDATE

Typ: Boolean (|) true false

Standardwert: false

DefaultTimeZoneForSysdateEmulation

Die Zeitzone, die die DMS-Schemakonvertierung verwendet, wenn die SYSDATE Emulation aktiviert ist. UseDefaultTimeZoneForSysdateEmulation Geben Sie einen gültigen IANA-Zeitzonennamen an, z. B.UTC, America/New_York oder. Europe/Berlin Dieser Wert hat keine Auswirkung, wenn er UseDefaultTimeZoneForSysdateEmulation istfalse.

Typ: Zeichenfolge (Name der IANA-Zeitzone)

Standardwert: UTC

Anmerkung

AWS Management Console In der Liste ist eine zusätzliche Option aufgeführt: Erweiterungspaket-Funktionen hinzufügen, die benutzerdefinierte Ausnahmen auslösen, zwischen Prozeduren in Funktionen umwandeln und Namen von systemgenerierten Einschränkungen beibehalten. Diese Option ist nur in der konfiguriert AWS Management Console und nicht über die API oder AWS CLI verfügbar. Das entsprechende Verhalten beim Schweregrad wird durch die ShowSeverityLevelInSql allgemeine Einstellung gesteuert. Weitere Informationen finden Sie unter Allgemeine Konvertierungseinstellungen.

Integrierte Oracle-Routinen

Wählen Sie die integrierten Orace-Routinen aus, die im konvertierten Code verwendet werden sollen. Oracle ist eine PostgreSQL-Erweiterung, die Routinen bereitstellt, die mit den integrierten Funktionen von Oracle kompatibel sind. Jede Routine hat eine eigene boolesche Einstellung. Wenn Sie eine Routine auf setzentrue, konvertiert DMS Schema Conversion die entsprechende integrierte Oracle-Funktion in ihre Oracle-Routine. Wenn Sie sie auf einstellenfalse, bleibt die Funktion bei der DMS-Schemakonvertierung als Aktionspunkt für die manuelle Überprüfung übrig. Um diese Routinen verwenden zu können, muss die Oracle-Erweiterung in Ihrer Zieldatenbank verfügbar sein. Alle diese Routinen sind standardmäßig auf. false Setzen Sie eine Routine true erst auf, nachdem Sie sich vergewissert haben, dass das Verhalten der Funktion bei Ihrer Verwendung mit der Orace-Routine kompatibel ist.

Einstellungsname Integrierte Oracle-Funktion
AddMonthsBuiltinFunctionOracle ADD_MONTHS
BitandBuiltinFunctionOracle BITAND
CoshBuiltinFunctionOracle COSH
DbmsAssertBuiltinFunctionOracle DBMS_ASSERTPaket
DbmsOutputBuiltinFunctionOracle DBMS_OUTPUTPaket
DbmsRandomBuiltinFunctionOracle DBMS_RANDOMPaket
DbtimezoneBuiltinFunctionOracle DBTIMEZONE
DecodeBuiltinFunctionOracle DECODE
DumpBuiltinFunctionOracle DUMP
InstrBuiltinFunctionOracle INSTR
InstrbBuiltinFunctionOracle INSTRB
LastDayBuiltinFunctionOracle LAST_DAY
LengthBuiltinFunctionOracle LENGTH
LengthbBuiltinFunctionOracle LENGTHB
ListaggBuiltinFunctionOracle LISTAGG
LnnvlBuiltinFunctionOracle LNNVL
LpadBuiltinFunctionOracle LPAD
LtrimBuiltinFunctionOracle LTRIM
MedianBuiltinFunctionOracle MEDIAN
MonthsBetweenBuiltinFunctionOracle MONTHS_BETWEEN
NanvlBuiltinFunctionOracle NANVL
NextDayBuiltinFunctionOracle NEXT_DAY
NlssortBuiltinFunctionOracle NLSSORT
Nvl2BuiltinFunctionOracle NVL2
NvlBuiltinFunctionOracle NVL
RoundDateFmtBuiltinFunctionOracle ROUND(Datum)
RoundNumberBuiltinFunctionOracle ROUND(Zahl)
RpadBuiltinFunctionOracle RPAD
RtrimBuiltinFunctionOracle RTRIM
SessiontimezoneBuiltinFunctionOracle SESSIONTIMEZONE
SinhBuiltinFunctionOracle SINH
SubstrBuiltinFunctionOracle SUBSTR
SubstrbBuiltinFunctionOracle SUBSTRB
SysdateBuiltinFunctionOracle SYSDATE
TanhBuiltinFunctionOracle TANH
ToCharDatetimeBuiltinFunctionOracle TO_CHAR(Datum/Uhrzeit)
ToCharNumberBuiltinFunctionOracle TO_CHAR(Zahl)
ToDateBuiltinFunctionOracle TO_DATE
ToMultiByteBuiltinFunctionOracle TO_MULTI_BYTE
ToNumberBuiltinFunctionOracle TO_NUMBER
ToSingleByteBuiltinFunctionOracle TO_SINGLE_BYTE
TruncDateBuiltinFunctionOracle TRUNC(Datum)
TruncNumberBuiltinFunctionOracle TRUNC(Zahl)

Jede Routine ist ein separater boolescher Schlüssel. Im folgenden Beispiel werden die Oracle-Routinen für die Funktionen OracleADD_MONTHS, und aktiviert. NVL SUBSTR Fügen Sie Schlüssel hinzu oder entfernen Sie sie, sodass sie den Funktionen in Ihrem Quellcode entsprechen, und wenden Sie dieselben Schlüssel auf jeden Abschnittsnamen an, den Ihr Projekt verwendet.

{ "ORACLE_TO_POSTGRESQL_15": { "AddMonthsBuiltinFunctionOracle": true, "NvlBuiltinFunctionOracle": true, "SubstrBuiltinFunctionOracle": true } }
Einstellungen für den SQL-Code

Konfigurieren Sie, wie DMS Schema Conversion mit integrierten Oracle-Objekten umgeht, die PostgreSQL nicht unterstützt.

Konvertiert nicht unterstützte integrierte Objekte in Stub-Objekte () ConvUnsupportedBuiltinsToStubs

Gibt an, ob die DMS-Schemakonvertierung nicht unterstützte integrierte Objekte durch Stub-Objekte ersetzt.

  • false— Bei der DMS-Schemakonvertierung werden nicht unterstützte integrierte Objekte als Aktionspunkte im Bewertungsbericht angezeigt.

  • true— Die DMS-Schemakonvertierung ersetzt jedes nicht unterstützte integrierte Objekt durch ein Stub-Objekt mit derselben Signatur. Das konvertierte Objekt wird kompiliert, sodass Sie den Rest des Schemas bereitstellen und testen können, bevor Sie einzelne Stubs bearbeiten.

Typ: Boolean (|) true false

Standardwert: false

Erstellen Sie Stub-Objekte in einem separaten Schema () CreateStubsInSeparateSchema

Gibt an, ob die DMS-Schemakonvertierung Stub-Objekte in einem separaten Schema erstellt. Diese Option wird AWS Management Console nur angezeigt, wenn die Option Nicht unterstützte integrierte Objekte in Stub-Objekte konvertieren ausgewählt ist, und sie ist nur wirksam, wenn diese Option aktiviert ist.

  • true— Die DMS-Schemakonvertierung erstellt Stub-Objekte in einem separaten Schema. Dadurch bleiben Ihre Anwendungsschemas sauber und Sie können leicht erkennen, welche Stubs noch implementiert werden müssen.

  • false— Die DMS-Schemakonvertierung erstellt Stub-Objekte im gleichen Schema wie das konvertierte Objekt.

Typ: Boolean (|) true false

Standardwert: true

Beispiel: Konfiguration der Oracle-Einstellungen für PostgreSQL

Im folgenden Beispiel werden materialisierte Ansichten als materialisierte PostgreSQL-Ansichten beibehalten, die ROWID Pseudospalte mithilfe des bigint Datentyps emuliert und Prozeduren in Funktionen konvertiert. Wenden Sie dieselben Einstellungen auf jeden Abschnittsnamen an, den Ihr Projekt verwendet (überprüfen Sie zuerst die Ausgabe von). DescribeConversionConfiguration

{ "ORACLE_TO_POSTGRESQL_15": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL_14": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true }, "ORACLE_TO_POSTGRESQL": { "MaterializedViewConvert": "MATERIALIZED_VIEW", "GenerateRowId": "true", "ConvertProceduresToFunction": true } }