Verwenden einer Oracle-Datenbank als Ziel für AWS Database Migration Service - 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.

Verwenden einer Oracle-Datenbank als Ziel für AWS Database Migration Service

Sie können Daten entweder aus einer anderen Oracle-Datenbank oder aus einer der anderen unterstützten Datenbanken zu Oracle-Datenbankzielen migrieren. AWS DMS Sie können Secure Sockets Layer (SSL) verwenden, um Verbindungen zwischen Ihrem Oracle-Endpunkt und der Replikations-Instance zu verschlüsseln. Weitere Hinweise zur Verwendung von SSL mit einem Oracle-Endpunkt finden Sie unterVerwenden von SSL mit AWS Database Migration Service. AWS DMS unterstützt auch die Verwendung von Oracle Transparent Data Encryption (TDE) zur Verschlüsselung ruhender Daten in der Zieldatenbank, da Oracle TDE zum Schreiben in die Datenbank weder einen Verschlüsselungsschlüssel noch ein Kennwort benötigt.

Hinweise zu Versionen von Oracle, die als Ziel AWS DMS unterstützen, finden Sie unter. Ziele für AWS DMS

Wenn Sie Oracle als Ziel verwenden, gehen wir davon aus, dass die Daten in das Schema oder den Benutzer migriert werden sollen, das bzw. der für die Zielverbindung verwendet wird. Wenn Sie Daten in ein anderes Schema migrieren möchten, verwenden Sie dazu eine Schematransformation. Nehmen wir an, Ihr Zielendpunkt stellt eine Verbindung mit dem Benutzer RDSMASTER her und Sie möchten vom Benutzer PERFDATA1 zu PERFDATA2 migrieren. Erstellen Sie in diesem Fall eine Transformation, die dem folgenden Beispiel ähnelt.

{ "rule-type": "transformation", "rule-id": "2", "rule-name": "2", "rule-action": "rename", "rule-target": "schema", "object-locator": { "schema-name": "PERFDATA1" }, "value": "PERFDATA2" }

Wenn Sie Oracle als Ziel verwenden, AWS DMS migriert alle Tabellen und Indizes in Standardtabellen- und Index-Tablespaces im Ziel. Wenn Sie Tabellen und Indizes in verschiedene Tabellen- und Index-Tablespaces migrieren möchten, verwenden Sie hierfür eine Tablespace-Transformation. Angenommen, Sie verfügen über eine Reihe von Tabellen im INVENTORY-Schema, die einigen Tablespaces in der Oracle-Quelldatenbank zugeordnet sind. Für die Migration möchten Sie all diese Tabellen zu einem einzelnen INVENTORYSPACE-Tabellenraum in der Zieldatenbank zuweisen. Erstellen Sie in diesem Fall eine Transformation, die dem folgenden Beispiel ähnelt.

{ "rule-type": "transformation", "rule-id": "3", "rule-name": "3", "rule-action": "rename", "rule-target": "table-tablespace", "object-locator": { "schema-name": "INVENTORY", "table-name": "%", "table-tablespace-name": "%" }, "value": "INVENTORYSPACE" }

Weitere Informationen zu Umwandlungen finden Sie unter Festlegen der Tabellenauswahl- und Transformationsregeln mit JSON.

Wenn Oracle sowohl Quelle als auch Ziel ist, können Sie vorhandene Tabellen- oder Index-Tablespace-Zuweisungen beibehalten, indem Sie das zusätzliche Verbindungsattribut für Oracle Source, enableHomogenousTablespace=true, festlegen. Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS.

Weitere Informationen zur Arbeit mit Oracle-Datenbanken als Ziel für finden Sie in den AWS DMS folgenden Abschnitten:

Einschränkungen von Oracle als Ziel für AWS Database Migration Service

Bei der Verwendung von Oracle als Ziel für die Datenmigration gelten folgende Einschränkungen:

  • AWS DMS erstellt kein Schema in der Oracle-Zieldatenbank. Sie müssen gewünschte Schemata selbst in der Oracle-Zieldatenbank erstellen. Der Schemaname muss für das Oracle-Ziel bereits vorhanden sein. Tabellen aus dem Quellschema werden in den Benutzer oder das Schema importiert, das für die Verbindung mit der Zielinstanz AWS DMS verwendet wird. Um mehrere Schemata zu migrieren, können Sie mehrere Replikationsaufgaben erstellen. Sie können Daten auch in verschiedene Schemata auf einem Ziel migrieren. Dazu müssen Sie Schematransformationsregeln für die AWS DMS Tabellenzuordnungen verwenden.

  • AWS DMS unterstützt die Use direct path full load Option für Tabellen mit INDEXTYPE CONTEXT nicht. Um dieses Problem zu umgehen, können Sie den Array-Ladevorgang ausführen.

  • Mit der Batch-optimierten Option „Apply (Anwenden)“ wird beim Laden in die Nettoänderungstabelle ein direkter Pfad verwendet, der den XML-Typ nicht unterstützt. Um dieses Problem zu umgehen, können Sie den transaktionalen Modus „Apply (Anwenden)“ verwenden.

  • Leere Zeichenfolgen, die aus Quelldatenbanken migriert werden, können vom Oracle-Ziel unterschiedlich behandelt (z. B. in eine Leerzeichenfolge konvertiert) werden. Dies kann dazu führen, dass bei der AWS DMS Überprüfung eine Nichtübereinstimmung gemeldet wird.

  • Sie können die Gesamtzahl der Spalten pro Tabelle, die im stapeloptimierten Anwendungsmodus unterstützt werden, mit der folgenden Formel ausdrücken:

    2 * columns_in_original_table + columns_in_primary_key <= 999

    Wenn die Originaltabelle beispielsweise 25 Spalten hat und ihr Primärschlüssel aus 5 Spalten besteht, beträgt die Gesamtzahl der Spalten 55. Wenn eine Tabelle die unterstützte Anzahl von Spalten überschreitet, werden alle Änderungen im one-by-one Modus übernommen.

  • AWS DMS unterstützt Autonomous DB auf Oracle Cloud Infrastructure (OCI) nicht.

Benutzerkontoberechtigungen, die bei der Verwendung von Oracle als Ziel erforderlich sind

Um ein Oracle-Ziel in einer AWS Database Migration Service Aufgabe zu verwenden, gewähren Sie die folgenden Rechte in der Oracle-Datenbank. Sie erteilen diese Berechtigungen dem Benutzerkonto, das in den Oracle-Datenbankdefinitionen für AWS DMS angegeben wurde.

  • SELECT ANY TRANSACTION

  • SELECT on V$NLS_PARAMETERS

  • SELECT on V$TIMEZONE_NAMES

  • SELECT on ALL_INDEXES

  • SELECT on ALL_OBJECTS

  • SELECT on DBA_OBJECTS

  • SELECT on ALL_TABLES

  • SELECT on ALL_USERS

  • SELECT on ALL_CATALOG

  • SELECT on ALL_CONSTRAINTS

  • SELECT on ALL_CONS_COLUMNS

  • SELECT on ALL_TAB_COLS

  • SELECT on ALL_IND_COLUMNS

  • DROP ANY TABLE

  • SELECT ANY TABLE

  • INSERT ANY TABLE

  • UPDATE ANY TABLE

  • CREATE ANY VIEW

  • DROP ANY VIEW

  • CREATE ANY PROCEDURE

  • ALTER ANY PROCEDURE

  • DROP ANY PROCEDURE

  • CREATE ANY SEQUENCE

  • ALTER ANY SEQUENCE

  • DROP ANY SEQUENCE

  • DELETE ANY TABLE

Erteilen Sie für die folgenden Anforderungen diese zusätzlichen Berechtigungen:

  • Um eine bestimmte Tabellenliste zu verwenden, weisen Sie den replizierten Tabellen die Berechtigungen SELECT und auch ALTER zu.

  • Damit ein Benutzer in einem Standardtabellenbereich eine Tabelle erstellen kann, erteilen Sie die Berechtigung GRANT UNLIMITED TABLESPACE.

  • Für die Anmeldung gewähren Sie die Berechtigung CREATE SESSION.

  • Wenn Sie einen direkten Pfad verwenden (Standard bei Volllast), GRANT LOCK ANY TABLE to dms_user;.

  • Wenn das Schema bei Verwendung des Tabellenvorbereitungsmodus „DROP and CREATE“ anders ist, GRANT CREATE ANY INDEX to dms_user;.

  • Bei einigen Szenarien mit Volllast können Sie die Option „DROP und CREATE Tabelle“ oder „TRUNCATE vor dem Laden“ wählen, wobei sich ein Zieltabellenschema vom DMS-Benutzer unterscheidet. Erteilen Sie in diesem Fall die Berechtigung DROP ANY TABLE.

  • Um Änderungen in Änderungstabellen oder einer Audit-Tabelle zu speichern, in der sich das Zieltabellenschema vom DMS-Benutzer unterscheidet, gewähren Sie CREATE ANY TABLE und CREATE ANY INDEX.

Für AWS Database Migration Service die Zieldatenbank sind Leserechte erforderlich

Dem AWS DMS Benutzerkonto müssen Leseberechtigungen für die folgenden DBA-Tabellen gewährt werden:

  • SELECT on DBA_USERS

  • SELECT on DBA_TAB_PRIVS

  • SELECT on DBA_OBJECTS

  • SELECT on DBA_SYNONYMS

  • SELECT on DBA_SEQUENCES

  • SELECT on DBA_TYPES

  • SELECT on DBA_INDEXES

  • SELECT on DBA_TABLES

  • SELECT on DBA_TRIGGERS

  • SELECT on SYS.DBA_REGISTRY

Wenn eine der erforderlichen Berechtigungen V$xxx nicht erteilt werden kann, erteilen Sie sie V_$xxx.

Bewertungen vor der Migration

Um die unter Bewertungen von Oracle Mit Oracle as a Target aufgeführten Bewertungen vor der Migration verwenden zu können, müssen Sie dem dms_user Datenbankbenutzer in der Zieldatenbank die folgenden Berechtigungen hinzufügen:

GRANT SELECT ON V_$INSTANCE TO dms_user;

Konfiguration einer Oracle-Datenbank als Ziel für AWS Database Migration Service

Bevor Sie eine Oracle-Datenbank als Datenmigrationsziel verwenden können, müssen Sie ein Oracle-Benutzerkonto für angeben AWS DMS. Das Benutzerkonto muss über Lese-/Schreibberechtigungen für die Oracle-Datenbank verfügen, wie angegeben unter Benutzerkontoberechtigungen, die bei der Verwendung von Oracle als Ziel erforderlich sind.

Endpunkteinstellungen bei Verwendung von Oracle als Ziel für AWS DMS

Sie können Endpunkteinstellungen zum Konfigurieren Ihrer Oracle-Zieldatenbank verwenden, ähnlich wie Sie zusätzliche Verbindungsattribute verwenden. Sie geben die Einstellungen an, wenn Sie den Zielendpunkt mithilfe der AWS DMS Konsole oder mithilfe des create-endpoint Befehls in AWS CLI, mit der --oracle-settings '{"EndpointSetting": "value", ...}' JSON-Syntax erstellen.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit Oracle als Ziel verwenden können.

Name Beschreibung

EscapeCharacter

Legen Sie für dieses Attribut ein Escape-Zeichen fest. Mit diesem Escape-Zeichen können Sie festlegen, dass sich ein einzelnes Platzhalterzeichen in Tabellenzuordnungsausdrücken wie ein normales Zeichen verhält. Weitere Informationen finden Sie unter Platzhalter bei der Tabellenzuordnung.

Standardwert: Null

Gültige Werte: alle Zeichen außer Platzhalterzeichen

Beispiel: --oracle-settings '{"EscapeCharacter": "#"}'

UseDirectPathFullLoad

Wenn auf gesetztY, AWS DMS verwendet Volllast einen direkten Pfad. Geben Sie diesen Wert an, um das Direktpfad-Protokoll in der Oracle Call Interface (OCI) zu aktivieren. Dieses OCI-Protokoll ermöglicht das Massenladen von Oracle-Zieltabellen während eines vollständigen Ladevorgangs.

Standardwert: true

Zulässige Werte: true/false

Beispiel: --oracle-settings '{"UseDirectPathFullLoad": false}'

DirectPathParallelLoad

Wenn true festgelegt ist, gibt dieses Attribut einen parallelen Ladevorgang an, wenn UseDirectPathFullLoad auf Y eingestellt ist. Dieses Attribut gilt auch nur, wenn Sie die Funktion für AWS DMS paralleles Laden verwenden. Weitere Informationen finden Sie in der Beschreibung der Operation parallel-load unter Regeln und Operationen für Tabellen- und Sammlungseinstellungen.

Eine Einschränkung bei der Angabe dieser Einstellung für paralleles Laden besteht darin, dass die Zieltabelle keine Einschränkungen oder Indizes aufweisen kann. Weitere Informationen zu dieser Einschränkung finden Sie unter Enabling Constraints After a Parallel Direct Path Load. Wenn Einschränkungen oder Indizes aktiviert sind, hat das Einstellen dieses Attributs auf true keine Auswirkung.

Standardwert: false

Zulässige Werte: true/false

Beispiel: --oracle-settings '{"DirectPathParallelLoad": true}'

DirectPathNoLog

Wenn true festgelegt ist, hilft dieses Attribut, die Commit-Rate für die Oracle-Zieldatenbank zu erhöhen, indem direkt in Tabellen geschrieben und kein Trail zu Datenbankprotokollen geschrieben wird. Weitere Informationen finden Sie unter Direct-Load INSERT. Auch dieses Attribut gilt nur, wenn Sie UseDirectPathFullLoad auf Y einstellen.

Standardwert: false

Zulässige Werte: true/false

Beispiel: --oracle-settings '{"DirectPathNoLog": true}'

CharLengthSemantics

Gibt an, ob die Länge einer Zeichenspalte in Bytes oder in Zeichen ist. Um anzugeben, dass die Länge der Zeichenspalte in Zeichen ist, setzen Sie dieses Attribut auf CHAR. Andernfalls ist die Länge der Zeichenspalte in Bytes.

Standardwert: Nicht auf CHAR eingestellt

Zulässige Werte: CHAR

Beispiel: --oracle-settings '{"CharLengthSemantics": "CHAR"}'

AlwaysReplaceEmptyString

AWS DMS fügt bei der Migration zu einem Oracle-Ziel ein zusätzliches Leerzeichen hinzu, um eine leere Zeichenfolge zu replizieren. Im Allgemeinen gibt es in Oracle keine Notation für eine leere Zeichenfolge. Wenn Sie eine leere Zeichenfolge in varchar2 einfügen, laden Sie leere Zeichenfolgen als NULL. Wenn Sie die Daten in Oracle als NULL einfügen möchten, setzen Sie dieses Attribut auf FALSE.

Standardwert: true

Zulässige Werte: true/false

Beispiel: --oracle-settings '{"AlwaysReplaceEmptyString": false}'

Zieldatentypen für Oracle

Eine Oracle-Zieldatenbank, die mit verwendet wird, AWS DMS unterstützt die meisten Oracle-Datentypen. Die folgende Tabelle zeigt die Oracle-Zieldatentypen, die bei der Verwendung unterstützt werden, AWS DMS sowie die Standardzuweisung von AWS DMS Datentypen. Weitere Informationen zum Anzeigen der Datentypen, die von der Quelle zugeordnet werden, finden Sie im Abschnitt für die Quelle, die Sie verwenden.

AWS DMS Datentyp

Oracle-Datentyp

BOOLEAN

NUMBER (1)

BYTES

RAW (Länge)

DATUM

DATETIME

TIME

TIMESTAMP (0)

DATETIME

TIMESTAMP (Skalierung)

INT1

NUMBER (3)

INT2

NUMBER (5)

INT4

NUMBER (10)

INT8

NUMBER (19)

NUMERIC

NUMBER (p,s)

REAL4

FLOAT

REAL8

FLOAT

STRING

Mit Datumsangabe: DATE

Mit Zeitangabe: TIMESTAMP

Mit Zeitstempelangabe: TIMESTAMP

Mit Angabe von "timestamp_with_timezone": TIMESTAMP WITH TIMEZONE

Mit Angabe von "timestamp_with_local_timezone": TIMESTAMP WITH LOCAL TIMEZONE Mit Angabe von "interval_year_to_month": INTERVAL YEAR TO MONTH

Mit Angabe von "interval_day_to_second": INTERVAL DAY TO SECOND

Wenn Länge > 4000: CLOB

In allen anderen Fällen: VARCHAR2 (Länge)

UINT1

NUMBER (3)

UINT2

NUMBER (5)

UINT4

NUMBER (10)

UINT8

NUMBER (19)

WSTRING

Wenn Länge > 2000: NCLOB

In allen anderen Fällen: NVARCHAR2 (Länge)

BLOB

BLOB

Um diesen Datentyp mit verwenden zu können AWS DMS, müssen Sie die Verwendung von BLOBs für eine bestimmte Aufgabe aktivieren. BLOB-Datentypen werden nur in Tabellen unterstützt, die einen Primärschlüssel enthalten.

CLOB

CLOB

Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von CLOBs für eine bestimmte Aufgabe aktivieren. Bei Change Data Capture (CDC) unterstützt werden CLOB-Datentypen nur in Tabellen unterstützt, die einen Primärschlüssel enthalten.

STRING

Ein Oracle VARCHAR2-Datentyp in der Quelle mit einer deklarierten Größe von mehr als 4000 Byte wird über den AWS DMS CLOB einem STRING auf dem Oracle-Ziel zugeordnet.

NCLOB

NCLOB

Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von NCLOBs für eine bestimmte Aufgabe aktivieren. Bei CDC werden NCLOB-Datentypen nur in Tabellen unterstützt, die einen Primärschlüssel enthalten.

WSTRING

Ein Oracle VARCHAR2-Datentyp in der Quelle mit einer deklarierten Größe von mehr als 4000 Byte wird über den AWS DMS NCLOB einem WSTRING auf dem Oracle-Ziel zugeordnet.

XMLTYPE

Der Zieldatentyp XMLTYPE ist nur bei Oracle-zu-Oracle-Replikationsaufgaben relevant.

Wenn die Quelldatenbank Oracle ist, werden die Quelldatentypen unverändert in der Oracle-Zieldatenbank repliziert. Beispiel: Ein XMLTYPE-Datentyp in der Quelldatenbank wird als XMLTYPE-Datentyp in der Zieldatenbank erstellt.