Verwenden einer Oracle-Datenbank als Quelle für AWS DMS - 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 Quelle für AWS DMS

Sie können Daten aus einer oder mehreren Oracle-Datenbanken migrieren mit AWS DMS. Mit einer Oracle-Datenbank als Quelle können Sie Daten zu allen von AWS DMS unterstützten Zielen migrieren.

AWS DMS unterstützt die folgenden Oracle-Datenbankeditionen:

  • Oracle Enterprise Edition

  • Oracle Standard Edition

  • Oracle Express Edition

  • Oracle Personal Edition

Hinweise zu Versionen von Oracle-Datenbanken, die als Quelle AWS DMS unterstützt werden, finden Sie unterQuellen für AWS DMS.

Sie können Secure Sockets Layer (SSL) verwenden, um Verbindungen zwischen Ihrem Oracle-Endpunkt und der Replikations-Instance zu verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem Oracle-Endpunkt finden Sie unter SSL-Unterstützung für einen Oracle-Endpunkt.

AWS DMS unterstützt die Verwendung von Oracle Transparent Data Encryption (TDE) zur Verschlüsselung ruhender Daten in der Quelldatenbank. Weitere Informationen zur Verwendung von Oracle TDE mit einem Oracle-Quellendpunkt finden Sie unter Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS.

AWS unterstützt die Verwendung von TLS Version 1.2 und höher mit Oracle-Endpunkten (und allen anderen Endpunkttypen) und empfiehlt die Verwendung von TLS Version 1.3 oder höher.

Gehen Sie wie folgt vor, um eine Oracle-Datenbank als AWS DMS Quellendpunkt zu konfigurieren:

  1. Erstellen Sie einen Oracle-Benutzer mit den entsprechenden Berechtigungen für den AWS DMS Zugriff auf Ihre Oracle-Quelldatenbank.

  2. Erstellen Sie einen Oracle-Quellendpunkt, der der von Ihnen ausgewählten Oracle-Datenbankkonfiguration entspricht. Um eine full-load-only Aufgabe zu erstellen, ist keine weitere Konfiguration erforderlich.

  3. Um eine Aufgabe zu erstellen, die die Erfassung von Änderungsdaten übernimmt (eine reine CDC-Aufgabe oder eine Volllast- und CDC-Aufgabe), wählen Sie Oracle LogMiner oder AWS DMS Binary Reader, um Datenänderungen zu erfassen. Die Auswahl von LogMiner oder Binary Reader bestimmt einige der späteren Berechtigungen und Konfigurationsoptionen. Einen Vergleich zwischen Binary Reader LogMiner und Binary Reader finden Sie im folgenden Abschnitt.

Anmerkung

Weitere Informationen zu Volllastaufgaben, reinen CDC-Aufgaben sowie Volllast-und-CDC-Aufgaben finden Sie unter Erstellen einer Aufgabe.

Weitere Informationen zur Arbeit mit Oracle-Quelldatenbanken und AWS DMS finden Sie in den folgenden Abschnitten.

Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC

In gibt es zwei Methoden zum Lesen der Redo-Logs AWS DMS, wenn Change Data Capture (CDC) für Oracle als Quelle ausgeführt wird: Oracle LogMiner und AWS DMS Binary Reader. LogMiner ist eine Oracle-API zum Lesen der Online-Redo-Logs und archivierten Redo-Log-Dateien. Binary Reader ist eine AWS DMS Methode, die die rohen Redo-Log-Dateien direkt liest und analysiert. Diese Methoden weisen die folgenden Merkmale auf.

Funktion LogMiner Binary Reader
Einfache Konfiguration Ja Nein
Geringere Auswirkungen auf E/A und CPU des Quellsystems Nein Ja
Bessere CDC-Leistung Nein Ja
Unterstützung für Oracle-Tabellen-Cluster Ja Nein
Unterstützung für alle Typen von Oracle Hybrid Columnar Compression (HCC) Ja

Teilweise

Binary Reader unterstützt QUERY LOW nicht für Aufgaben mit CDC. Alle anderen HCC-Typen werden vollständig unterstützt.

Unterstützung für LOB-Spalten nur in Oracle 12c Nein (LOB-Support ist LogMiner in Oracle 12c nicht verfügbar.) Ja
Unterstützung für UPDATE-Anweisungen, die sich nur auf LOB-Spalten auswirken Nein Ja
Unterstützung für Oracle Transparent Data Encryption (TDE)

Teilweise

Bei Verwendung von Oracle LogMiner wird die TDE-Verschlüsselung auf Spaltenebene für Amazon RDS for Oracle AWS DMS nicht unterstützt.

Teilweise

Binary Reader unterstützt TDE nur für selbstverwaltete Oracle-Datenbanken.

Unterstützung für alle Oracle-Komprimierungsmethoden Ja Nein
Unterstützung für XA-Transaktionen Nein Ja
RAC

Ja

Nicht empfohlen

Ja

Dringend empfohlen

Anmerkung

AWS DMS Verwendet standardmäßig Oracle LogMiner for (CDC).

AWS DMS unterstützt Methoden zur transparenten Datenverschlüsselung (TDE) bei der Arbeit mit einer Oracle-Quelldatenbank. Wenn die von Ihnen angegebenen TDE-Anmeldeinformationen falsch sind, schlägt die AWS DMS Migrationsaufgabe nicht fehl, was sich auf die laufende Replikation verschlüsselter Tabellen auswirken kann. Weitere Informationen zum Angeben der TDE-Anmeldeinformationen finden Sie unter Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS.

Zu den Hauptvorteilen der Verwendung LogMiner von AWS DMS gehören die folgenden:

  • LogMiner unterstützt die meisten Oracle-Optionen, wie Verschlüsselungs- und Komprimierungsoptionen. Binary Reader unterstützt nicht alle Oracle-Optionen, insbesondere die Komprimierung und die meisten Optionen für die Verschlüsselung.

  • LogMiner bietet eine einfachere Konfiguration, insbesondere im Vergleich zur Einrichtung mit direktem Zugriff auf Binary Reader oder wenn die Redo-Logs mit Oracle Automatic Storage Management (ASM) verwaltet werden.

  • LogMiner unterstützt Tabellencluster zur Verwendung durch. AWS DMS Bei Binary Reader ist das nicht der Fall.

Zu den Hauptvorteilen der Verwendung von Binary Reader mit AWS DMS gehören:

  • Bei Migrationen mit einer großen Anzahl von Änderungen LogMiner kann dies einige I/O- oder CPU-Auswirkungen auf den Computer haben, der die Oracle-Quelldatenbank hostet. Bei Binary Reader ist die Wahrscheinlichkeit geringer, dass E/A- oder CPU-Auswirkungen auftreten, da die Protokolle direkt durchsucht werden, anstatt mehrere Datenbankabfragen durchzuführen.

  • Bei Migrationen mit einem hohen Änderungsvolumen ist die CDC-Leistung bei Verwendung von Binary Reader in der Regel viel besser als bei Oracle. LogMiner

  • Binary Reader unterstützt CDC für LOBs in Oracle Version 12c. LogMinertut es nicht.

Verwenden Sie im Allgemeinen Oracle LogMiner für die Migration Ihrer Oracle-Datenbank, es sei denn, Sie haben eine der folgenden Situationen:

  • Sie müssen mehrere Migrationsaufgaben auf der Oracle-Quelldatenbank ausführen.

  • Der Umfang der Änderungen oder des Redo-Protokolls in der Oracle-Quelldatenbank ist hoch oder Sie haben Änderungen und verwenden auch Oracle ASM.

Anmerkung

Wenn Sie zwischen der Verwendung von Oracle LogMiner und AWS DMS Binary Reader wechseln, stellen Sie sicher, dass Sie die CDC-Aufgabe neu starten.

Konfiguration für CDC für eine Oracle-Quelldatenbank

Damit ein Oracle-Quellendpunkt für eine Aufgabe zur Erfassung von Datenänderungen (Change Data Capture, CDC) eine Verbindung zur Datenbank herstellen kann, müssen Sie möglicherweise zusätzliche Verbindungsattribute angeben. Dies kann entweder für eine Volllast-und-CDC- oder für eine reine CDC-Aufgabe gelten. Die zusätzlichen Verbindungsattribute, die Sie angeben, hängen von der Methode ab, die Sie für den Zugriff auf die Redo-Logs verwenden: Oracle LogMiner oder AWS DMS Binary Reader.

Sie geben die zusätzlichen Verbindungsattribute an, wenn Sie einen Quellendpunkt erstellen. Wenn Sie mehrere Verbindungsattributeinstellungen verwenden, trennen Sie diese durch Semikola und ohne zusätzliche Leerräume voneinander (z. B. oneSetting;thenAnother).

AWS DMS verwendet LogMiner standardmäßig. Sie müssen keine zusätzlichen Verbindungsattribute angeben, um dieses Hilfsprogramm zu verwenden.

Um Binary Reader für den Zugriff auf die Redo-Protokolle verwenden zu können, müssen Sie die folgenden zusätzlichen Verbindungsattribute hinzufügen.

useLogMinerReader=N;useBfile=Y;

Verwenden Sie das folgende Format für die zusätzlichen Verbindungsattribute, um auf einen Server zuzugreifen, der ASm mit Binary Reader zuzugreifen.

useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM;

Setzen Sie den Password-Anforderungsparameter des Quellendpunkts sowohl auf das Oracle-Benutzerpasswort als auch das ASM-Passwort (durch ein Komma getrennt) wie nachfolgend dargestellt:

oracle_user_password,asm_user_password

Wenn die Oracle-Quelle ASM verwendet, können Sie mit Hochleistungsoptionen in Binary Reader für die Transaktionsverarbeitung in großem Umfang arbeiten. Zu diesen Optionen gehören zusätzliche Verbindungsattribute, um die Anzahl der parallelen Threads (parallelASMReadThreads) und die Anzahl der Read-Ahead-Puffer (readAheadBlocks) anzugeben. Wenn diese Attribute gemeinsam festgelegt werden, kann dies die Leistung der CDC-Aufgabe erheblich verbessern. Die folgenden Einstellungen liefern gute Ergebnisse für die meisten ASM-Konfigurationen.

useLogMinerReader=N;useBfile=Y;asm_user=asm_username;asm_server=RAC_server_ip_address:port_number/+ASM; parallelASMReadThreads=6;readAheadBlocks=150000;

Weitere Hinweise zu Werten, die zusätzliche Verbindungsattribute unterstützen, finden Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS.

Die Leistung einer CDC-Aufgabe mit einer Oracle-Quelle, die ASM verwendet, hängt zudem von anderen Einstellungen ab, die von Ihnen festgelegt werden. Zu diesen Einstellungen gehören Ihre zusätzlichen AWS DMS -Verbindungsattribute sowie die SQL-Einstellungen für die Konfiguration der Oracle-Quelle konfiguriert wurde. Weitere Informationen zu zusätzlichen Verbindungsattributen für eine Oracle-Quelle, die ASM verwendet, finden Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS.

Sie müssen außerdem einen geeigneten CDC-Startpunkt wählen. In der Regel möchten Sie dabei den Punkt der Transaktionsverarbeitung identifizieren, an dem die früheste offene Transaktion erfasst wird, von der aus CDC beginnen kann. Andernfalls kann es passieren, dass bei der CDC-Aufgabe frühere offene Transaktionen übersehen werden. Für eine Oracle-Quelldatenbank können Sie auf der Grundlage der Oracle-Systemänderungsnummer (System Change Number, SCN) einen nativen CDC-Startpunkt wählen, um diese früheste offene Transaktion zu identifizieren. Weitere Informationen finden Sie unter Durchführen der Replikation von einem CDC-Startpunkt aus.

Weitere Informationen zum Konfigurieren von CDC für eine selbstverwaltete Oracle-Datenbank als Quelle finden Sie unter Kontoberechtigungen sind erforderlich, wenn Sie Oracle für den Zugriff LogMiner auf die Redo-Logs verwenden, Kontoberechtigungen sind erforderlich, wenn AWS DMS Binary Reader für den Zugriff auf die Redo-Logs verwendet wird und Erforderliche zusätzliche Kontoberechtigungen bei Verwendung von Binary Reader mit Oracle ASM.

Weitere Hinweise zur Konfiguration von CDC für eine AWS-verwaltete Oracle-Datenbank als Quelle finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS und. Verwenden von Amazon RDS Oracle Standby (Lesereplikat) als Quelle mit Binary Reader für CDC in AWS DMS

Workflows für die Konfiguration einer selbstverwalteten oder AWS-verwalteten Oracle-Quelldatenbank für AWS DMS

Konfigurieren einer Oracle-Quelldatenbank

Wenden Sie zum Konfigurieren einer selbstverwalteten Quelldatenbank-Instance die folgenden Workflow-Schritte abhängig davon an, wie Sie CDC ausführen.

Für diesen Workflow-Schritt Gehen Sie wie folgt vor, wenn Sie CDC verwenden LogMiner Vorgehensweise bei Ausführung von CDC mit Binary Reader
Gewähren Sie Oracle-Kontoberechtigungen. Siehe Erforderliche Benutzerkontenberechtigungen für eine selbstverwaltete Oracle-Quelle für AWS DMS. Siehe Erforderliche Benutzerkontenberechtigungen für eine selbstverwaltete Oracle-Quelle für AWS DMS.
Bereiten Sie die Quelldatenbank für die Replikation mit CDC vor. Siehe Vorbereiten einer selbstverwalteten Oracle-Quelldatenbank für CDC mit AWS DMS. Siehe Vorbereiten einer selbstverwalteten Oracle-Quelldatenbank für CDC mit AWS DMS.
Gewähren Sie zusätzliche Oracle-Benutzerberechtigungen, die für CDC erforderlich sind. Siehe Kontoberechtigungen sind erforderlich, wenn Sie Oracle für den Zugriff LogMiner auf die Redo-Logs verwenden. Siehe Kontoberechtigungen sind erforderlich, wenn AWS DMS Binary Reader für den Zugriff auf die Redo-Logs verwendet wird.
Gewähren Sie einer Oracle-Instance mit ASM zusätzliche Benutzerkontenberechtigungen, die für den Zugriff auf ASM für CDC erforderlich sind. Keine zusätzliche Aktion. AWS DMS unterstützt Oracle ASM ohne zusätzliche Kontoberechtigungen. Siehe Erforderliche zusätzliche Kontoberechtigungen bei Verwendung von Binary Reader mit Oracle ASM.
Falls Sie dies noch nicht getan haben, konfigurieren Sie die Aufgabe so, dass sie LogMiner oder Binary Reader for CDC verwendet. Siehe Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC. Siehe Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC.
Konfigurieren Sie Oracle Standby als Quelle für CDC. AWS DMS unterstützt Oracle Standby nicht als Quelle. Siehe Verwenden von selbstverwaltetem Oracle Standby als Quelle mit Binary Reader für CDC in AWS DMS.

Verwenden Sie die folgenden Workflow-Schritte, um eine von AWS-verwaltete Oracle-Quelldatenbank-Instance zu konfigurieren.

Für diesen Workflow-Schritt Wenn Sie CDC verwenden LogMiner, gehen Sie wie folgt vor Vorgehensweise bei Ausführung von CDC mit Binary Reader
Gewähren Sie Oracle-Kontoberechtigungen. Weitere Informationen finden Sie unter Erforderliche Benutzerkontenberechtigungen für eine AWS-verwaltete Oracle-Quelle für AWS DMS. Weitere Informationen finden Sie unter Erforderliche Benutzerkontenberechtigungen für eine AWS-verwaltete Oracle-Quelle für AWS DMS.
Bereiten Sie die Quelldatenbank für die Replikation mit CDC vor. Weitere Informationen finden Sie unter Konfiguration einer AWS-verwalteten Oracle-Quelle für AWS DMS. Weitere Informationen finden Sie unter Konfiguration einer AWS-verwalteten Oracle-Quelle für AWS DMS.
Gewähren Sie zusätzliche Oracle-Benutzerberechtigungen, die für CDC erforderlich sind. Es sind keine zusätzlichen Kontoberechtigungen erforderlich. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.
Falls Sie dies noch nicht getan haben, konfigurieren Sie die Aufgabe so, dass sie LogMiner oder Binary Reader for CDC verwendet. Weitere Informationen finden Sie unter Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC. Weitere Informationen finden Sie unter Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC.
Konfigurieren Sie Oracle Standby als Quelle für CDC. AWS DMS unterstützt Oracle Standby nicht als Quelle. Weitere Informationen finden Sie unter Verwenden von Amazon RDS Oracle Standby (Lesereplikat) als Quelle mit Binary Reader für CDC in AWS DMS.

Arbeiten mit einer selbstverwalteten Oracle-Datenbank als Quelle für AWS DMS

Eine selbstverwaltete Datenbank ist eine Datenbank, die von Ihnen konfiguriert und kontrolliert wird. Dabei kann es sich um eine On-Premises-Datenbank-Instance oder um eine Datenbank in Amazon EC2 handeln. Im Folgenden erfahren Sie mehr über die Rechte und Konfigurationen, die Sie benötigen, wenn Sie eine selbstverwaltete Oracle-Datenbank mit verwenden. AWS DMS

Erforderliche Benutzerkontenberechtigungen für eine selbstverwaltete Oracle-Quelle für AWS DMS

Um eine Oracle-Datenbank als Quelle in zu verwenden AWS DMS, gewähren Sie dem Oracle-Benutzer, der in den Verbindungseinstellungen für den Oracle-Endpunkt angegeben ist, die folgenden Rechte.

Anmerkung

Wenn Sie Berechtigungen erteilen, verwenden Sie den tatsächlichen Namen der Objekte und nicht die Synonyme dafür. Verwenden Sie beispielsweise V_$OBJECT einschließlich des Unterstrichs, nicht V$OBJECT ohne Unterstrich.

GRANT CREATE SESSION TO db_user; GRANT SELECT ANY TRANSACTION TO db_user; GRANT SELECT ON V_$ARCHIVED_LOG TO db_user; GRANT SELECT ON V_$LOG TO db_user; GRANT SELECT ON V_$LOGFILE TO db_user; GRANT SELECT ON V_$LOGMNR_LOGS TO db_user; GRANT SELECT ON V_$LOGMNR_CONTENTS TO db_user; GRANT SELECT ON V_$DATABASE TO db_user; GRANT SELECT ON V_$THREAD TO db_user; GRANT SELECT ON V_$PARAMETER TO db_user; GRANT SELECT ON V_$NLS_PARAMETERS TO db_user; GRANT SELECT ON V_$TIMEZONE_NAMES TO db_user; GRANT SELECT ON V_$TRANSACTION TO db_user; GRANT SELECT ON V_$CONTAINERS TO db_user; GRANT SELECT ON ALL_INDEXES TO db_user; GRANT SELECT ON ALL_OBJECTS TO db_user; GRANT SELECT ON ALL_TABLES TO db_user; GRANT SELECT ON ALL_USERS TO db_user; GRANT SELECT ON ALL_CATALOG TO db_user; GRANT SELECT ON ALL_CONSTRAINTS TO db_user; GRANT SELECT ON ALL_CONS_COLUMNS TO db_user; GRANT SELECT ON ALL_TAB_COLS TO db_user; GRANT SELECT ON ALL_IND_COLUMNS TO db_user; GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TO db_user; GRANT SELECT ON ALL_LOG_GROUPS TO db_user; GRANT SELECT ON ALL_TAB_PARTITIONS TO db_user; GRANT SELECT ON SYS.DBA_REGISTRY TO db_user; GRANT SELECT ON SYS.OBJ$ TO db_user; GRANT SELECT ON DBA_TABLESPACES TO db_user; GRANT SELECT ON DBA_OBJECTS TO db_user; -– Required if the Oracle version is earlier than 11.2.0.3. GRANT SELECT ON SYS.ENC$ TO db_user; -– Required if transparent data encryption (TDE) is enabled. For more information on using Oracle TDE with AWS DMS, see Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS. GRANT SELECT ON GV_$TRANSACTION TO db_user; -– Required if the source database is Oracle RAC in AWS DMS versions 3.4.6 and higher. GRANT SELECT ON V_$DATAGUARD_STATS TO db_user; -- Required if the source database is Oracle Data Guard and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher.

Erteilen Sie für jede replizierte Tabelle die folgende zusätzliche Berechtigung, wenn Sie eine spezifische Tabellenliste verwenden.

GRANT SELECT on any-replicated-table to db_user;

Erteilen Sie die folgende zusätzliche Berechtigung, um LOB-Spalten mit dem Validierungs-Feature zu validieren.

GRANT EXECUTE ON SYS.DBMS_CRYPTO TO db_user;

Erteilen Sie die folgenden zusätzlichen Rechte, wenn Sie stattdessen Binary Reader verwenden LogMiner.

GRANT SELECT ON SYS.DBA_DIRECTORIES TO db_user;

Erteilen Sie die folgende zusätzliche Berechtigung, um Ansichten verfügbar zu machen.

GRANT SELECT on ALL_VIEWS to dms_user;

Um Ansichten verfügbar zu machen, müssen Sie Ihrem Quellendpunkt außerdem das zusätzliche Verbindungsattribut exposeViews=true hinzufügen.

Gewähren Sie die folgende zusätzliche Berechtigung, wenn Sie Serverless-Replikationen verwenden.

GRANT SELECT on dba_segments to db_user;

Weitere Informationen zu Serverless-Replikationen finden Sie unter Arbeiten mit AWS DMS Serverless.

Erteilen Sie die folgenden zusätzlichen Berechtigungen, wenn Sie Oracle-spezifische Bewertungen vor der Migration verwenden.

GRANT SELECT on gv_$parameter to dms_user; GRANT SELECT on v_$instance to dms_user; GRANT SELECT on v_$version to dms_user; GRANT SELECT on gv_$ASM_DISKGROUP to dms_user; GRANT SELECT on gv_$database to dms_user; GRANT SELECT on dba_db_links to dms_user; GRANT SELECT on gv_$log_History to dms_user; GRANT SELECT on gv_$log to dms_user; GRANT SELECT ON DBA_TYPES TO db_user; GRANT SELECT ON DBA_USERS to dms_user; GRANT SELECT ON DBA_DIRECTORIES to dms_user;

Informationen zu Oracle-spezifischen Bewertungen vor der Migration finden Sie unter Bewertungen von Oracle.

Voraussetzungen für die Verarbeitung offener Transaktionen für Oracle Standby

Wenn Sie AWS DMS Versionen 3.4.6 und höher verwenden, führen Sie die folgenden Schritte aus, um offene Transaktionen für Oracle Standby zu verarbeiten.

  1. Erstellen Sie einen Datenbank-Link mit dem Namen AWSDMS_DBLINK in der Primärdatenbank. DMS_USER verwendet den Datenbank-Link, um eine Verbindung mit der Primärdatenbank herzustellen. Beachten Sie, dass der Datenbank-Link von der Standby-Instance aus ausgeführt wird, um die offenen Transaktionen abzufragen, die in der Primärdatenbank ausgeführt werden. Sehen Sie sich das folgende -Beispiel an.

    CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO DMS_USER IDENTIFIED BY DMS_USER_PASSWORD USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP)(PORT=PORT)) (CONNECT_DATA=(SERVICE_NAME=SID)) )';
  2. Stellen Sie sicher, dass die Verbindung mit dem Datenbank-Link über DMS_USER hergestellt ist, wie im folgenden Beispiel dargestellt.

    select 1 from dual@AWSDMS_DBLINK

Vorbereiten einer selbstverwalteten Oracle-Quelldatenbank für CDC mit AWS DMS

Führen Sie die folgenden Schritte aus, um Ihre selbstverwaltete Oracle-Datenbank als Quelle zum Ausführen einer CDC-Aufgabe vorzubereiten:

Es wird überprüft, ob die Version der AWS DMS Quelldatenbank unterstützt wird

Führen Sie eine Abfrage wie die folgende aus, um zu überprüfen, ob die aktuelle Version der Oracle-Quelldatenbank von AWS DMS unterstützt wird.

SELECT name, value, description FROM v$parameter WHERE name = 'compatible';

Hier sind name, value und description Spalten irgendwo in der Datenbank, die auf der Grundlage des Wertes von name abgefragt werden. Wenn diese Abfrage ohne Fehler ausgeführt wird, wird die aktuelle Version der Datenbank AWS DMS unterstützt und Sie können mit der Migration fortfahren. Wenn die Abfrage einen Fehler AWS DMS auslöst, wird die aktuelle Version der Datenbank nicht unterstützt. Um mit der Migration fortzufahren, konvertieren Sie zunächst die Oracle-Datenbank in eine Version, die von unterstützt wird AWS DMS.

Sicherstellen, dass der Modus ARCHIVELOG aktiviert ist

Sie können Oracle in zwei verschiedenen Modi ausführen: dem ARCHIVELOG-Modus und dem NOARCHIVELOG-Modus. Führen Sie die Datenbank im Modus ARCHIVELOG aus, um eine CDC-Aufgabe auszuführen. Führen Sie die folgende Abfrage aus, um zu ermitteln, ob sich die Datenbank im Modus ARCHIVELOG befindet.

SQL> SELECT log_mode FROM v$database;

Wenn der Modus NOARCHIVELOG zurückgegeben wird, setzen Sie die Datenbank entsprechend den Oracle-Anweisungen auf ARCHIVELOG.

Einrichten der zusätzlichen Protokollierung

Um laufende Änderungen zu erfassen, AWS DMS müssen Sie eine minimale zusätzliche Protokollierung in Ihrer Oracle-Quelldatenbank aktivieren. Darüber hinaus müssen Sie die zusätzliche Protokollierung für jede replizierte Tabelle in der Datenbank aktivieren.

AWS DMS Fügt standardmäßig PRIMARY KEY zusätzliche Protokollierung für alle replizierten Tabellen hinzu. Um PRIMARY KEY zusätzliche Protokollierung hinzufügen AWS DMS zu können, gewähren Sie für jede replizierte Tabelle die folgende Berechtigung.

ALTER on any-replicated-table;

Sie können die hinzugefügte standardmäßige PRIMARY KEY zusätzliche Protokollierung deaktivieren, indem Sie das zusätzliche AWS DMS Verbindungsattribut verwenden. addSupplementalLogging Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS.

Stellen Sie sicher, dass Sie die zusätzliche Protokollierung aktivieren, wenn Ihre Replikationsaufgabe eine Tabelle mithilfe einer WHERE-Klausel aktualisiert, die nicht auf eine Primärschlüsselspalte verweist.

So richten Sie die zusätzliche Protokollierung manuell ein
  1. Führen Sie die folgende Abfrage aus, um zu überprüfen, ob bereits die zusätzliche Protokollierung für die Datenbank aktiviert ist.

    SELECT supplemental_log_data_min FROM v$database;

    Ist das zurückgegebene Ergebnis YES oder IMPLICIT, ist die zusätzliche Protokollierung für die Datenbank aktiviert.

    Wenn dies nicht der Fall ist, aktivieren Sie die zusätzliche Protokollierung für die Datenbank, indem Sie den folgenden Befehl ausführen.

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
  2. Stellen Sie sicher, dass die erforderliche zusätzliche Protokollierung für jede replizierte Tabelle hinzugefügt wird.

    Berücksichtigen Sie dabei Folgendes:

    • Wenn der Tabelle die zusätzliche Protokollierung ALL COLUMNS hinzugefügt wird, müssen Sie keine weitere Protokollierung hinzufügen.

    • Wenn ein Primärschlüssel vorhanden ist, fügen Sie die zusätzliche Protokollierung für den Primärschlüssel hinzu. Dazu können Sie entweder das Format zum Hinzufügen der zusätzlichen Protokollierung zum Primärschlüssel selbst verwenden oder die zusätzliche Protokollierung auf den Primärschlüsselspalten der Datenbank hinzufügen.

      ALTER TABLE Tablename ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
    • Wenn kein Primärschlüssel vorhanden ist und die Tabelle über einen einzigen eindeutigen Index verfügt, müssen alle Spalten des eindeutigen Index dem zusätzlichen Protokoll hinzugefügt werden.

      ALTER TABLE TableName ADD SUPPLEMENTAL LOG GROUP LogGroupName (UniqueIndexColumn1[, UniqueIndexColumn2] ...) ALWAYS;

      Die Verwendung von SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS fügt die Spalten des eindeutigen Index dem Protokoll nicht hinzu.

    • Wenn kein Primärschlüssel vorhanden ist und die Tabelle mehrere eindeutige Indizes hat, AWS DMS wird der erste eindeutige Index in einer alphabetisch aufsteigenden Liste ausgewählt. Sie müssen die zusätzliche Protokollierung für die Spalten des ausgewählten Index wie im vorherigen Punkt hinzufügen.

      Die Verwendung von SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS fügt die Spalten des eindeutigen Index dem Protokoll nicht hinzu.

    • Wenn kein Primärschlüssel vorhanden ist und kein eindeutiger Index vorhanden ist, fügen Sie die zusätzliche Protokollierung für alle Spalten hinzu.

      ALTER TABLE TableName ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

      In einigen Fällen können der Primärschlüssel oder der eindeutige Index der Zieltabelle und der Primärschlüssel oder der eindeutige Index der Quelltabelle unterschiedlich sein. Fügen Sie in diesen Fällen die zusätzliche Protokollierung manuell für die Spalten der Quelltabelle hinzu, die den Primärschlüssel oder den eindeutigen Index der Zieltabelle darstellen.

      Wenn Sie den Primärschlüssel der Zieltabelle ändern, sollten Sie die zusätzliche Protokollierung für die Spalten des eindeutigen Zielindex hinzufügen, anstatt für die Spalten des Primärschlüssels oder des eindeutigen Index der Quelle.

Wenn für eine Tabelle ein Filter oder eine Transformation definiert ist, müssen Sie möglicherweise die zusätzliche Protokollierung aktivieren.

Berücksichtigen Sie dabei Folgendes:

  • Wenn der Tabelle die zusätzliche Protokollierung ALL COLUMNS hinzugefügt wird, müssen Sie keine weitere Protokollierung hinzufügen.

  • Wenn die Tabelle über einen eindeutigen Index oder einen Primärschlüssel verfügt, fügen Sie die zusätzliche Protokollierung für jede Spalte hinzu, die von einem Filter oder einer Transformation betroffen ist. Tun Sie dies jedoch nur, wenn sich diese Spalten von den Spalten unterscheiden, die den Primärschlüssel oder den eindeutigen Index darstellen.

  • Wenn eine Transformation nur eine Spalte umfasst, fügen Sie diese Spalte nicht einer zusätzlichen Protokollierungsgruppe hinzu. Fügen Sie für eine Transformation A+B beispielsweise die zusätzliche Protokollierung für beide Spalten, A und B, hinzu. Fügen Sie jedoch für eine Transformation substring(A,10) jedoch keine zusätzliche Protokollierung für Spalte A hinzu.

  • Sie können die zusätzliche Protokollierung USER_LOG_GROUP einrichten, um die zusätzliche Protokollierung für Spalten, die den Primärschlüssel oder den eindeutigen Index darstellen, und andere Spalten zu aktivieren, die gefiltert oder transformiert werden. Fügen Sie diese Protokollierung sowohl für die Spalten, die den Primärschlüssel oder den eindeutigen Index darstellen, als auch für die anderen spezifischen Spalten hinzu, die gefiltert oder transformiert werden.

    Wenn Sie beispielsweise eine Tabelle mit dem Namen TEST.LOGGING mit dem Primärschlüssel ID und einem Filter nach der Spalte NAME replizieren möchten, können Sie einen Befehl wie den folgenden ausführen, um die zusätzliche Protokollierung der Protokollgruppe zu erstellen.

    ALTER TABLE TEST.LOGGING ADD SUPPLEMENTAL LOG GROUP TEST_LOG_GROUP (ID, NAME) ALWAYS;

Kontoberechtigungen sind erforderlich, wenn Sie Oracle für den Zugriff LogMiner auf die Redo-Logs verwenden

Um mit Oracle auf die Redo-Logs zuzugreifen LogMiner, gewähren Sie dem Oracle-Benutzer die folgenden Rechte, die in den Verbindungseinstellungen für den Oracle-Endpunkt angegeben sind.

GRANT EXECUTE on DBMS_LOGMNR to db_user; GRANT SELECT on V_$LOGMNR_LOGS to db_user; GRANT SELECT on V_$LOGMNR_CONTENTS to db_user; GRANT LOGMINING to db_user; -– Required only if the Oracle version is 12c or higher.

Kontoberechtigungen sind erforderlich, wenn AWS DMS Binary Reader für den Zugriff auf die Redo-Logs verwendet wird

Um mit dem AWS DMS Binary Reader auf die Redo-Logs zuzugreifen, gewähren Sie dem Oracle-Benutzer, der in den Verbindungseinstellungen für den Oracle-Endpunkt angegeben ist, die folgenden Rechte.

GRANT SELECT on v_$transportable_platform to db_user; -– Grant this privilege if the redo logs are stored in Oracle Automatic Storage Management (ASM) and AWS DMS accesses them from ASM. GRANT CREATE ANY DIRECTORY to db_user; -– Grant this privilege to allow AWS DMS to use Oracle BFILE read file access in certain cases. This access is required when the replication instance doesn't have file-level access to the redo logs and the redo logs are on non-ASM storage. GRANT EXECUTE on DBMS_FILE_TRANSFER to db_user; -– Grant this privilege to copy the redo log files to a temporary folder using the CopyToTempFolder method. GRANT EXECUTE on DBMS_FILE_GROUP to db_user;

Binary Reader arbeitet mit Oracle-Dateimerkmalen, zu denen Oracle-Verzeichnisse gehören. Jedes Oracle-Verzeichnisobjekt enthält den Namen des Ordners, der die zu verarbeitenden Wiederholungsprotokolldateien enthält. Diese Oracle-Verzeichnisse sind nicht auf Dateisystemebene repräsentiert. Stattdessen handelt es sich um logische Verzeichnisse, die auf Oracle-Datenbankebene erstellt werden. Sie können sie in der Oracle ALL_DIRECTORIES-Ansicht anzeigen.

Wenn Sie diese Oracle-Verzeichnisse erstellen möchten AWS DMS , gewähren Sie die oben angegebene CREATE ANY DIRECTORY Berechtigung. AWS DMS erstellt die Verzeichnisnamen mit dem DMS_ Präfix. Wenn Sie die CREATE ANY DIRECTORY-Berechtigung nicht erteilen, erstellen Sie die entsprechenden Verzeichnisse manuell. In einigen Fällen ist bei der manuellen Erstellung der Oracle-Verzeichnisse der im Oracle-Quellendpunkt angegebene Oracle-Benutzer nicht der Benutzer, der diese Verzeichnisse erstellt hat. In diesen Fällen erteilen Sie auch die READ on DIRECTORY-Berechtigung.

Wenn sich der Oracle-Quellendpunkt im Active Dataguard Standby (ADG) befindet, finden Sie weitere Informationen im Beitrag How to use Binary Reader with ADG im Database Blog. AWS

Anmerkung

AWS DMS CDC unterstützt Active Dataguard Standby nicht, das nicht für die Verwendung des automatischen Redo-Transport-Service konfiguriert ist.

In einigen Fällen können Sie möglicherweise Oracle Managed Files (OMF) zum Speichern der Protokolle verwenden. Oder Ihr Quellendpunkt befindet sich in ADG, sodass Sie die Berechtigung CREATE ANY DIRECTORY nicht erteilen können. Erstellen Sie in diesen Fällen die Verzeichnisse mit allen möglichen Protokollspeicherorten manuell, bevor Sie die Replizierungsaufgabe starten. AWS DMS Wenn AWS DMS nicht das erwartete vorangestellte Verzeichnis findet, wird die Aufgabe beendet. Weiterhin löscht AWS DMS nicht die Einträge, die es in der ALL_DIRECTORIES-Ansicht erstellt hat, löschen Sie diese daher manuell.

Erforderliche zusätzliche Kontoberechtigungen bei Verwendung von Binary Reader mit Oracle ASM

Wenn Sie mit Binary Reader auf die Redo-Protokolle in Automatic Storage Management (ASM) zugreifen möchten, erteilen Sie dem Oracle-Benutzer, der in den Einstellungen zur Oracle-Endpunktverbindung angegeben ist, die folgenden Berechtigungen:

SELECT ON v_$transportable_platform SYSASM -– To access the ASM account with Oracle 11g Release 2 (version 11.2.0.2) and higher, grant the Oracle endpoint user the SYSASM privilege. For older supported Oracle versions, it's typically sufficient to grant the Oracle endpoint user the SYSDBA privilege.

Sie können den ASM-Kontozugriff validieren, indem Sie eine Eingabeaufforderung öffnen und eine der folgenden Anweisungen aufrufen, je nach Ihrer zuvor angegebenen Oracle-Version.

Wenn Sie die SYSDBA-Berechtigung benötigen, verwenden Sie Folgendes.

sqlplus asmuser/asmpassword@+asmserver as sysdba

Wenn Sie die SYSASM-Berechtigung benötigen, verwenden Sie Folgendes.

sqlplus asmuser/asmpassword@+asmserver as sysasm

Verwenden von selbstverwaltetem Oracle Standby als Quelle mit Binary Reader für CDC in AWS DMS

Wenn Sie eine Oracle-Standby-Instance bei Verwendung von Binary Reader für CDC als Quelle konfigurieren möchten, müssen die folgenden Voraussetzungen erfüllt sein:

  • AWS DMS unterstützt derzeit nur Oracle Active Data Guard Standby.

  • Stellen Sie sicher, dass die Konfiguration von Oracle Data Guard Folgendes verwendet:

    • Redo-Transport-Services für automatisierte Übertragungen von Redo-Daten

    • Anwendungsservices, um Redo automatisch auf die Standby-Datenbank anzuwenden

Führen Sie die folgende Abfrage aus, um zu überprüfen, ob diese Anforderungen erfüllt sind.

SQL> select open_mode, database_role from v$database;

Vergewissern Sie sich anhand der Ausgabe dieser Abfrage, dass die Standby-Datenbank im Modus READ ONLY geöffnet ist und Redo automatisch angewendet wird. Beispielsweise:

OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ ONLY WITH APPLY PHYSICAL STANDBY
So konfigurieren Sie eine Oracle-Standby-Instance bei Verwendung von Binary Reader für CDC als Quelle
  1. Erteilen Sie zusätzliche Berechtigungen, die für den Zugriff auf Standby-Protokolldateien erforderlich sind.

    GRANT SELECT ON v_$standby_log TO db_user;
  2. Erstellen Sie mithilfe der AWS Management Console oder der AWS CLI einen Quellendpunkt für Oracle Standby. Geben Sie die folgenden zusätzlichen Verbindungsattribute an, wenn Sie den Endpunkt erstellen.

    useLogminerReader=N;useBfile=Y;
    Anmerkung

    In können Sie zusätzliche Verbindungsattribute verwenden AWS DMS, um anzugeben, ob Sie aus den Archivprotokollen statt aus den Redo-Logs migrieren möchten. Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS.

  3. Konfigurieren Sie das Ziel für archivierte Protokolle.

    Der DMS-Binary-Reader für Oracle-Quellen ohne ASM verwendet Oracle-Verzeichnisse, um auf archivierte Redo-Protokolle zuzugreifen. Wenn Ihre Datenbank so konfiguriert ist, dass Fast Recovery Area (FRA) als Ziel für Archivprotokolle verwendet wird, ist der Speicherort der Archiv-Redo-Dateien nicht konstant. An jedem Tag, an dem archivierte Redo-Protokolle generiert werden, wird in der FRA ein neues Verzeichnis mit dem Verzeichnisnamenformat JJJJ_MM_TT erstellt. Beispielsweise:

    DB_RECOVERY_FILE_DEST/SID/archivelog/YYYY_MM_DD

    Wenn DMS Zugriff auf archivierte Redo-Dateien im neu erstellten FRA-Verzeichnis benötigt und die Primärdatenbank mit Lese-/Schreibzugriff als Quelle verwendet wird, erstellt DMS wie folgt ein neues Oracle-Verzeichnis oder ersetzt ein vorhandenes Oracle-Verzeichnis.

    CREATE OR REPLACE DIRECTORY dmsrep_taskid AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/YYYY_MM_DD’;

    Wenn die Standby-Datenbank als Quelle verwendet wird, kann DMS das Oracle-Verzeichnis nicht erstellen oder ersetzen, da sich die Datenbank im schreibgeschützten Modus befindet. Sie können jedoch einen dieser zusätzlichen Schritte ausführen:

    1. Ändern Sie log_archive_dest_id_1 so, dass ein tatsächlicher Pfad anstelle von FRA in einer solchen Konfiguration verwendet wird, damit Oracle keine täglichen Unterverzeichnisse erstellt:

      ALTER SYSTEM SET log_archive_dest_1=’LOCATION=full directory path

      Erstellen Sie dann ein Oracle-Verzeichnisobjekt, das von DMS verwendet werden soll:

      CREATE OR REPLACE DIRECTORY dms_archived_logs AS ‘full directory path’;
    2. Erstellen Sie ein zusätzliches Archivprotokollziel und ein Oracle-Verzeichnisobjekt, das auf dieses Ziel verweist. Beispielsweise:

      ALTER SYSTEM SET log_archive_dest_3=’LOCATION=full directory path’; CREATE DIRECTORY dms_archived_log AS ‘full directory path’;

      Fügen Sie dann dem Quellendpunkt der Aufgabe ein zusätzliches Verbindungsattribut hinzu:

      archivedLogDestId=3
    3. Erstellen Sie vorab manuell Oracle-Verzeichnisobjekte, die von DMS verwendet werden sollen.

      CREATE DIRECTORY dms_archived_log_20210301 AS ‘DB_RECOVERY_FILE_DEST/SID/archivelog/2021_03_01’; CREATE DIRECTORY dms_archived_log_20210302 AS ‘DB_RECOVERY_FILE_DEST>/SID>/archivelog/2021_03_02’; ...
    4. Erstellen Sie einen Oracle-Scheduler-Auftrag, der täglich ausgeführt wird und das erforderliche Verzeichnis erstellt.

Verwenden einer benutzerverwalteten Datenbank in Oracle Cloud Infrastructure (OCI) als Quelle für CDC in AWS DMS

Eine benutzerverwaltete Datenbank ist eine Datenbank, die Sie konfigurieren und steuern, z. B. eine Oracle-Datenbank, die in einer virtuellen Maschine (VM), einer Bare-Metal-Instance oder einem Exadata-Server erstellt wurde. Es kann sich auch um Datenbanken handeln, die Sie konfigurieren und steuern und die auf einer dedizierten Infrastruktur wie Oracle Cloud Infrastructure (OCI) ausgeführt werden. Die folgenden Informationen beschreiben die Berechtigungen und Konfigurationen, die Sie benötigen, wenn Sie eine benutzerverwaltete Oracle-Datenbank in OCI als Quelle für die Erfassung von Datenänderungen (CDC) in AWS DMS verwenden.

So konfigurieren Sie eine von OCI gehostete benutzerverwaltete Oracle-Datenbank als Quelle für die Erfassung von Datenänderungen
  1. Erteilen Sie erforderliche Benutzerkontoberechtigungen für eine benutzerverwaltete Quelldatenbank in OCI. Weitere Informationen finden Sie unter Account privileges for a self-managed Oracle source endpoint.

  2. Erteilen Sie Kontoberechtigungen, die bei Verwendung von Binary Reader für den Zugriff auf die Redo-Protokolle erforderlich sind. Weitere Informationen finden Sie unter Erforderliche Kontoberechtigungen bei Verwendung von Binary Reader.

  3. Fügen Sie Kontoberechtigungen hinzu, die bei Verwendung von Binary Reader mit Oracle Automatic Storage Management (ASM) erforderlich sind. Weitere Informationen finden Sie unter Erforderliche zusätzliche Kontoberechtigungen bei Verwendung von Binary Reader mit Oracle ASM.

  4. Richten Sie die zusätzliche Protokollierung ein. Weitere Informationen finden Sie unter Einrichten der zusätzlichen Protokollierung.

  5. Richten Sie die TDE-Verschlüsselung ein. Weitere Informationen finden Sie unter Verschlüsselungsmethoden bei Verwendung einer Oracle-Datenbank als Quellendpunkt.

Die folgenden Einschränkungen gelten für die Replikation von Daten aus einer Oracle-Quelldatenbank in Oracle Cloud Infrastructure (OCI).

Einschränkungen
  • DMS unterstützt die Verwendung von Oracle für den Zugriff LogMiner auf die Redo-Logs nicht.

  • DMS unterstützt Autonomous DB nicht.

Arbeiten mit einer AWS-verwalteten Oracle-Datenbank als Quelle für AWS DMS

Eine AWS verwaltete Datenbank ist eine Datenbank, die sich auf einem Amazon-Service wie Amazon RDS, Amazon Aurora oder Amazon S3 befindet. Im Folgenden finden Sie die Rechte und Konfigurationen, die Sie einrichten müssen, wenn Sie eine AWS-verwaltete Oracle-Datenbank mit verwenden. AWS DMS

Erforderliche Benutzerkontenberechtigungen für eine AWS-verwaltete Oracle-Quelle für AWS DMS

Erteilen Sie dem in der Oracle-Quellendpunktdefinition angegebenen Oracle-Benutzerkonto die folgenden Berechtigungen.

Wichtig

Für alle Parameterwerte wie db_user und any-replicated-table geht Oracle davon aus, dass der Wert ausschließlich in Großbuchstaben geschrieben ist, es sei denn, Sie geben den Wert mit einer Kennung an, bei der Groß- und Kleinschreibung beachtet wird. Nehmen wir beispielsweise an, dass Sie einen db_user-Wert ohne Anführungszeichen erstellen, wie in CREATE USER myuser oder CREATE USER MYUSER. In diesem Fall identifiziert und speichert Oracle den Wert ausschließlich in Großbuchstaben (MYUSER). Wenn Sie Anführungszeichen verwenden, wie in CREATE USER "MyUser" oder CREATE USER 'MyUser', identifiziert und speichert Oracle den angegebenen Wert unter Berücksichtigung der Groß- und Kleinschreibung (MyUser).

GRANT CREATE SESSION to db_user; GRANT SELECT ANY TRANSACTION to db_user; GRANT SELECT on DBA_TABLESPACES to db_user; GRANT SELECT ON any-replicated-table to db_user; GRANT EXECUTE on rdsadmin.rdsadmin_util to db_user; -- For Oracle 12c or higher: GRANT LOGMINING to db_user; – Required only if the Oracle version is 12c or higher.

Erteilen Sie außerdem die Berechtigungen SELECT und EXECUTE für SYS-Objekte mithilfe des Amazon-RDS-Verfahrens rdsadmin.rdsadmin_util.grant_sys_object, wie in der Abbildung gezeigt. Weitere Informationen finden Sie unter Erteilen von SELECT- oder EXECUTE-Berechtigungen für SYS-Objekte.

exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_VIEWS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_PARTITIONS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_INDEXES', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TABLES', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_USERS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CATALOG', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONSTRAINTS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONS_COLUMNS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_IND_COLUMNS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_LOG_GROUPS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS', 'db_user', 'SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','db_user','SELECT'); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR', 'db_user', 'EXECUTE'); -- (as of Oracle versions 12.1 and higher) exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'db_user', 'SELECT'); -- (for Amazon RDS Active Dataguard Standby (ADG)) exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'db_user', 'SELECT'); -- (for transparent data encryption (TDE)) exec rdsadmin.rdsadmin_util.grant_sys_object('ENC$', 'db_user', 'SELECT'); -- (for validation with LOB columns) exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'db_user', 'EXECUTE'); -- (for binary reader) exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DIRECTORIES','db_user','SELECT'); -- Required when the source database is Oracle Data guard, and Oracle Standby is used in the latest release of DMS version 3.4.6, version 3.4.7, and higher. exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATAGUARD_STATS', 'db_user', 'SELECT');

Weitere Informationen zur Verwendung von Amazon RDS Active Dataguard Standby (ADG) mit AWS DMS finden Sie unter Verwenden von Amazon RDS Oracle Standby (Lesereplikat) als Quelle mit Binary Reader für CDC in AWS DMS.

Weitere Hinweise zur Verwendung von Oracle TDE mit finden Sie AWS DMS unter. Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS

Voraussetzungen für die Verarbeitung offener Transaktionen für Oracle Standby

Wenn Sie AWS DMS Versionen 3.4.6 und höher verwenden, führen Sie die folgenden Schritte aus, um offene Transaktionen für Oracle Standby zu verarbeiten.

  1. Erstellen Sie einen Datenbank-Link mit dem Namen AWSDMS_DBLINK in der Primärdatenbank. DMS_USER verwendet den Datenbank-Link, um eine Verbindung mit der Primärdatenbank herzustellen. Beachten Sie, dass der Datenbank-Link von der Standby-Instance aus ausgeführt wird, um die offenen Transaktionen abzufragen, die in der Primärdatenbank ausgeführt werden. Sehen Sie sich das folgende -Beispiel an.

    CREATE PUBLIC DATABASE LINK AWSDMS_DBLINK CONNECT TO DMS_USER IDENTIFIED BY DMS_USER_PASSWORD USING '(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=PRIMARY_HOST_NAME_OR_IP)(PORT=PORT)) (CONNECT_DATA=(SERVICE_NAME=SID)) )';
  2. Stellen Sie sicher, dass die Verbindung mit dem Datenbank-Link über DMS_USER hergestellt ist, wie im folgenden Beispiel dargestellt.

    select 1 from dual@AWSDMS_DBLINK

Konfiguration einer AWS-verwalteten Oracle-Quelle für AWS DMS

Bevor Sie eine AWS-verwaltete Oracle-Datenbank als Quelle für verwenden AWS DMS, führen Sie die folgenden Aufgaben für die Oracle-Datenbank aus:

  • Aktivieren Sie automatische Sicherungen. Weitere Informationen zum Aktivieren von automatischen Backups finden Sie unter Aktivieren von automatisierten Backups im Benutzerhandbuch für Amazon RDS.

  • Richten Sie die zusätzliche Protokollierung ein.

  • Richten Sie die Archivierung ein. Durch die Archivierung der Redo-Logs für Ihre Amazon RDS for Oracle DB-Instance können AWS DMS Sie die Protokollinformationen mit Oracle LogMiner oder Binary Reader abrufen.

So richten Sie die Archivierung ein:
  1. Führen Sie den rdsadmin.rdsadmin_util.set_configuration Befehl aus, um die Archivierung einzurichten.

    Führen Sie beispielsweise den folgenden Befehl aus, um die archivierten Redo-Protokolle 24 Stunden lang beizubehalten.

    exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24); commit;
    Anmerkung

    Das Commit muss durchgeführt werden, damit Änderungen wirksam werden.

  2. Stellen Sie sicher, dass Ihr Speicherplatz für die archivierten Redo-Protokolle im angegebenen Zeitraum ausreicht. Wenn Ihr Speicherzeitraum beispielsweise 24 Stunden beträgt, berechnen Sie die Gesamtgröße Ihrer kumulierten archivierten Redo-Protokolle über eine typische Stunde Transaktionsverarbeitung und multiplizieren Sie diese Summe mit 24. Vergleichen Sie diese berechnete Summe für 24 Stunden mit Ihrem verfügbaren Speicherplatz und entscheiden Sie, ob Sie über genügend Speicherplatz für eine 24-Stunden-Transaktionsverarbeitung verfügen.

So richten Sie die zusätzliche Protokollierung ein:
  1. Führen Sie den folgenden Befehl aus, um die zusätzliche Protokollierung auf Datenbankebene zu aktivieren.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
  2. Führen Sie den folgenden Befehl aus, um die zusätzliche Protokollierung für den Primärschlüssel zu aktivieren.

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
  3. (Optional) Aktivieren Sie die zusätzliche Schlüsselebenen-Protokollierung auf Tabellenebene.

    Für die Quelldatenbank entsteht ein wenig Mehraufwand, wenn die zusätzliche Schlüsselebenen-Protokollierung aktiviert ist. Wenn Sie nur eine Teilmenge Ihrer Tabellen migrieren, sollten Sie daher die zusätzliche Schlüsselebenen-Protokollierung auf Tabellenebene aktivieren. Führen Sie den folgenden Befehl aus, um die zusätzliche Schlüsselebenen-Protokollierung auf Tabellenebene zu aktivieren.

    alter table table_name add supplemental log data (PRIMARY KEY) columns;

Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS

Sie können den AWS DMS Zugriff auf die Redo-Logs der Amazon RDS for Oracle Oracle-Quellinstanz mithilfe von Binary Reader for CDC konfigurieren.

Anmerkung

Um Oracle zu verwenden LogMiner, sind die mindestens erforderlichen Benutzerkontoberechtigungen ausreichend. Weitere Informationen finden Sie unter Erforderliche Benutzerkontenberechtigungen für eine AWS-verwaltete Oracle-Quelle für AWS DMS.

Um AWS DMS Binary Reader zu verwenden, geben Sie je nach AWS DMS Version zusätzliche Einstellungen und zusätzliche Verbindungsattribute für den Oracle-Quellendpunkt an.

Unterstützung für Binary Reader ist in den folgenden Versionen von Amazon RDS für Oracle verfügbar:

  • Oracle 11.2 – Versionen 11.2.0.4V11 und höher

  • Oracle 12.1 – Versionen 12.1.0.2.V7 und höher

  • Oracle 12.2 – Alle Versionen

  • Oracle 18.0 – Alle Versionen

  • Oracle 19.0 – Alle Versionen

So konfigurieren Sie CDC mit dem Binary Reader:
  1. Melden Sie sich als Hauptbenutzer bei Ihrer Quelldatenbank in Amazon RDS für Oracle an und führen Sie die folgenden gespeicherten Prozeduren aus, um die Verzeichnisse auf Serverebene zu erstellen.

    exec rdsadmin.rdsadmin_master_util.create_archivelog_dir; exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
  2. Erteilen Sie dem Oracle-Benutzerkonto, das für den Zugriff auf den Oracle-Quellendpunkt verwendet wird, die folgenden Berechtigungen.

    GRANT READ ON DIRECTORY ONLINELOG_DIR TO db_user; GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO db_user;
  3. Legen Sie die folgenden zusätzlichen Verbindungsattribute für den Oracle-Quellendpunkt in Amazon RDS fest:

    • Legen Sie für die RDS-Oracle-Versionen 11.2 und 12.1 Folgendes fest.

      useLogminerReader=N;useBfile=Y;accessAlternateDirectly=false;useAlternateFolderForOnline=true; oraclePathPrefix=/rdsdbdata/db/{$DATABASE_NAME}_A/;usePathPrefix=/rdsdbdata/log/;replacePathPrefix=true;
    • Legen Sie für die RDS-Oracle-Versionen 12.2, 18.0 und 19.0 Folgendes fest.

      useLogminerReader=N;useBfile=Y;
Anmerkung

Stellen Sie sicher, dass auf das Semikolon (;) als Trennzeichen für mehrere Einstellungen kein Leerzeichen folgt (z. B. oneSetting;thenAnother).

Weitere Informationen zum Konfigurieren einer CDC-Aufgabe finden Sie unter Konfiguration für CDC für eine Oracle-Quelldatenbank.

Verwenden von Amazon RDS Oracle Standby (Lesereplikat) als Quelle mit Binary Reader für CDC in AWS DMS

Überprüfen Sie die folgenden Voraussetzungen für die Verwendung von Amazon RDS für Oracle Standby als Quelle bei Verwendung von Binary Reader für CDC in AWS DMS:

  • Verwenden Sie den Oracle-Hauptbenutzer, um Binary Reader einzurichten.

  • Stellen Sie sicher, dass AWS DMS derzeit nur die Verwendung von Oracle Active Data Guard Standby unterstützt wird.

Verwenden Sie anschließend das folgende Verfahren, um RDS für Oracle Standby bei Verwendung von Binary Reader für CDC als Quelle zu verwenden.

So konfigurieren Sie RDS für Oracle Standby bei Verwendung von Binary Reader für CDC als Quelle
  1. Melden Sie sich als Hauptbenutzer bei der primären RDS-für-Oracle-Instance an.

  2. Führen Sie die folgenden gespeicherten Prozeduren wie im Benutzerhandbuch für Amazon RDS beschrieben aus, um die Verzeichnisse auf Serverebene zu erstellen.

    exec rdsadmin.rdsadmin_master_util.create_archivelog_dir; exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
  3. Identifizieren Sie die in Schritt 2 erstellten Verzeichnisse.

    SELECT directory_name, directory_path FROM all_directories WHERE directory_name LIKE ( 'ARCHIVELOG_DIR_%' ) OR directory_name LIKE ( 'ONLINELOG_DIR_%' )

    Mit dem obigen Code wird beispielsweise eine Liste von Verzeichnissen wie die folgende angezeigt.

  4. Erteilen Sie dem Oracle-Benutzerkonto, das für den Zugriff auf Oracle Standby verwendet wird, die Berechtigung Read für die oben genannten Verzeichnisse.

    GRANT READ ON DIRECTORY ARCHIVELOG_DIR_A TO db_user; GRANT READ ON DIRECTORY ARCHIVELOG_DIR_B TO db_user; GRANT READ ON DIRECTORY ONLINELOG_DIR_A TO db_user; GRANT READ ON DIRECTORY ONLINELOG_DIR_B TO db_user;
  5. Führen Sie einen Archivprotokoll-Wechsel auf der primären Instance durch. Dadurch wird sichergestellt, dass die Änderungen an ALL_DIRECTORIES auch in Oracle Standby portiert werden.

  6. Führen Sie die Abfrage ALL_DIRECTORIES für Oracle Standby aus, um zu bestätigen, dass die Änderungen übernommen wurden.

  7. Erstellen Sie mithilfe der AWS DMS Management Console oder AWS Command Line Interface (AWS CLI) einen Quellendpunkt für den Oracle Standby. Geben Sie die folgenden zusätzlichen Verbindungsattribute an, während Sie den Endpunkt erstellen.

    useLogminerReader=N;useBfile=Y;archivedLogDestId=1;additionalArchivedLogDestId=2
  8. Nachdem Sie den Endpunkt erstellt haben, verwenden Sie die Option Endpunktverbindung testen auf der Seite Endpunkt erstellen der Konsole oder verwenden Sie den AWS CLI test-connection Befehl, um zu überprüfen, ob die Konnektivität hergestellt ist.

Einschränkungen bei der Verwendung von Oracle als Quelle für AWS DMS

Die folgenden Einschränkungen gelten, wenn Sie eine Oracle-Datenbank als Quelle für AWS DMS verwenden:

  • AWS DMS unterstützt Oracle Extended-Datentypen in AWS DMS Version 3.5.0 und höher.

  • AWS DMS unterstützt keine langen Objektnamen (über 30 Byte).

  • AWS DMS unterstützt keine funktionsbasierten Indizes.

  • Wenn Sie die zusätzliche Protokollierung verwalten und Transformationen für eine der Spalten durchführen, stellen Sie sicher, dass die zusätzliche Protokollierung für alle Felder und Spalten aktiviert ist. Weitere Informationen zum Einrichten der zusätzlichen Protokollierung finden Sie in den folgenden Themen:

  • AWS DMS unterstützt die Mehrmandanten-Container-Root-Datenbank (CDB$ROOT) nicht. Es unterstützt eine PDB, die den Binary Reader verwendet.

  • AWS DMS unterstützt keine verzögerten Einschränkungen.

  • Sichere LOBs werden im vollständigen LOB-Modus nur unterstützt, wenn ein LOB-Lookup durchgeführt wird.

  • AWS DMS unterstützt die rename table table-name to new-table-name Syntax für alle unterstützten Oracle-Versionen 11 und höher. Diese Syntax wird für Oracle-Quelldatenbanken der Version 10 nicht unterstützt.

  • AWS DMS repliziert die Ergebnisse der DDL-Anweisung nicht. ALTER TABLE ADD column data_type DEFAULT default_value Anstatt default_value auf das Ziel zu replizieren, wird die neue Spalte auf NULL gesetzt.

  • Wenn Sie AWS DMS Version 3.4.7 oder höher verwenden, um Änderungen zu replizieren, die sich aus Partitions- oder Unterpartitionsvorgängen ergeben, gehen Sie wie folgt vor, bevor Sie eine DMS-Aufgabe starten.

    • Erstellen Sie die partitionierte Tabellenstruktur (DDL) manuell;

    • Stellen Sie sicher, dass die DDL in der Oracle-Quelle und im Oracle-Ziel identisch ist;

    • Legen Sie das zusätzliche Verbindungsattribut enableHomogenousPartitionOps=true fest.

    Mehr über enableHomogenousPartitionOps erfahren Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS. Beachten Sie außerdem, dass DMS bei FULL+CDC-Aufgaben keine Datenänderungen repliziert, die als Teil der zwischengespeicherten Änderungen erfasst wurden. Erstellen Sie in diesem Anwendungsfall die Tabellenstruktur im Oracle-Ziel neu und laden Sie die betreffenden Tabellen erneut.

    Vor Version 3.4.7: AWS DMS

    DMS repliziert keine Datenänderungen, die sich aus Partitions- oder Unterpartitionsoperationen (ADD, DROP, EXCHANGE und TRUNCATE) ergeben. Solche Aktualisierungen können während der Replikation folgende Fehler verursachen:

    • Bei ADD-Operationen können Aktualisierungen und Löschungen für die hinzugefügten Daten die Warnung „0 rows affected (0 Zeilen betroffen)“ auslösen.

    • Für DROP- und TRUNCATE-Operationen können neue Einfügungen „Duplicates (Duplikate)“-Fehler verursachen.

    • EXCHANGE-Operationen können sowohl eine Warnung „0 rows affected (0 Zeilen betroffen)“, als auch „Duplicates (Duplikate)“-Fehler auslösen.

    Um Änderungen zu replizieren, die sich aus Partitions- oder Unterpartitionsoperationen ergeben, laden Sie die betreffenden Tabellen neu. Nach dem Hinzufügen einer neuen leeren Partition werden Operationen für die neu hinzugefügte Partition wie gewohnt auf das Ziel repliziert.

  • AWS DMS Versionen vor 3.4 unterstützen keine Datenänderungen auf dem Ziel, die sich aus der Ausführung der CREATE TABLE AS Anweisung auf der Quelle ergeben. Allerdings wird die neue Tabelle in der Zieldatenbank erstellt.

  • AWS DMS erfasst keine Änderungen, die durch das DBMS_REDEFINITION Oracle-Paket vorgenommen wurden, z. B. die Tabellenmetadaten und das OBJECT_ID Feld.

  • AWS DMS ordnet leere BLOB- und CLOB-Spalten NULL dem Ziel zu.

  • Beim Erfassen von Änderungen mit Oracle 11 LogMiner geht eine Aktualisierung einer CLOB-Spalte mit einer Zeichenkettenlänge von mehr als 1982 verloren, und das Ziel wird nicht aktualisiert.

  • Unterstützt während der Change Data Capture (CDC) AWS DMS keine Batch-Aktualisierungen von numerischen Spalten, die als Primärschlüssel definiert sind.

  • AWS DMS unterstützt bestimmte UPDATE Befehle nicht. Das folgende Beispiel ist ein nicht unterstützter UPDATE-Befehl.

    UPDATE TEST_TABLE SET KEY=KEY+1;

    Hier ist TEST_TABLE der Tabellenname und KEY ist eine numerische Spalte, die als Primärschlüssel definiert ist.

  • AWS DMS unterstützt nicht den vollständigen LOB-Modus zum Laden von LONG- und LONG RAW-Spalten. Stattdessen können Sie den limitierten LOB-Modus verwenden, um diese Datentypen zu einem Oracle-Ziel zu migrieren. Im eingeschränkten LOB-Modus werden alle Daten, die Sie AWS DMS auf LONG- oder LONG-RAW-Spalten mit einer Länge von mehr als 64 KB festgelegt haben, auf 64 KB gekürzt.

  • AWS DMS unterstützt den vollständigen LOB-Modus zum Laden von XMLTYPE-Spalten nicht. Stattdessen können Sie den limitierten LOB-Modus verwenden, um XMLTYPE-Spalten zu einem Oracle-Ziel zu migrieren. Im limitierten LOB-Modus kürzt DMS alle Daten, die größer als die benutzerdefinierte Variable „Maximale LOB-Größe“ sind. Der empfohlene Höchstwert für „Maximale LOB-Größe“ beträgt 100 MB.

  • AWS DMS repliziert keine Tabellen, deren Namen Apostrophe enthalten.

  • AWS DMS unterstützt CDC aus materialisierten Ansichten. DMS unterstützt CDC jedoch nicht aus anderen Ansichten.

  • AWS DMS unterstützt CDC nicht für indexorganisierte Tabellen mit einem Überlaufsegment.

  • AWS DMS unterstützt den Drop Partition Vorgang nicht für Tabellen, die nach Referenz partitioniert sind und auf gesetzt sind. enableHomogenousPartitionOps true

  • Wenn Sie Oracle für den LogMiner Zugriff auf die Redo-Logs verwenden, gelten AWS DMS die folgenden Einschränkungen:

    • Nur für Oracle 12, repliziert AWS DMS keine Änderungen an LOB-Spalten.

    • Repliziert AWS DMS nicht für alle Oracle-Versionen das Ergebnis von UPDATE Operationen an XMLTYPE und LOB-Spalten.

    • AWS DMS unterstützt keine XA-Transaktionen bei der Replikation bei der Verwendung von Oracle. LogMiner

    • Oracle unterstützt LogMiner keine Verbindungen zu einer Pluggable Database (PDB). Um eine Verbindung mit einer PDB herzustellen, greifen Sie mit dem Binary Reader auf die Wiederholungsprotokolle zu.

    • SHRINK SPACE-Operationen werden nicht unterstützt.

  • Wenn Sie Binary Reader verwenden, gelten folgende Einschränkungen AWS DMS :

    • Es unterstützt keine Tabellencluster.

    • Es werden nur SHRINK SPACE-Operationen auf Tabellenebene unterstützt. Diese Ebene umfasst die vollständige Tabelle, Partitionen und Unterpartitionen.

    • Es unterstützt keine Änderungen an indexorganisierten Tabellen mit Schlüsselkomprimierung.

    • Die Implementierung von Online-Redo-Protokollen auf Raw-Devices wird nicht unterstützt.

    • Binary Reader unterstützt TDE nur für selbstverwaltete Oracle-Datenbanken, da RDS für Oracle das Abrufen von Wallet-Passwörtern für TDE-Verschlüsselungsschlüssel nicht unterstützt.

  • AWS DMS unterstützt keine Verbindungen zu einer Amazon RDS-Oracle-Quelle, die einen Oracle Automatic Storage Management (ASM) -Proxy verwendet.

  • AWS DMS unterstützt keine virtuellen Spalten.

  • AWS DMS unterstützt weder den ROWID Datentyp noch materialisierte Ansichten, die auf einer ROWID-Spalte basieren.

    AWS DMS unterstützt teilweise Oracle Materialized Views. Bei Volllastaufgaben kann DMS eine Volllastkopie einer materialisierten Ansicht in Oracle erstellen. DMS kopiert die materialisierte Ansicht als Basistabelle in das Zielsystem und ignoriert alle ROWID-Spalten in der materialisierten Ansicht. Bei einer laufenden Replikation (CDC) versucht DMS, Änderungen an den Daten der materialisierten Ansicht zu replizieren. Jedoch sind die Ergebnisse möglicherweise nicht ideal. Insbesondere wenn die materialisierte Ansicht vollständig aktualisiert wird, repliziert DMS einzelne Löschvorgänge für alle Zeilen, gefolgt von einzelnen Einfügungen für alle Zeilen. Dieser Vorgang ist sehr ressourcenintensiv und funktioniert bei materialisierten Ansichten mit einer großen Anzahl von Zeilen möglicherweise schlecht. Bei einer laufenden Replikation, bei der die materialisierten Ansichten schnell aktualisiert werden, versucht DMS, die schnellen Datenänderungen zu verarbeiten und zu replizieren. In beiden Fällen überspringt DMS alle ROWID-Spalten in der materialisierten Ansicht.

  • AWS DMS lädt oder erfasst keine globalen temporären Tabellen.

  • Aktivieren Sie für S3-Ziele, die Replikation verwenden, die zusätzliche Protokollierung für jede Spalte, damit Quellzeilenaktualisierungen jeden Spaltenwert erfassen können. Zum Beispiel: alter table yourtablename add supplemental log data (all) columns;.

  • Eine Aktualisierung für eine Zeile mit einem zusammengesetzten eindeutigen Schlüssel, der null enthält, kann am Ziel nicht repliziert werden.

  • AWS DMS unterstützt nicht die Verwendung mehrerer Oracle TDE-Verschlüsselungsschlüssel auf demselben Quellendpunkt. Jeder Endpunkt kann nur ein Attribut für den TDE-Verschlüsselungsschlüsselnamen „securityDbEncryptionName“ und ein TDE-Passwort für diesen Schlüssel haben.

  • Bei der Replikation von Amazon RDS for Oracle wird TDE nur mit verschlüsseltem Tablespace und unter Verwendung von Oracle unterstützt. LogMiner

  • AWS DMS unterstützt nicht mehrere Operationen zur schnellen Umbenennung von Tabellen.

  • Bei Verwendung von Oracle 19.0 als Quelle werden die folgenden Funktionen AWS DMS nicht unterstützt:

    • Data-Guard-DML-Umleitung

    • Partitionierte hybride Tabellen

    • Schema-only-Konten in Oracle

  • AWS DMS unterstützt nicht die Migration von Tabellen oder Ansichten des Typs BIN$ oderDR$.

  • Ab Oracle 18.x wird Change Data Capture (CDC) von Oracle Express Edition (Oracle Database XE) AWS DMS nicht unterstützt.

  • Bei der Migration von Daten aus einer CHAR-Spalte kürzt DMS alle nachfolgenden Leerzeichen.

  • AWS DMS unterstützt keine Replikation aus Anwendungscontainern.

  • AWS DMS unterstützt nicht die Ausführung von Oracle Flashback Database und Restore Points, da diese Operationen die Konsistenz der Oracle Redo Log-Dateien beeinträchtigen.

  • Das Verfahren INSERT zum direkten Laden mit der Option zur parallelen Ausführung wird in folgenden Fällen nicht unterstützt:

    • Unkomprimierte Tabellen mit mehr als 255 Spalten

    • Zeilengröße von mehr als 8K

    • Exadata-HCC-Tabellen

    • Datenbank, die auf der Big Endian-Plattform läuft

  • Für eine Quelltabelle, die weder über einen Primärschlüssel noch über einen eindeutigen Schlüssel verfügt, muss die zusätzliche Protokollierung ALL COLUMN aktiviert sein. Dies führt zu mehr Redo-Protokollaktivitäten und kann die DMS-CDC-Latenz erhöhen.

  • AWS DMS migriert keine Daten aus unsichtbaren Spalten in Ihrer Quelldatenbank. Verwenden Sie die Anweisung ALTER TABLE, um diese Spalten sichtbar zu machen und in den Migrationsbereich aufzunehmen.

SSL-Unterstützung für einen Oracle-Endpunkt

AWS DMS Oracle-Endgeräte unterstützen SSL V3 für die Modi none und verify-ca SSL. Um SSL mit einem Oracle-Endpunkt zu verwenden, müssen Sie das Oracle Wallet für den Endpunkt anstelle von .pem-Zertifikatdateien hochladen.

Verwenden eines vorhandenen Zertifikats für Oracle SSL

Um eine vorhandene Oracle-Client-Installation zum Erstellen der Oracle Wallet-Datei aus der Zertifikatdatei der Zertifizierungsstelle zu erstellen, gehen Sie wie folgt vor.

So verwenden Sie eine vorhandene Oracle-Client-Installation für Oracle-SSL mit AWS DMS
  1. Legen Sie die ORACLE_HOME-Systemvariable auf den Speicherort Ihres dbhome_1-Verzeichnisses fest, indem Sie den folgenden Befehl ausführen.

    prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1
  2. $ORACLE_HOME/lib an die LD_LIBRARY_PATH-Systemvariable anhängen.

    prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
  3. Erstellen Sie ein Oracle Wallet unter $ORACLE_HOME/ssl_wallet.

    prompt>mkdir $ORACLE_HOME/ssl_wallet
  4. Legen Sie die CA-Zertifikatdatei .pem im Verzeichnis ssl_wallet ab. Wenn Sie Amazon RDS verwenden, können Sie die von Amazon RDS gehostete CA-Stammzertifikatdatei rds-ca-2015-root.pem verwenden. Weitere Informationen zum Herunterladen dieser Datei finden Sie unter Verwenden von SSL/TLS für die Verschlüsselung einer Verbindung zu einer DB-Instance im Benutzerhandbuch für Amazon RDS.

  5. Führen Sie die folgenden Befehle zur Oracle Wallet-Erstellung aus.

    prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert $ORACLE_HOME/ssl_wallet/ca-cert.pem -auto_login_only

Wenn Sie die vorherigen Schritte ausgeführt haben, können Sie die Wallet-Datei mit dem ImportCertificate-API-Aufruf importieren, indem Sie den Parameter „certificate-wallet“ angeben. Sie können das importierte Wallet-Zertifikat dann verwenden, wenn Sie verify-ca als SSL-Modus beim Erstellen oder Ändern Ihres Oracle-Endpunkts auswählen.

Anmerkung

Oracle-Wallets sind Binärdateien. AWS DMS akzeptiert diese Dateien unverändert.

Verwenden eines selbstsignierten Zertifikats für Oracle SSL

Gehen Sie wie folgt vor, um ein selbstsigniertes Zertifikat für Oracle SSL zu verwenden. Dabei wird das Passwort oracle123 für das Oracle-Wallet vorausgesetzt.

Um ein selbstsigniertes Zertifikat für Oracle SSL zu verwenden mit AWS DMS
  1. Erstellen Sie ein Verzeichnis für die Arbeit mit dem selbstsignierten Zertifikat.

    mkdir -p /u01/app/oracle/self_signed_cert
  2. Wechseln Sie in das Verzeichnis, das Sie im vorherigen Schritt erstellt haben.

    cd /u01/app/oracle/self_signed_cert
  3. Erstellen Sie einen Stammschlüssel.

    openssl genrsa -out self-rootCA.key 2048
  4. Signieren Sie selbst ein Stammzertifikat mithilfe des Stammschlüssels, den Sie im vorherigen Schritt erstellt haben.

    openssl req -x509 -new -nodes -key self-rootCA.key -sha256 -days 3650 -out self-rootCA.pem

    Verwenden Sie Eingabeparameter wie die folgenden:

    • Country Name (2 letter code) [XX], z. B.: AU

    • State or Province Name (full name) [], z. B.: NSW

    • Locality Name (e.g., city) [Default City], z. B.: Sydney

    • Organization Name (e.g., company) [Default Company Ltd], z. B.: AmazonWebService

    • Organizational Unit Name (e.g., section) [], z. B.: DBeng

    • Common Name (e.g., your name or your server's hostname) [], z. B.: aws

    • Email Address [], z. B.: abcd.efgh@amazonwebservice.com

  5. Erstellen Sie ein Oracle Wallet-Verzeichnis für die Oracle-Datenbank.

    mkdir -p /u01/app/oracle/wallet
  6. Erstellen Sie ein neues Oracle Wallet.

    orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd oracle123 -auto_login_local
  7. Fügen Sie das Stammzertifikat dem Oracle Wallet hinzu.

    orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -trusted_cert -cert /u01/app/oracle/self_signed_cert/self-rootCA.pem
  8. Listen Sie den Inhalt des Oracle Wallet auf. Die Liste sollte das Stammzertifikat enthalten.

    orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123

    Dies könnte beispielsweise wie folgt angezeigt werden.

    Requested Certificates: User Certificates: Trusted Certificates: Subject: CN=aws,OU=DBeng,O= AmazonWebService,L=Sydney,ST=NSW,C=AU
  9. Generieren Sie die CSR (Certificate Signing Request) mithilfe des ORAPKI-Dienstprogramms.

    orapki wallet add -wallet "/u01/app/oracle/wallet" -pwd oracle123 -dn "CN=aws" -keysize 2048 -sign_alg sha256
  10. Führen Sie den folgenden Befehl aus.

    openssl pkcs12 -in /u01/app/oracle/wallet/ewallet.p12 -nodes -out /u01/app/oracle/wallet/nonoracle_wallet.pem

    Es wird eine Ausgabe ähnlich der folgenden erstellt.

    Enter Import Password: MAC verified OK Warning unsupported bag type: secretBag
  11. Legen Sie "dms" als allgemeinen Namen fest.

    openssl req -new -key /u01/app/oracle/wallet/nonoracle_wallet.pem -out certdms.csr

    Verwenden Sie Eingabeparameter wie die folgenden:

    • Country Name (2 letter code) [XX], z. B.: AU

    • State or Province Name (full name) [], z. B.: NSW

    • Locality Name (e.g., city) [Default City], z. B.: Sydney

    • Organization Name (e.g., company) [Default Company Ltd], z. B.: AmazonWebService

    • Organizational Unit Name (e.g., section) [], z. B.: aws

    • Common Name (e.g., your name or your server's hostname) [], z. B.: aws

    • Email Address [], z. B.: abcd.efgh@amazonwebservice.com

    Stellen Sie sicher, dass dies nicht mit Schritt 4 identisch ist. Dazu können Sie beispielsweise den Namen der Organisationseinheit in einen anderen Namen ändern, wie in der Abbildung gezeigt.

    Geben Sie die folgenden zusätzlichen Attribute ein, die zusammen mit Ihrer Zertifikatsanforderung gesendet werden sollen.

    • A challenge password [], z. B.: oracle123

    • An optional company name [], z. B.: aws

  12. Rufen Sie die Zertifikatsignatur ab.

    openssl req -noout -text -in certdms.csr | grep -i signature

    Der Signaturschlüssel für diesen Beitrag lautet sha256WithRSAEncryption.

  13. Führen Sie den folgenden Befehl aus, um die Zertifikatdatei (.crt) zu erstellen.

    openssl x509 -req -in certdms.csr -CA self-rootCA.pem -CAkey self-rootCA.key -CAcreateserial -out certdms.crt -days 365 -sha256

    Es wird eine Ausgabe ähnlich der folgenden erstellt.

    Signature ok subject=/C=AU/ST=NSW/L=Sydney/O=awsweb/OU=DBeng/CN=aws Getting CA Private Key
  14. Fügen Sie das Zertifikat dem Wallet hinzu.

    orapki wallet add -wallet /u01/app/oracle/wallet -pwd oracle123 -user_cert -cert certdms.crt
  15. Sehen Sie sich das Wallet an. Es sollte zwei Einträge aufweisen. Siehe den folgenden Code.

    orapki wallet display -wallet /u01/app/oracle/wallet -pwd oracle123
  16. Konfigurieren Sie die sqlnet.ora-Datei ($ORACLE_HOME/network/admin/sqlnet.ora).

    WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet/) ) ) SQLNET.AUTHENTICATION_SERVICES = (NONE) SSL_VERSION = 1.0 SSL_CLIENT_AUTHENTICATION = FALSE SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
  17. Beenden Sie den Oracle Listener.

    lsnrctl stop
  18. Fügen Sie Einträge für SSL in der listener.ora-Datei ($ORACLE_HOME/network/admin/listener.ora) hinzu.

    SSL_CLIENT_AUTHENTICATION = FALSE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /u01/app/oracle/wallet/) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = SID) (ORACLE_HOME = ORACLE_HOME) (SID_NAME = SID) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) )
  19. Konfigurieren Sie die tnsnames.ora-Datei ($ORACLE_HOME/network/admin/tnsnames.ora).

    <SID>= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ) ) <SID>_ssl= (DESCRIPTION= (ADDRESS_LIST = (ADDRESS=(PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = <SID>) ) )
  20. Starten Sie den Oracle Listener neu.

    lsnrctl start
  21. Zeigen Sie den Status des Oracle Listener an.

    lsnrctl status
  22. Testen Sie die SSL-Verbindung zu der Datenbank von "localhost" mithilfe von sqlplus und dem SSL-Eintrag "tnsnames".

    sqlplus -L ORACLE_USER@SID_ssl
  23. Überprüfen Sie, dass Sie sich erfolgreich mithilfe von SSL verbunden haben.

    SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL; SYS_CONTEXT('USERENV','NETWORK_PROTOCOL') -------------------------------------------------------------------------------- tcps
  24. Wechseln Sie zu dem Verzeichnis mit dem selbstsignierten Zertifikat.

    cd /u01/app/oracle/self_signed_cert
  25. Erstellen Sie ein neues Client-Oracle-Wallet AWS DMS , das Sie verwenden können.

    orapki wallet create -wallet ./ -auto_login_only
  26. Fügen Sie das selbstsignierte Stammzertifikat dem Oracle Wallet hinzu.

    orapki wallet add -wallet ./ -trusted_cert -cert self-rootCA.pem -auto_login_only
  27. Listet den Inhalt des AWS DMS zu verwendenden Oracle-Wallets auf. Die Liste sollte das selbstsignierte Stammzertifikat enthalten.

    orapki wallet display -wallet ./

    Es wird eine Ausgabe ähnlich der folgenden erstellt.

    Trusted Certificates: Subject: CN=aws,OU=DBeng,O=AmazonWebService,L=Sydney,ST=NSW,C=AU
  28. Laden Sie das Oracle-Wallet hoch, das Sie gerade erstellt haben AWS DMS.

Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS

In der folgenden Tabelle finden Sie die Methoden zur transparenten Datenverschlüsselung (TDE), die bei der Arbeit mit einer Oracle-Quelldatenbank AWS DMS unterstützt werden.

Zugriffsmethode für Wiederholungsprotokolle TDE-Tabellenraum TDE-Spalte
Oracle LogMiner Ja Ja
Binary Reader Ja Ja

AWS DMS unterstützt Oracle TDE, wenn Binary Reader verwendet wird, sowohl auf Spalten- als auch auf Tablespace-Ebene. Um die TDE-Verschlüsselung mit zu verwenden AWS DMS, identifizieren Sie zunächst den Oracle-Wallet-Speicherort, an dem der TDE-Verschlüsselungsschlüssel und das TDE-Passwort gespeichert sind. Identifizieren Sie dann den richtigen TDE-Verschlüsselungsschlüssel und das richtige Passwort für den Oracle-Quellendpunkt.

So identifizieren Sie den Verschlüsselungsschlüssel und das Passwort für die TDE-Verschlüsselung und geben diese an
  1. Führen Sie die folgende Abfrage aus, um das Oracle-Verschlüsselungs-Wallet auf dem Oracle-Datenbank-Host zu ermitteln.

    SQL> SELECT WRL_PARAMETER FROM V$ENCRYPTION_WALLET; WRL_PARAMETER -------------------------------------------------------------------------------- /u01/oracle/product/12.2.0/dbhome_1/data/wallet/

    Hier ist /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ der Wallet-Speicherort.

  2. Rufen Sie die Masterschlüssel-ID mit einer der folgenden Verschlüsselungsoptionen ab, je nachdem, welche diesen Wert zurückgibt.

    1. Führen Sie für die Verschlüsselung auf Tabellen- oder Spaltenebene die folgenden Abfragen aus.

      SQL> SELECT OBJECT_ID FROM ALL_OBJECTS WHERE OWNER='DMS_USER' AND OBJECT_NAME='TEST_TDE_COLUMN' AND OBJECT_TYPE='TABLE'; OBJECT_ID --------------- 81046 SQL> SELECT MKEYID FROM SYS.ENC$ WHERE OBJ#=81046; MKEYID ------------ AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

      Hier ist AWGDC9glSk8Xv+3bVveiVSg die Masterschlüssel-ID (MKEYID). Wenn Sie einen Wert für MKEYID erhalten, können Sie mit Schritt 3 fortfahren. Fahren Sie andernfalls mit Schritt 2.2 fort.

      Anmerkung

      Die angehängten Zeichen 'A' in der Zeichenkette (AAA...) sind nicht Teil des Werts.

    2. Führen Sie für die Verschlüsselung auf Tablespace-Ebene die folgenden Abfragen aus.

      SQL> SELECT TABLESPACE_NAME, ENCRYPTED FROM dba_tablespaces; TABLESPACE_NAME ENC ------------------------------ --- SYSTEM NO SYSAUX NO UNDOTBS1 NO TEMP NO USERS NO TEST_ENCRYT YES SQL> SELECT name,utl_raw.cast_to_varchar2( utl_encode.base64_encode('01'||substr(mkeyid,1,4))) || utl_raw.cast_to_varchar2( utl_encode.base64_encode(substr(mkeyid,5,length(mkeyid)))) masterkeyid_base64 FROM (SELECT t.name, RAWTOHEX(x.mkid) mkeyid FROM v$tablespace t, x$kcbtek x WHERE t.ts#=x.ts#) WHERE name = 'TEST_ENCRYT'; NAME MASTERKEYID_BASE64 ------------------------------ ---------------------------------- TEST_ENCRYT AWGDC9glSk8Xv+3bVveiVSg=

      Hier ist AWGDC9glSk8Xv+3bVveiVSg die Masterschlüssel-ID (TEST_ENCRYT). Wenn die Schritte 2.1 und 2.2 beide einen Wert zurückgeben, sind diese immer identisch.

      Das angehängte Zeichen '=' ist nicht Teil des Werts.

  3. Listen Sie über die Befehlszeile die Einträge des Verschlüsselungs-Wallets auf dem Oracle-Quelldatenbank-Host auf.

    $ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -list Oracle Secret Store entries: ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ORACLE.SECURITY.DB.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ORACLE.SECURITY.DB.ENCRYPTION.MASTERKEY ORACLE.SECURITY.ID.ENCRYPTION. ORACLE.SECURITY.KB.ENCRYPTION. ORACLE.SECURITY.KM.ENCRYPTION.AY1mRA8OXU9Qvzo3idU4OH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA

    Suchen Sie den Eintrag, der die Masterschlüssel-ID enthält, die Sie in Schritt 2 (AWGDC9glSk8Xv+3bVveiVSg) ermittelt haben. Dieser Eintrag ist der Name des TDE-Verschlüsselungsschlüssels.

  4. Sehen Sie sich die Details des Eintrags an, den Sie im vorherigen Schritt ermittelt haben.

    $ mkstore -wrl /u01/oracle/product/12.2.0/dbhome_1/data/wallet/ -viewEntry ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA Oracle Secret Store Tool : Version 12.2.0.1.0 Copyright (c) 2004, 2016, Oracle and/or its affiliates. All rights reserved. Enter wallet password: ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA = AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==

    Geben Sie das Wallet-Passwort ein, um das Ergebnis anzuzeigen.

    Hier ist der Wert rechts von '=' das TDE-Passwort.

  5. Geben Sie den Namen des TDE-Verschlüsselungsschlüssels für den Oracle-Quellendpunkt an, indem Sie das zusätzliche Verbindungsattribut securityDbEncryptionName festlegen.

    securityDbEncryptionName=ORACLE.SECURITY.DB.ENCRYPTION.AWGDC9glSk8Xv+3bVveiVSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  6. Geben Sie das zugehörige TDE-Passwort für diesen Schlüssel in der Konsole als Teil des Passwort-Werts der Oracle-Quelle ein. Verwenden Sie die folgende Reihenfolge, um die durch Kommata getrennten Passwortwerte zu formatieren, endend mit dem Wert des TDE-Passworts.

    Oracle_db_password,ASM_Password,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==

    Geben Sie die Passwortwerte in dieser Reihenfolge an, unabhängig von Ihrer Oracle-Datenbankkonfiguration. Wenn Sie beispielsweise TDE verwenden, Ihre Oracle-Datenbank jedoch nicht ASM verwendet, geben Sie die Passwortwerte in der folgenden Reihenfolge an, durch Kommata getrennt.

    Oracle_db_password,,AEMAASAASGYs0phWHfNt9J5mEMkkegGFiD4LLfQszDojgDzbfoYDEACv0x3pJC+UGD/PdtE2jLIcBQcAeHgJChQGLA==

Wenn die von Ihnen angegebenen TDE-Anmeldeinformationen falsch sind, schlägt die AWS DMS Migrationsaufgabe nicht fehl. Die Aufgabe liest jedoch auch keine laufenden Replikationsänderungen in der Zieldatenbank und wendet sie auch nicht an. Überwachen Sie nach dem Start der Aufgabe die Tabellenstatistik auf der Konsolenseite zur Migrationsaufgabe, um sicherzustellen, dass die Änderungen repliziert werden.

Wenn ein DBA die TDE-Anmeldeinformationen für die Oracle-Datenbank ändert, während die Aufgabe ausgeführt wird, schlägt die Aufgabe fehl. Die Fehlermeldung enthält den Namen des neuen TDE-Verschlüsselungsschlüssels. Gehen Sie wie oben beschrieben vor, um neue Werte anzugeben und die Aufgabe neu zu starten.

Wichtig

Sie können ein TDE-Wallet, das an einem Oracle Automatic Storage Management (ASM)-Speicherort erstellt wurde, nicht bearbeiten, da Befehle auf Betriebssystemebene wie cp, mv, orapki und mkstore die in einem ASM-Speicherort gespeicherten Wallet-Dateien beschädigen. Diese Einschränkung gilt nur für TDE-Wallet-Dateien, die an einem ASM-Speicherort gespeichert sind. Sie gilt nicht für TDE-Wallet-Dateien, die in einem lokalen Betriebssystemverzeichnis gespeichert sind.

Wenn Sie ein in ASM gespeichertes TDE-Wallet mit Befehlen auf Betriebssystemebene bearbeiten möchten, erstellen Sie einen lokalen Keystore und führen Sie den ASM-Keystore wie folgt mit dem lokalen Keystore zusammen:

  1. Erstellen Sie einen lokalen Keystore.

    ADMINISTER KEY MANAGEMENT create keystore file system wallet location identified by wallet password;
  2. Führen Sie den ASM-Keystore mit dem lokalen Keystore zusammen.

    ADMINISTER KEY MANAGEMENT merge keystore ASM wallet location identified by wallet password into existing keystore file system wallet location identified by wallet password with backup;

Führen Sie dann die Schritte 3 und 4 für den lokalen Keystore aus, um die Einträge des Verschlüsselungs-Wallets und das TDE-Passwort aufzulisten.

Unterstützte Komprimierungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS

In der folgenden Tabelle finden Sie, welche Komprimierungsmethoden bei der Arbeit mit einer Oracle-Quelldatenbank AWS DMS unterstützt werden. Wie die Tabelle zeigt, hängt die Komprimierungsunterstützung sowohl von Ihrer Oracle-Datenbankversion als auch davon ab, ob DMS so konfiguriert ist, dass Oracle für den LogMiner Zugriff auf die Redo-Logs verwendet wird.

Version Basic OLTP

HCC (von Oracle 11g R2 oder neuer)

Weitere
Oracle 10 Nein N/A N/A Nein
Oracle 11 oder neuer — Oracle LogMiner Ja Ja Ja Ja — Jede von Oracle unterstützte Komprimierungsmethode LogMiner.
Oracle 11 oder neuer – Binary Reader Ja Ja Ja – weitere Informationen finden Sie im folgenden Hinweis. Ja
Anmerkung

Wenn der Oracle-Quellendpunkt für die Verwendung von Binary Reader konfiguriert ist, wird die Query Low-Ebene der HCC-Komprimierungsmethode nur für Aufgaben mit Volllast unterstützt.

Replizieren verschachtelter Tabellen unter Verwendung von Oracle als Quelle für AWS DMS

AWS DMS unterstützt die Replikation von Oracle-Tabellen, die Spalten enthalten, bei denen es sich um verschachtelte Tabellen oder definierte Typen handelt. Fügen Sie dem Oracle-Quellendpunkt die folgende zusätzliche Verbindungsattributeinstellung hinzu, um diese Funktion zu aktivieren.

allowSelectNestedTables=true;

AWS DMS erstellt die Zieltabellen aus verschachtelten Oracle-Tabellen als reguläre über- und untergeordnete Tabellen auf dem Ziel ohne eindeutige Einschränkung. Um auf die richtigen Daten für das Ziel zuzugreifen, verbinden Sie die übergeordneten und untergeordneten Tabellen. Erstellen Sie dazu zunächst manuell einen nicht eindeutigen Index für die NESTED_TABLE_ID-Spalte in der untergeordneten Zieltabelle. Sie können dann die NESTED_TABLE_ID-Spalte in der Join ON-Klausel zusammen mit der übergeordneten Spalte verwenden, die dem Namen der untergeordneten Tabelle entspricht. Darüber hinaus verbessert die Erstellung eines solchen Indexes die Leistung, wenn die Daten der untergeordneten Zieltabelle aktualisiert oder gelöscht werden AWS DMS. Ein Beispiel finden Sie unter Beispiel-Join für übergeordnete und untergeordnete Tabellen auf dem Ziel.

Es wird empfohlen, die Aufgabe so zu konfigurieren, dass sie beendet wird, nachdem eine vollständige Ladung abgeschlossen ist. Erstellen Sie dann diese nicht eindeutigen Indizes für alle replizierten untergeordneten Tabellen auf dem Ziel, und setzen Sie die Aufgabe fort.

Wenn eine erfasste verschachtelte Tabelle zu einer vorhandenen übergeordneten Tabelle hinzugefügt wird (erfasst oder nicht erfasst), wird sie korrekt AWS DMS behandelt. Der nicht eindeutige Index für die entsprechende Zieltabelle wird jedoch nicht erstellt. In diesem Fall kann die Leistung beeinträchtigt werden, wenn die untergeordnete Zieltabelle extrem groß wird. In einem solchen Fall empfehlen wir, die Aufgabe anzuhalten, den Index zu erstellen und dann die Aufgabe fortzusetzen.

Nachdem die verschachtelten Tabellen auf das Ziel repliziert wurden, muss der DBA einen Join für die übergeordneten und die entsprechenden untergeordneten Tabellen ausführen, um die Daten zu glätten.

Voraussetzungen für die Replikation von verschachtelten Oracle-Tabellen als Quelle

Stellen Sie sicher, dass Sie die übergeordneten Tabellen für alle replizierten verschachtelten Tabellen replizieren. Schließen Sie sowohl die übergeordneten Tabellen (die Tabellen, die die geschachtelte Tabellenspalte enthalten) als auch die untergeordneten (d. h. verschachtelten) Tabellen in die AWS DMS Tabellenzuordnungen ein.

Unterstützte verschachtelte Oracle-Tabellentypen als Quelle

AWS DMS unterstützt die folgenden verschachtelten Oracle-Tabellentypen als Quelle:

  • Datentyp

  • Benutzerdefiniertes Objekt

Einschränkungen der AWS DMS -Unterstützung für verschachtelte Oracle-Tabellen als Quelle

AWS DMS hat die folgenden Einschränkungen bei der Unterstützung von verschachtelten Oracle-Tabellen als Quelle:

  • AWS DMS unterstützt nur eine Ebene der Tabellenverschachtelung.

  • AWS DMS Bei der Tabellenzuordnung wird nicht überprüft, ob sowohl die übergeordnete als auch die untergeordnete (n) Tabelle (n) für die Replikation ausgewählt wurden. Dies bedeutet, dass es möglich ist, eine übergeordnete Tabelle ohne untergeordnete Tabelle oder eine untergeordnete Tabelle ohne übergeordnete Tabelle auszuwählen.

Wie AWS DMS verschachtelte Oracle-Tabellen als Quelle repliziert

AWS DMS repliziert übergeordnete und verschachtelte Tabellen wie folgt auf das Ziel:

  • AWS DMS erstellt die Elterntabelle, die mit der Quelltabelle identisch ist. Anschließend definiert es die verschachtelte Spalte im übergeordneten Element als RAW(16) und schließt eine Referenz zu den verschachtelten Tabellen des übergeordneten Elements in seiner NESTED_TABLE_ID-Spalte ein.

  • AWS DMS erstellt die untergeordnete Tabelle, die mit der verschachtelten Quelle identisch ist, jedoch mit einer zusätzlichen Spalte namensNESTED_TABLE_ID. Diese Spalte hat denselben Typ und denselben Wert wie die entsprechende übergeordnete verschachtelte Spalte und auch dieselbe Bedeutung.

Beispiel-Join für übergeordnete und untergeordnete Tabellen auf dem Ziel

Um die übergeordnete Tabelle zu glätten, führen Sie einen Join zwischen der übergeordneten und der untergeordneten Tabelle aus, wie im folgenden Beispiel gezeigt:

  1. Erstellen Sie die Type-Tabelle.

    CREATE OR REPLACE TYPE NESTED_TEST_T AS TABLE OF VARCHAR(50);
  2. Erstellen Sie die übergeordnete Tabelle mit einer Spalte des Typs NESTED_TEST_T, wie oben definiert.

    CREATE TABLE NESTED_PARENT_TEST (ID NUMBER(10,0) PRIMARY KEY, NAME NESTED_TEST_T) NESTED TABLE NAME STORE AS NAME_KEY;
  3. Glätten Sie die Tabelle NESTED_PARENT_TEST mit einem Join mit der untergeordneten Tabelle NAME_KEY, wobei CHILD.NESTED_TABLE_ID mit PARENT.NAME übereinstimmt.

    SELECT … FROM NESTED_PARENT_TEST PARENT, NAME_KEY CHILD WHERE CHILD.NESTED_ TABLE_ID = PARENT.NAME;

REDO wird auf Oracle ASM gespeichert, wenn Oracle als Quelle für verwendet wird AWS DMS

Bei Oracle-Quellen mit hoher REDO-Generierung kann das Speichern von REDO in Oracle ASM die Leistung verbessern. Dies gilt insbesondere in einer RAC-Konfiguration, da Sie DMS so konfigurieren können, dass ASM-REDO-Lesevorgänge auf alle ASM-Knoten verteilt werden.

Verwenden Sie das Verbindungsattribut asmServer, um diese Konfiguration zu verwenden. Die folgende Verbindungszeichenfolge verteilt beispielsweise DMS-REDO-Lesevorgänge auf 3 ASM-Knoten:

asmServer=(DESCRIPTION=(CONNECT_TIMEOUT=8)(ENABLE=BROKEN)(LOAD_BALANCE=ON)(FAILOVER=ON) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node1_ip_address)(PORT=asm_node1_port_number)) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node2_ip_address)(PORT=asm_node2_port_number)) (ADDRESS=(PROTOCOL=tcp)(HOST=asm_node3_ip_address)(PORT=asm_node3_port_number))) (CONNECT_DATA=(SERVICE_NAME=+ASM)))

Wenn Sie NFS zum Speichern von Oracle REDO verwenden, müssen Sie sicherstellen, dass die entsprechenden Client-Patches für DNFS (Direct NFS) installiert sind – insbesondere alle Patches für den Oracle-Fehler 25224242. Weitere Informationen finden Sie in der folgenden Oracle-Veröffentlichung zu Patches im Zusammenhang mit dem Client Direct NFS: Recommended Patches for Direct NFS Client.

Zum Verbessern der NFS-Leseleistung empfehlen wir außerdem, den Wert rsize und wsize in fstab für das NFS-Volume zu erhöhen, wie im folgenden Beispiel gezeigt.

NAS_name_here:/ora_DATA1_archive /u09/oradata/DATA1 nfs rw,bg,hard,nointr,tcp,nfsvers=3,_netdev, timeo=600,rsize=262144,wsize=262144

Passen Sie den Wert tcp-max-xfer-size außerdem wie folgt an:

vserver nfs modify -vserver vserver -tcp-max-xfer-size 262144

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

Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer Oracle-Quelldatenbank verwenden. Sie geben die Einstellungen an, wenn Sie den Quellendpunkt 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 Quelle verwenden können.

Name Beschreibung
AccessAlternateDirectly

Legen Sie dieses Attribut auf false fest, um mit Binary Reader Änderungsdaten für Amazon RDS für Oracle als Quelle zu erfassen. Dies weist die DMS-Instance an, dass sie nicht über einen bestimmten Pfadpräfix-Ersatz mittels direktem Dateizugriff auf Redo-Log-Dateien zugreifen darf. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: aktiviert

Zulässige Werte: true/false

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

AdditionalArchivedLogDestId

Legen Sie dieses Attribut mit ArchivedLogDestId in einer primären/Standby-Einrichtung fest. Diese Einstellung ist bei einer Umstellung nützlich, wenn eine Datenbank in Oracle Data Guard als Quelle verwendet wird. In diesem Fall AWS DMS muss es wissen, von welchem Ziel die Archiv-Redo-Logs abgerufen werden sollen, um Änderungen zu lesen. Dies liegt daran, dass die vorherige primäre Instance nach der Umstellung eine Standby-Instance ist.

AWS DMS Unterstützt zwar die Verwendung der RESETLOGS Oracle-Option zum Öffnen der Datenbank, sollte aber RESETLOGS nur verwendet werden, wenn dies erforderlich ist. Weitere Informationen zu RESETLOGS finden Sie unter RMAN Data Repair Concepts im Benutzerhandbuch für Oracle® Database Backup and Recovery.

Zulässige Werte: Archivierungsziel-IDs

Beispiel: --oracle-settings '{"AdditionalArchivedLogDestId": 2}'

AddSupplementalLogging

Konfigurieren Sie dieses Attribut so, dass für die Oracle-Datenbank die zusätzliche Protokollierung auf Tabellenebene eingerichtet wird. Dieses Attribut aktiviert je nach Tabellenmetadaten eine der folgenden Optionen für alle Tabellen, die für eine Migrationsaufgabe ausgewählt wurden:

  • Zusätzliche PRIMARY KEY COLUMNS-Protokollierung

  • Zusätzliche UNIQUE KEY COLUMNS-Protokollierung

  • Zusätzliche ALL COLUMNS-Protokollierung

Standardwert: false

Zulässige Werte: true/false

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

Anmerkung

Wenn Sie diese Option verwenden, müssen Sie dennoch die zusätzliche Protokollierung auf Datenbankebene wie zuvor erläutert aktivieren.

AllowSelectNestedTables

Setzen Sie dieses Attribut auf „true“, um die Replikation von Oracle-Tabellen zu aktivieren, die Spalten enthalten, die verschachtelte Tabellen oder definierte Typen sind. Weitere Informationen finden Sie unter Replizieren verschachtelter Tabellen unter Verwendung von Oracle als Quelle für AWS DMS.

Standardwert: false

Zulässige Werte: true/false

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

ArchivedLogDestId

Gibt die ID für die archivierten Redo-Protokolle an. Dieser Wert sollte mit einer Zahl in der Spalte dest_id der Ansicht „v$archived_log“ identisch sein. Wenn Sie mit einem zusätzlichen Redo-Protokollziel arbeiten, empfehlen wir, das Attribut AdditionalArchivedLogDestId zum Angeben der zusätzlichen Ziel-ID zu verwenden. Dadurch verbessert sich die Performance, indem sichergestellt wird, dass von Anfang an auf die richtigen Protokolle zugegriffen wird.

Standardwert: 1

Zulässige Werte: Zahl

Beispiel: --oracle-settings '{"ArchivedLogDestId": 1}'

ArchivedLogsOnly

Wenn dieses Feld auf Y gesetzt ist, wird AWS DMS nur auf die archivierten Redo-Logs zugegriffen. Wenn die archivierten Redo-Logs nur in Oracle ASM gespeichert werden, müssen dem AWS DMS Benutzerkonto ASM-Rechte gewährt werden.

Standardwert: N

Zulässige Werte: Y/N

Beispiel: --oracle-settings '{"ArchivedLogsOnly": Y}'

asmUsePLSQLArray (nur ECA)

Verwenden Sie dieses zusätzliche Verbindungsattribut (ECA), wenn Sie Quelländerungen mit BinaryReader erfassen. Mit dieser Einstellung kann DMS 50 Lesevorgänge auf ASM-Ebene pro einzelnem Lese-Thread puffern und gleichzeitig die Anzahl der Threads mit dem Attribut parallelASMReadThread kontrollieren. Wenn Sie dieses Attribut festlegen, verwendet der AWS DMS Binärleser einen anonymen PL/SQL-Block, um Redo-Daten zu erfassen und sie als großen Puffer an die Replikationsinstanz zurückzusenden. Dadurch wird die Anzahl der Round-Trips zur Quelle reduziert. Dies kann die Leistung bei der Erfassung an der Quelle erheblich verbessern, führt jedoch zu einem höheren PGA-Speicherverbrauch auf der ASM-Instance. Wenn das Speicherziel nicht ausreicht, können Stabilitätsprobleme auftreten. Sie können die folgende Formel verwenden, um den gesamten PGA-Speicherverbrauch der ASM-Instance durch eine einzelne DMS-Aufgabe zu schätzen: number_of_redo_threads * parallelASMReadThreads * 7 MB

Standardwert: false

Zulässige Werte: true/false

ECA-Beispiel: asmUsePLSQLArray=true;

ConvertTimestampWithZoneToUTC

Legen Sie dieses Attribut auf true fest, um den Zeitstempelwert der Spalten „TIMESTAMP WITH TIME ZONE“ und „TIMESTAMP WITH LOCAL TIME ZONE“ in UTC zu konvertieren. Standardmäßig ist der Wert dieses Attributs „false“ und die Daten werden unter Verwendung der Zeitzone der Quelldatenbank repliziert.

Standardwert: false

Zulässige Werte: true/false

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

EnableHomogenousPartitionOps

Legen Sie dieses Attribut auf true fest, um die Replikation von Oracle-Partition- und -SubPartition-DDL-Operationen für die homogene Oracle-Migration zu aktivieren.

Beachten Sie, dass diese Funktion und Erweiterung in AWS DMS Version 3.4.7 eingeführt wurden.

Standardwert: false

Zulässige Werte: true/false

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

EnableHomogenousTablespace

Setzen Sie dieses Attribut, um die homogene Tablespace-Replikation zu aktivieren und vorhandene Tabellen oder Indizes unter demselben Tablespace auf dem Ziel zu erstellen.

Standardwert: false

Zulässige Werte: true/false

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

EscapeCharacter

Legen Sie dieses Attribut auf 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": "#"}'

Anmerkung

Sie können nur escapeCharacter für Tabellennamen verwenden. Es werden keine Zeichen aus Schemanamen oder Spaltennamen maskiert.

ExposeViews

Verwenden Sie dieses Attribut, um Daten einmal aus einer Ansicht abrufen; Sie können sie nicht für die laufende Replikation verwenden. Wenn Sie Daten aus einer Ansicht extrahieren, wird die Ansicht im Zielschema als Tabelle angezeigt.

Standardwert: false

Zulässige Werte: true/false

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

ExtraArchivedLogDestIds

Gibt die IDs eines weiteren Ziels für ein oder mehrere archivierte Redo-Protokolle an. Diese IDs sind die Werte der Spalte dest_id in der Ansicht v$archived_log. Verwenden Sie diese Einstellung zusammen mit dem ArchivedLogDestId zusätzlichen Verbindungsattribut in einem primary-to-single Setup oder einem primary-to-multiple-standby Setup.

Diese Einstellung ist bei einem Switchover nützlich, wenn Sie eine Oracle-Data-Guard-Datenbank als Quelle verwenden. Benötigt in diesem Fall Informationen darüber, AWS DMS von welchem Ziel Archiv-Redo-Logs abgerufen werden sollen, um Änderungen zu lesen. AWS DMS benötigt dies, da die vorherige Primärinstanz nach dem Switchover eine Standby-Instanz ist.

Zulässige Werte: Archivierungsziel-IDs

Beispiel: --oracle-settings '{"ExtraArchivedLogDestIds": 1}'

FailTasksOnLobTruncation

Mit der Einstellung true schlägt eine Aufgabe durch dieses Attribut fehl, wenn die tatsächliche Größe einer LOB-Spalte größer als der angegebene LobMaxSize-Wert ist.

Wenn die Aufgabe auf den eingeschränkten LOB-Modus festgelegt ist und diese Option auf true festgelegt wurde, schlägt die Aufgabe fehl, anstatt LOB-Daten zu kürzen.

Standardwert: false

Zulässige Werte: Boolesch

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

filterTransactionsOfUser (nur ECA)

Verwenden Sie dieses zusätzliche Verbindungsattribut (ECA), damit DMS Transaktionen eines bestimmten Benutzers ignorieren kann, wenn Daten aus Oracle repliziert werden, wenn Sie LogMiner Sie können durch Kommata getrennte Benutzernamenwerte übergeben, diese müssen jedoch ausschließlich in GROSSBUCHSTABEN geschrieben sein.

ECA-Beispiel: filterTransactionsOfUser=USERNAME;

NumberDataTypeScale

Gibt den Skalierwert an. Sie können eine Skalierung von bis zu 38, -1 für FLOAT oder -2 für VARCHAR auswählen. Standardmäßig wird der Datentyp NUMBER in Präzision = 38 und Skalierung = 10 konvertiert.

Standardwert: 10

Zulässige Werte: -2 bis 38 (-2 für VARCHAR, -1 für FLOAT)

Beispiel: --oracle-settings '{"NumberDataTypeScale": 12}'

Anmerkung

Wählen Sie eine Kombination aus Präzision und Skalierung, -1 (FLOAT) oder -2 (VARCHAR) aus. DMS unterstützt jede von Oracle unterstützte Kombination aus Präzision und Skalierung. Wählen Sie bei einer Präzision von 39 oder höher -2 (VARCHAR) aus. Die NumberDataTypeScale Einstellung für die Oracle-Datenbank wird nur für den NUMBER-Datentyp verwendet (ohne die explizite Präzisions- und Skalendefinition).

OpenTransactionWindow

Gibt den Zeitrahmen in Minuten an, in dem nach offenen Transaktionen für reine CDC-Aufgaben gesucht wird.

Standardwert: 0

Gültige Werte: eine Ganzzahl von 0 bis 240

Beispiel: openTransactionWindow=15;

OraclePathPrefix Legen Sie dieses Zeichenfolge-Attribut auf den erforderlichen Wert fest, um mit dem Binary Reader Änderungsdaten für ein Amazon RDS für Oracle als Quelle zu erfassen. Dieser Wert gibt das Standard-Oracle-Root an, das für den Zugriff auf die Redo-Log-Dateien verwendet wird. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: keiner

Zulässiger Wert: /rdsdbdata/db/ORCL_A/

Beispiel: --oracle-settings '{"OraclePathPrefix": "/rdsdbdata/db/ORCL_A/"}'

ParallelASMReadThreads

Legen Sie dieses Attribut fest, um die Anzahl der Threads zu ändern, die DMS konfiguriert, um CDC mit Oracle Automatic Storage Management (ASM) durchzuführen. Sie können einen Ganzzahlwert zwischen 2 (Standard) und 8 (maximal) angeben. Verwenden Sie dieses Attribut zusammen mit dem ReadAheadBlocks-Attribut. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: 2

Gültige Werte: Eine Ganzzahl von 2 bis 8

Beispiel: --oracle-settings '{"ParallelASMReadThreads": 6;}'

ReadAheadBlocks

Legen Sie dieses Attribut fest, um die Anzahl der Read-Ahead-Blöcke zu ändern, die DMS konfiguriert, um CDC mit Oracle Automatic Storage Management (ASM) und NAS-Speicher ohne ASM durchzuführen. Sie können einen Ganzzahlwert zwischen 1 000 (Standard) und 200 000 (maximal) angeben. Verwenden Sie dieses Attribut zusammen mit dem ParallelASMReadThreads-Attribut. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: 1000

Gültige Werte: Eine Ganzzahl von 1000 bis 200 000

Beispiel: --oracle-settings '{"ReadAheadBlocks": 150000}'

ReadTableSpaceName

Bei der Einstellung true unterstützt dieses Attribut eine Replikation der Tabellenräume.

Standardwert: false

Zulässige Werte: Boolesch

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

ReplacePathPrefix Legen Sie dieses Attribut auf True fest, um mit dem Binary Reader Änderungsdaten für ein Amazon RDS für Oracle als Quelle zu erfassen. Diese Einstellung weist die DMS-Instance an, das Standard Oracle-Root durch die angegebene UsePathPrefix-Einstellung zu ersetzen, um auf die Redo-Log-Dateien zuzugreifen. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: false

Zulässige Werte: true/false

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

RetryInterval

Gibt die Anzahl der Sekunden an, die das System wartet, bevor eine Abfrage erneut gesendet wird.

Standardwert: 5

Zulässige Werte: Zahl ab 1

Beispiel: --oracle-settings '{"RetryInterval": 6}'

SecurityDbEncryptionName

Gibt den Namen eines Schlüssels an, der für die transparente Datenverschlüsselung (TDE) der Spalten und des Tablespace in der Oracle-Quelldatenbank verwendet wird. Weitere Hinweise zum Einstellen dieses Attributs und des zugehörigen Passworts auf dem Oracle-Quellendpunkt finden Sie unter Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS.

Standardwert: ""

Zulässige Werte: String

Beispiel: --oracle-settings '{"SecurityDbEncryptionName": "ORACLE.SECURITY.DB.ENCRYPTION.Adg8m2dhkU/0v/m5QUaaNJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"}'

SpatialSdo2GeoJsonFunctionName

Verwenden Sie für die Migration von Oracle-Version 12.1 oder früheren Quellen zu PostgreSQL-Zielen dieses Attribut, um SDO_GEOMETRY zum GEOJSON-Format zu konvertieren.

AWS DMS Ruft standardmäßig die SDO2GEOJSON benutzerdefinierte Funktion auf, die vorhanden und für den AWS DMS Benutzer zugänglich sein muss. Order Sie können eine eigene benutzerdefinierte Funktion erstellen, die die Funktionsweise von SDOGEOJSON nachahmt, und stattdessen SpatialSdo2GeoJsonFunctionName zum Aufruf einrichten.

Standardwert: SDO2GEOJSON

Zulässige Werte: String

Beispiel: --oracle-settings '{"SpatialSdo2GeoJsonFunctionName": "myCustomSDO2GEOJSONFunction"}'

StandbyDelayTime

Mit diesem Attribut wird eine Zeit in Minuten für die Verzögerung bei der Standby-Synchronisierung festgelegt. Wenn die Quelle eine Standby-Datenbank von Active Data Guard ist, verwenden Sie dieses Attribut, um die Zeitverzögerung zwischen Primär- und Standby-Datenbanken anzugeben.

In AWS DMS können Sie eine Oracle CDC-Aufgabe erstellen, die eine Active Data Guard-Standby-Instanz als Quelle für die Replikation laufender Änderungen verwendet. Somit ist es nicht mehr notwendig, eine Verbindung mit einer aktiven Datenbank herzustellen, die sich möglicherweise in der Produktion befindet.

Standardwert: 0

Zulässige Werte: Zahl

Beispiel: --oracle-settings '{"StandbyDelayTime": 1}'

Hinweis: Bei Verwendung von DMS 3.4.6, 3.4.7 und höher ist die Verwendung dieser Verbindungseinstellung optional. In der neuesten Version von DMS 3.4.6 und Version 3.4.7 sollte dms_user über die Berechtigung select für V_$DATAGUARD_STATS verfügen, damit DMS die Standby-Verzögerungszeit berechnen kann.

UseAlternateFolderForOnline Legen Sie dieses Attribut auf True fest, um mit dem Binary Reader Änderungsdaten für ein Amazon RDS für Oracle als Quelle zu erfassen. Dies weist die DMS-Instance an, einen angegebenen Präfix-Ersatz zu verwenden, um auf alle Online-Redo-Log-Dateien zuzugreifen. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: false

Zulässige Werte: true/false

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

UseBfile

Legen Sie für dieses Attribut "Y" fest, um Änderungen mit dem Dienstprogramm Binary Reader zu erfassen. Legen Sie UseLogminerReader auf N fest, um dieses Attribut auf Y festzulegen. Sie müssen zusätzliche Attribute festlegen, um Binary Reader mit Amazon RDS für Oracle als Quelle verwenden zu können. Weitere Informationen zu dieser Einstellung und der Verwendung von Oracle Automatic Storage Management (ASM) finden Sie unter Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC.

Hinweis: Wenn Sie diesen Wert als zusätzliches Verbindungsattribut (ECA) festlegen, lauten die gültigen Werte „Y“ und „N“. Wenn Sie diesen Wert als Endpunkteinstellung festlegen, lauten die gültigen Werte true und false.

Standardwert: N

Gültige Werte: Y/N (wenn dieser Wert als ECA festgelegt wird); true/false (wenn dieser Wert als Endpunkteinstellung festgelegt wird).

Beispiel: --oracle-settings '{"UseBfile": Y}'

UseLogminerReader

Setzen Sie dieses Attribut auf Y, um Änderungsdaten mit dem LogMiner Hilfsprogramm zu erfassen (Standard). Legen Sie für diese Option „N“ fest, wenn Sie möchten, dass AWS DMS auf die Wiederholungsprotokolle als Binärdatei zugreift. Wenn Sie diese Option auf N festlegen, fügen Sie auch die Einstellung useBfile=Y hinzu. Weitere Informationen zu dieser Einstellung und zur Verwendung von Oracle Automatic Storage Management (ASM) finden Sie unter Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC.

Hinweis: Wenn Sie diesen Wert als zusätzliches Verbindungsattribut (ECA) festlegen, lauten die gültigen Werte „Y“ und „N“. Wenn Sie diesen Wert als Endpunkteinstellung festlegen, lauten die gültigen Werte true und false.

Standardwert: Y

Gültige Werte: Y/N (wenn dieser Wert als ECA festgelegt wird); true/false (wenn dieser Wert als Endpunkteinstellung festgelegt wird).

Beispiel: --oracle-settings '{"UseLogminerReader": Y}'

UsePathPrefix Legen Sie dieses Zeichenfolge-Attribut auf den erforderlichen Wert fest, um mit dem Binary Reader Änderungsdaten für ein Amazon RDS für Oracle als Quelle zu erfassen. Dieser Wert gibt das Pfadpräfix an, das verwendet wird, um das Standard-Oracle-Root für den Zugriff auf die Redo-Log-Dateien zu ersetzen. Weitere Informationen finden Sie unter Konfiguration einer CDC-Aufgabe für die Verwendung von Binary Reader mit einer RDS for Oracle-Quelle für AWS DMS.

Standardwert: keiner

Zulässiger Wert: /rdsdbdata/log/

Beispiel: --oracle-settings '{"UsePathPrefix": "/rdsdbdata/log/"}'

Quelldatentypen für Oracle

Der Oracle-Endpunkt für AWS DMS unterstützt die meisten Oracle-Datentypen. Die folgende Tabelle zeigt die Oracle-Quelldatentypen, die bei der Verwendung unterstützt werden, AWS DMS und die Standardzuordnungen zu AWS DMS Datentypen.

Anmerkung

Mit Ausnahme der Datentypen LONG und LONG RAW sind bei der Replikation von einer Oracle-Quelle auf ein Oracle-Ziel (homogene Replikation) alle Quell- und Zieldatentypen identisch. Der Datentyp LONG wird jedoch CLOB zugeordnet, der Datentyp LONG RAW wird BLOB zugeordnet.

Weitere Informationen zum Anzeigen des Datentyps, der im Ziel zugewiesen ist, finden Sie im Abschnitt für den Zielendpunkt, den Sie verwenden.

Weitere Informationen zu AWS DMS Datentypen finden Sie unterDatentypen für den AWS Database Migration Service.

Oracle-Datentyp

AWS DMS Datentyp

BINARY_FLOAT

REAL4

BINARY_DOUBLE

REAL8

BINARY

BYTES

FLOAT (P)

Wenn die Präzision kleiner oder gleich 24 ist, verwenden Sie REAL4.

Wenn die Präzision größer als 24 ist, verwenden Sie REAL8.

NUMBER (P,S)

Verwenden Sie bei einer Skalierung größer als 0 NUMERIC.

Bei einer Skalierung von 0:

  • und Präzision kleiner als oder gleich 2, verwenden Sie INT1.

  • und Präzision größer als 2 und kleiner oder gleich 4, verwenden Sie INT2.

  • und Präzision größer als 4 und kleiner oder gleich 9, verwenden Sie INT4.

  • und Präzision größer als 9, verwenden Sie NUMERIC.

  • und Präzision größer oder gleich der Skalierung, verwenden Sie NUMERIC.

Verwenden Sie bei einer Skalierung kleiner als 0 REAL8.

DATUM

DATETIME

INTERVAL_YEAR TO MONTH

STRING (mit Angabe von "interval year_to_month")

INTERVAL_DAY TO SECOND

STRING (mit Angabe von "interval day_to_second")

TIMESTAMP (ZEITSTEMPEL)

DATETIME

TIMESTAMP WITH TIME ZONE

STRING (mit Angabe von "timestamp_with_timezone")

TIMESTAMP WITH LOCAL TIME ZONE

STRING (mit Angabe von "timestamp_with_local_ timezone")

CHAR

STRING

VARCHAR2

STRING

NCHAR

WSTRING

NVARCHAR2

WSTRING

RAW

BYTES

REAL

REAL8

BLOB

BLOB

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

CLOB

CLOB

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

NCLOB

NCLOB

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

LONG

CLOB

Der LONG-Datentyp wird im stapeloptimierten Anwendungsmodus (CDC-Modus) nicht unterstützt. TurboStream

Um diesen Datentyp mit zu verwenden AWS DMS, aktivieren Sie die Verwendung von LOBs für eine bestimmte Aufgabe.

AWS DMS Unterstützt LOB-Datentypen bei CDC oder Volllast nur in Tabellen, die über einen Primärschlüssel verfügen.

Unterstützt auch AWS DMS nicht den vollständigen LOB-Modus zum Laden von LONG-Spalten. Stattdessen können Sie den limitierten LOB-Modus verwenden, um LONG-Spalten zu einem Oracle-Ziel zu migrieren. Im eingeschränkten LOB-Modus werden alle Daten, die Sie AWS DMS auf LONG-Spalten mit einer Länge von mehr als 64 KB festgelegt haben, auf 64 KB gekürzt. Weitere Informationen zur LOB-Unterstützung finden Sie unter AWS DMSEinstellung der LOB-Unterstützung für Quelldatenbanken in einer Aufgabe AWS DMS

LONG RAW

BLOB

Der LONG RAW-Datentyp wird im stapeloptimierten Anwendungsmodus (TurboStream CDC-Modus) nicht unterstützt.

Um diesen Datentyp mit zu verwenden AWS DMS, aktivieren Sie die Verwendung von LOBs für eine bestimmte Aufgabe.

AWS DMS Unterstützt LOB-Datentypen bei CDC oder Volllast nur in Tabellen, die über einen Primärschlüssel verfügen.

Unterstützt auch AWS DMS nicht den vollständigen LOB-Modus zum Laden von LONG RAW-Spalten. Stattdessen können Sie den limitierten LOB-Modus verwenden, um LONG RAW-Spalten zu einem Oracle-Ziel zu migrieren. Im eingeschränkten LOB-Modus werden alle Daten, die Sie AWS DMS auf LONG RAW-Spalten mit einer Länge von mehr als 64 KB festgelegt haben, auf 64 KB gekürzt. Weitere Informationen zur LOB-Unterstützung finden Sie unter AWS DMSEinstellung der LOB-Unterstützung für Quelldatenbanken in einer Aufgabe AWS DMS

XMLTYPE

CLOB

SDO_GEOMETRY

BLOB (bei einer Migration von Oracle zu Oracle)

CLOB (bei einer Migration von Oracle zu PostgreSQL)

Oracle-Tabellen, die als Quelle mit Spalten der folgenden Datentypen verwendet werden, werden nicht unterstützt und können nicht repliziert werden. Das Replizieren von Spalten mit diesen Datentypen führt zu einer Null-Spalte.

  • BFILE

  • ROWID

  • REF

  • UROWID

  • Benutzerdefinierte Datentypen

  • ANYDATA

  • VARRAY

Anmerkung

Virtuelle Spalten werden nicht unterstützt.

Migrieren räumlicher Oracle-Datentypen

Räumliche Daten identifizieren die Geometrieinformationen für ein Objekt oder eine Position im Raum. In einer Oracle-Datenbank wird die geometrische Beschreibung eines räumlichen Objekts in einem Objekt des Typs SDO_GEOMETRY gespeichert. Innerhalb dieses Objekts wird die geometrische Beschreibung in einer einzelnen Zeile in einer einzelnen Spalte einer benutzerdefinierten Tabelle gespeichert.

AWS DMS unterstützt die Migration des Oracle-Typs SDO_GEOMETRY von einer Oracle-Quelle zu einem Oracle- oder PostgreSQL-Ziel.

Beachten Sie bei der Migration von Oracle-Geodatentypen mit folgenden Überlegungen AWS DMS:

  • Stellen Sie bei der Migration zu einem Oracle-Ziel sicher, dass USER_SDO_GEOM_METADATA-Einträge, die Typinformationen enthalten, manuell übertragen werden.

  • AWS DMS Erstellt bei der Migration von einem Oracle-Quellendpunkt zu einem PostgreSQL-Zielendpunkt Zielspalten. Diese Spalten verfügen über Standardgeometrie- und Geographie-Typinformationen mit einer 2D-Dimension und einer Raumbezugskennung (SRID) gleich Null (0). Ein Beispiel ist GEOMETRY, 2, 0.

  • Konvertieren Sie bei Oracle-Version 12.1 oder früheren zu PostgreSQL-Zielen migrierten Quellen SDO_GEOMETRY-Objekte mithilfe der SDO2GEOJSON-Funktion oder des zusätzlichen Verbindungsattributs spatialSdo2GeoJsonFunctionName in das GEOJSON-Format. Weitere Informationen finden Sie unter Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS.

  • AWS DMS unterstützt Oracle Spatial-Spaltenmigrationen nur für den vollständigen LOB-Modus. AWS DMS unterstützt die Modi Limited LOB oder Inline LOB nicht. Weitere Informationen zum LOB-Modus finden Sie unter Einstellung der LOB-Unterstützung für Quelldatenbanken in einer Aufgabe AWS DMS.

  • Da AWS DMS nur der vollständige LOB-Modus für die Migration von Oracle Spatial-Spalten unterstützt wird, benötigt die Tabelle der Spalten einen Primärschlüssel und einen eindeutigen Schlüssel. Wenn die Tabelle keinen Primärschlüssel und keinen eindeutigen Schlüssel aufweist, wird die Tabelle bei der Migration übersprungen.