

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.

# Quellen für die Datenmigration
<a name="CHAP_Source"></a>

AWS Database Migration Service (AWS DMS) kann viele der gängigsten Daten-Engines als Quelle für die Datenreplikation verwenden. Bei der Datenbankquelle kann es sich um eine selbstverwaltete Engine, die auf einer Amazon-EC2-Instance ausgeführt wird, oder um eine On-Premises-Datenbank handeln. Oder es kann sich um eine Datenquelle für einen AWS Service wie Amazon RDS oder Amazon S3 handeln.

Eine umfassende Liste gültiger Quellen finden Sie unter [Quellen für AWS DMS](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.title).

**Topics**
+ [Verwendung einer Oracle-Datenbank als Quelle für AWS DMS](CHAP_Source.Oracle.md)
+ [Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](CHAP_Source.SQLServer.md)
+ [Verwendung der Microsoft Azure SQL-Datenbank als Quelle für AWS DMS](CHAP_Source.AzureSQL.md)
+ [Verwenden von Microsoft Azure SQL Managed Instance als Quelle für AWS DMS](CHAP_Source.AzureMgd.md)
+ [Verwendung des flexiblen Servers Microsoft Azure Database for PostgreSQL als Quelle für AWS DMS](CHAP_Source.AzureDBPostgreSQL.md)
+ [Verwendung des flexiblen Servers Microsoft Azure Database for MySQL als Quelle für AWS DMS](CHAP_Source.AzureDBMySQL.md)
+ [Verwendung von OCI MySQL Heatwave als Quelle für AWS DMS](CHAP_Source.heatwave.md)
+ [Verwenden von Google Cloud for MySQL als Quelle für AWS DMS](CHAP_Source.GC.md)
+ [Verwenden von Google Cloud für PostgreSQL als Quelle für AWS DMS](CHAP_Source.GCPostgres.md)
+ [Verwenden einer PostgreSQL-Datenbank als Quelle AWS DMS](CHAP_Source.PostgreSQL.md)
+ [Verwendung einer MySQL-kompatiblen Datenbank als Quelle für AWS DMS](CHAP_Source.MySQL.md)
+ [Verwendung einer SAP ASE-Datenbank als Quelle für AWS DMS](CHAP_Source.SAP.md)
+ [MongoDB als Quelle verwenden für AWS DMS](CHAP_Source.MongoDB.md)
+ [Verwendung von Amazon DocumentDB (mit MongoDB-Kompatibilität) als Quelle für AWS DMS](CHAP_Source.DocumentDB.md)
+ [Verwendung von Amazon S3 als Quelle für AWS DMS](CHAP_Source.S3.md)
+ [Verwendung der IBM Db2 für Linux-, Unix-, Windows- und Amazon RDS-Datenbank (Db2 LUW) als Quelle für AWS DMS](CHAP_Source.DB2.md)
+ [Verwendung von IBM Db2 for z/OS Databases als Quelle für AWS DMS](CHAP_Source.DB2zOS.md)

# Verwendung einer Oracle-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.Oracle"></a>

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 unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md).

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](#CHAP_Security.SSL.Oracle).

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](#CHAP_Source.Oracle.Encryption).

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.

1. 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.

1. 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](CHAP_Tasks.Creating.md).

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

**Topics**
+ [Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC](#CHAP_Source.Oracle.CDC)
+ [Workflows für die Konfiguration einer selbstverwalteten oder AWS-verwalteten Oracle-Quelldatenbank für AWS DMSKonfigurieren einer Oracle-Quelldatenbank](#CHAP_Source.Oracle.Workflows)
+ [Arbeiten mit einer selbstverwalteten Oracle-Datenbank als Quelle für AWS DMS](#CHAP_Source.Oracle.Self-Managed)
+ [Arbeiten mit einer AWS-verwalteten Oracle-Datenbank als Quelle für AWS DMS](#CHAP_Source.Oracle.Amazon-Managed)
+ [Einschränkungen bei der Verwendung von Oracle als Quelle für AWS DMS](#CHAP_Source.Oracle.Limitations)
+ [SSL-Unterstützung für einen Oracle-Endpunkt](#CHAP_Security.SSL.Oracle)
+ [Unterstützte Verschlüsselungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS](#CHAP_Source.Oracle.Encryption)
+ [Unterstützte Komprimierungsmethoden für die Verwendung von Oracle als Quelle für AWS DMS](#CHAP_Source.Oracle.Compression)
+ [Replizieren verschachtelter Tabellen mit Oracle als Quelle für AWS DMS](#CHAP_Source.Oracle.NestedTables)
+ [REDO wird auf Oracle ASM gespeichert, wenn Oracle als Quelle für verwendet wird AWS DMS](#CHAP_Source.Oracle.REDOonASM)
+ [Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS](#CHAP_Source.Oracle.ConnectionAttrib)
+ [Quelldatentypen für Oracle](#CHAP_Source.Oracle.DataTypes)

## Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC
<a name="CHAP_Source.Oracle.CDC"></a>

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.


| Feature | LogMiner | Binary Reader | 
| --- | --- | --- | 
| Einfache Konfiguration | Ja | Nein | 
| Geringere Auswirkungen auf das Quellsystem I/O und die CPU | 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 Unterstützt bei Verwendung von Oracle LogMiner AWS DMS keine TDE-Verschlüsselung auf Spaltenebene für Amazon RDS for Oracle.  |  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 Aus Performancegründen und einigen internen DMS-Einschränkungen nicht zu empfehlen.  |  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](#CHAP_Source.Oracle.Encryption).

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 Verschlüsselungsoptionen.
+ 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 zu einer gewissen I/O oder CPU-Auswirkung auf den Computer führen, auf dem die Oracle-Quelldatenbank gehostet wird. Bei Binary Reader ist die Wahrscheinlichkeit I/O geringer, dass die CPU beeinträchtigt wird, 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 for LOBs in Oracle Version 12c. LogMiner tut 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
<a name="CHAP_Source.Oracle.CDC.Configuration"></a>

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, mit der Sie auf die Redo-Logs zugreifen: 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](#CHAP_Source.Oracle.ConnectionAttrib).

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](#CHAP_Source.Oracle.ConnectionAttrib).

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](CHAP_Task.CDC.md#CHAP_Task.CDC.StartPoint).

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

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](#CHAP_Source.Oracle.Amazon-Managed.CDC) und. [Verwenden eines Amazon RDS Oracle Standby (Read Replica) als Quelle mit Binary Reader for CDC in AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.StandBy)

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


## Konfigurieren einer Oracle-Quelldatenbank
<a name="CHAP_Source.Oracle.Workflows"></a>

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](#CHAP_Source.Oracle.Self-Managed.Privileges). | Siehe [Erforderliche Benutzerkontenberechtigungen für eine selbstverwaltete Oracle-Quelle für AWS DMS](#CHAP_Source.Oracle.Self-Managed.Privileges). | 
| Bereiten Sie die Quelldatenbank für die Replikation mit CDC vor. | Siehe [Vorbereiten einer selbstverwalteten Oracle-Quelldatenbank für CDC mit AWS DMS](#CHAP_Source.Oracle.Self-Managed.Configuration). | Siehe [Vorbereiten einer selbstverwalteten Oracle-Quelldatenbank für CDC mit AWS DMS](#CHAP_Source.Oracle.Self-Managed.Configuration). | 
| Gewähren Sie zusätzliche Oracle-Benutzerberechtigungen, die für CDC erforderlich sind. | Siehe [Kontoberechtigungen sind erforderlich, wenn Sie Oracle LogMiner für den Zugriff auf die Redo-Logs verwenden](#CHAP_Source.Oracle.Self-Managed.LogMinerPrivileges). | Siehe [Kontoberechtigungen sind erforderlich, wenn AWS DMS Binary Reader für den Zugriff auf die Redo-Logs verwendet wird](#CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges). | 
| 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](#CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges). | 
| 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](#CHAP_Source.Oracle.CDC). | Siehe [Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC](#CHAP_Source.Oracle.CDC). | 
| Konfigurieren Sie Oracle Standby als Quelle für CDC. | AWS DMS unterstützt Oracle Standby nicht als Quelle. | Siehe [Verwenden eines selbstverwalteten Oracle Standby als Quelle mit Binary Reader for CDC in AWS DMS](#CHAP_Source.Oracle.Self-Managed.BinaryStandby). | 

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


| Für diesen Workflow-Schritt | Gehen Sie wie folgt vor LogMiner, wenn Sie CDC verwenden | 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](#CHAP_Source.Oracle.Amazon-Managed.Privileges). | Weitere Informationen finden Sie unter [Erforderliche Benutzerkontenberechtigungen für eine AWS-verwaltete Oracle-Quelle für AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Privileges). | 
| 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](#CHAP_Source.Oracle.Amazon-Managed.Configuration). | Weitere Informationen finden Sie unter [Konfiguration einer AWS-verwalteten Oracle-Quelle für AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Configuration). | 
| 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](#CHAP_Source.Oracle.Amazon-Managed.CDC). | 
| 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](#CHAP_Source.Oracle.CDC). | Weitere Informationen finden Sie unter [Verwenden von Oracle LogMiner oder AWS DMS Binary Reader für CDC](#CHAP_Source.Oracle.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 eines Amazon RDS Oracle Standby (Read Replica) als Quelle mit Binary Reader for CDC in AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.StandBy). | 

## Arbeiten mit einer selbstverwalteten Oracle-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed"></a>

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
<a name="CHAP_Source.Oracle.Self-Managed.Privileges"></a>

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 dms_user;
GRANT SELECT ANY TRANSACTION TO dms_user;
GRANT SELECT ON V_$ARCHIVED_LOG TO dms_user;
GRANT SELECT ON V_$LOG TO dms_user;
GRANT SELECT ON V_$LOGFILE TO dms_user;
GRANT SELECT ON V_$LOGMNR_LOGS TO dms_user;
GRANT SELECT ON V_$LOGMNR_CONTENTS TO dms_user;
GRANT SELECT ON V_$DATABASE TO dms_user;
GRANT SELECT ON V_$THREAD TO dms_user;
GRANT SELECT ON V_$PARAMETER TO dms_user;
GRANT SELECT ON V_$NLS_PARAMETERS TO dms_user;
GRANT SELECT ON V_$TIMEZONE_NAMES TO dms_user;
GRANT SELECT ON V_$TRANSACTION TO dms_user;
GRANT SELECT ON V_$CONTAINERS TO dms_user;                   
GRANT SELECT ON ALL_INDEXES TO dms_user;
GRANT SELECT ON ALL_OBJECTS TO dms_user;
GRANT SELECT ON ALL_TABLES TO dms_user;
GRANT SELECT ON ALL_USERS TO dms_user;
GRANT SELECT ON ALL_CATALOG TO dms_user;
GRANT SELECT ON ALL_CONSTRAINTS TO dms_user;
GRANT SELECT ON ALL_CONS_COLUMNS TO dms_user;
GRANT SELECT ON ALL_TAB_COLS TO dms_user;
GRANT SELECT ON ALL_IND_COLUMNS TO dms_user;
GRANT SELECT ON ALL_ENCRYPTED_COLUMNS TO dms_user;
GRANT SELECT ON ALL_LOG_GROUPS TO dms_user;
GRANT SELECT ON ALL_TAB_PARTITIONS TO dms_user;
GRANT SELECT ON SYS.DBA_REGISTRY TO dms_user;
GRANT SELECT ON SYS.OBJ$ TO dms_user;
GRANT SELECT ON DBA_TABLESPACES TO dms_user;
GRANT SELECT ON DBA_OBJECTS TO dms_user; -– Required if the Oracle version is earlier than 11.2.0.3.
GRANT SELECT ON SYS.ENC$ TO dms_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 dms_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 dms_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.
GRANT SELECT ON V_$DATABASE_INCARNATION TO dms_user;
```

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 dms_user;
```

Erteilen Sie die folgenden zusätzlichen Rechte, um die Validierungsfunktion zu verwenden.

```
GRANT EXECUTE ON SYS.DBMS_CRYPTO TO dms_user;
```

Erteilen Sie das zusätzliche folgende Recht, wenn Sie stattdessen den Binärleser verwenden LogMiner.

```
GRANT SELECT ON SYS.DBA_DIRECTORIES TO dms_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 dms_user;
GRANT SELECT on v_$tablespace to dms_user;
GRANT SELECT on dba_tab_subpartitions to dms_user;
GRANT SELECT on dba_extents to dms_user;
```

Weitere Informationen zu Serverless-Replikationen finden Sie unter [Arbeiten mit AWS DMS Serverless](CHAP_Serverless.md).

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 dms_user;
GRANT SELECT ON DBA_USERS to dms_user;
GRANT SELECT ON DBA_DIRECTORIES to dms_user;
GRANT EXECUTE ON SYS.DBMS_XMLGEN TO dms_user;
```

Informationen zu Oracle-spezifischen Bewertungen vor der Migration finden Sie unter [Bewertungen von Oracle](CHAP_Tasks.AssessmentReport.Oracle.md).

#### Voraussetzungen für die Verarbeitung offener Transaktionen für Oracle Standby
<a name="CHAP_Source.Oracle.Self-Managed.Privileges.Standby"></a>

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))
             )';
   ```

1. 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
<a name="CHAP_Source.Oracle.Self-Managed.Configuration"></a>

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](#CHAP_Source.Oracle.Self-Managed.Configuration.DbVersion).
+ [Sicherstellen, dass der Modus ARCHIVELOG aktiviert ist](#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode).
+ [Einrichten der zusätzlichen Protokollierung](#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).

#### Es wird überprüft, ob die Version der AWS DMS Quelldatenbank unterstützt wird
<a name="CHAP_Source.Oracle.Self-Managed.Configuration.DbVersion"></a>

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
<a name="CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode"></a>

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
<a name="CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging"></a>

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 `PRIMARY KEY` Standardprotokollierung 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](#CHAP_Source.Oracle.ConnectionAttrib).

Stellen Sie sicher, dass Sie die zusätzliche Protokollierung aktivieren, wenn Ihre Replikationstask 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;
   ```

1. 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;
     ```

     Durch `SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS` die Verwendung werden die eindeutigen Indexspalten nicht zum Protokoll hinzugefügt.
   + 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.

     Durch Verwenden werden die eindeutigen Indexspalten `SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS` nicht zum Protokoll hinzugefügt.
   + 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 LogMiner für den Zugriff auf die Redo-Logs verwenden
<a name="CHAP_Source.Oracle.Self-Managed.LogMinerPrivileges"></a>

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 dms_user;
GRANT SELECT on V_$LOGMNR_LOGS to dms_user;
GRANT SELECT on V_$LOGMNR_CONTENTS to dms_user;
GRANT LOGMINING to dms_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
<a name="CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges"></a>

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 dms_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 dms_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 does not have file-level access to the redo logs and the redo logs are on non-ASM storage.
GRANT EXECUTE on DBMS_FILE_TRANSFER to dms_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 dms_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 werden auf Dateisystemebene nicht dargestellt. 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.

**Anmerkung**  
AWS DMS CDC unterstützt Active Dataguard Standby nicht, das nicht für die Verwendung des automatischen Redo-Transport-Dienstes 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 Replikationsaufgabe starten. AWS DMS Wenn AWS DMS kein erwartetes vorab erstelltes Verzeichnis gefunden wird, wird die Aufgabe beendet. Löscht auch AWS DMS nicht die Einträge, die es in der `ALL_DIRECTORIES` Ansicht erstellt hat. Löschen Sie sie daher manuell.

### Erforderliche zusätzliche Kontoberechtigungen bei Verwendung von Binary Reader mit Oracle ASM
<a name="CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges"></a>

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 eines selbstverwalteten Oracle Standby als Quelle mit Binary Reader for CDC in AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed.BinaryStandby"></a>

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. Beispiel:

```
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 dms_user;
   ```

1. Erstellen Sie mithilfe der AWS-Managementkonsole 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](#CHAP_Source.Oracle.ConnectionAttrib).

1. 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\$1MM\$1TT erstellt. Beispiel: 

   ```
   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’;
      ```

   1. Erstellen Sie ein zusätzliches Archivprotokollziel und ein Oracle-Verzeichnisobjekt, das auf dieses Ziel verweist. Beispiel:

      ```
      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
      ```

   1. 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’; 
      ...
      ```

   1. Erstellen Sie einen Oracle-Scheduler-Auftrag, der täglich ausgeführt wird und das erforderliche Verzeichnis erstellt.

1. Konfigurieren Sie das Ziel für das Online-Protokoll. 

   Erstellen Sie ein Oracle-Verzeichnis, das auf das Betriebssystemverzeichnis mit Standby-Redo-Logs verweist:

   ```
   CREATE OR REPLACE DIRECTORY STANDBY_REDO_DIR AS '<full directory path>';
   GRANT READ ON DIRECTORY STANDBY_REDO_DIR TO <dms_user>;
   ```

### Verwenden einer benutzerverwalteten Datenbank auf Oracle Cloud Infrastructure (OCI) als Quelle für CDC in AWS DMS
<a name="CHAP_Source.Oracle.Self-Managed.OCI"></a>

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](#CHAP_Source.Oracle.Self-Managed.Privileges).

1. 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](#CHAP_Source.Oracle.Self-Managed.BinaryReaderPrivileges).

1. 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](#CHAP_Source.Oracle.Self-Managed.ASMBinaryPrivileges).

1. Richten Sie die zusätzliche Protokollierung ein. Weitere Informationen finden Sie unter [Einrichten der zusätzlichen Protokollierung](#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).

1. Richten Sie die TDE-Verschlüsselung ein. Weitere Informationen finden Sie unter [Verschlüsselungsmethoden bei Verwendung einer Oracle-Datenbank als Quellendpunkt](#CHAP_Source.Oracle.Encryption).

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 auf die LogMiner Redo-Logs nicht.
+ DMS unterstützt Autonomous DB nicht.

## Arbeiten mit einer AWS-verwalteten Oracle-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed"></a>

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
<a name="CHAP_Source.Oracle.Amazon-Managed.Privileges"></a>

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

**Wichtig**  
Für alle Parameterwerte wie `dms_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 `dms_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 dms_user;
GRANT SELECT ANY TRANSACTION to dms_user;
GRANT SELECT on DBA_TABLESPACES to dms_user;
GRANT SELECT ON any-replicated-table to dms_user;
GRANT EXECUTE on rdsadmin.rdsadmin_util to dms_user;
 -- For Oracle 12c or higher:
GRANT LOGMINING to dms_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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html#Appendix.Oracle.CommonDBATasks.TransferPrivileges).

```
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_VIEWS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_PARTITIONS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_INDEXES', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_OBJECTS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TABLES', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_USERS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CATALOG', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONSTRAINTS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_CONS_COLUMNS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_TAB_COLS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_IND_COLUMNS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_LOG_GROUPS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOG', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGFILE', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$THREAD', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$PARAMETER', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$NLS_PARAMETERS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TIMEZONE_NAMES', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$TRANSACTION', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$CONTAINERS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('OBJ$', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('ALL_ENCRYPTED_COLUMNS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS', 'dms_user', 'SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','dms_user','SELECT');
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR', 'dms_user', 'EXECUTE');

-- (as of Oracle versions 12.1 and higher)
exec rdsadmin.rdsadmin_util.grant_sys_object('REGISTRY$SQLPATCH', 'dms_user', 'SELECT');

-- (for Amazon RDS Active Dataguard Standby (ADG))
exec rdsadmin.rdsadmin_util.grant_sys_object('V_$STANDBY_LOG', 'dms_user', 'SELECT'); 

-- (for transparent data encryption (TDE))

exec rdsadmin.rdsadmin_util.grant_sys_object('ENC$', 'dms_user', 'SELECT'); 
               
-- (for validation with LOB columns)
exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'dms_user', 'EXECUTE');
                    
-- (for binary reader)
exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_DIRECTORIES','dms_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', 'dms_user', 'SELECT');
```

Weitere Informationen zur Verwendung von Amazon RDS Active Dataguard Standby (ADG) mit AWS DMS finden Sie unter [Verwenden eines Amazon RDS Oracle Standby (Read Replica) als Quelle mit Binary Reader for CDC in AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.StandBy).

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](#CHAP_Source.Oracle.Encryption)

#### Voraussetzungen für die Verarbeitung offener Transaktionen für Oracle Standby
<a name="CHAP_Source.Oracle.Amazon-Managed.Privileges.Standby"></a>

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))
             )';
   ```

1. 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
<a name="CHAP_Source.Oracle.Amazon-Managed.Configuration"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.Enabling) 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.

1. 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');
   ```

1. 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');
   ```

1. (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
<a name="CHAP_Source.Oracle.Amazon-Managed.CDC"></a>

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](#CHAP_Source.Oracle.Amazon-Managed.Privileges).

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;
   ```

1. 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 dms_user;
   GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO dms_user;
   ```

1. 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](#CHAP_Source.Oracle.CDC.Configuration).

### Verwenden eines Amazon RDS Oracle Standby (Read Replica) als Quelle mit Binary Reader for CDC in AWS DMS
<a name="CHAP_Source.Oracle.Amazon-Managed.StandBy"></a>

Ü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.

1. 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;
   ```

1. 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.  
![\[Table showing directory names and their corresponding paths for archive and online logs.\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/images/datarep-rds-server-level-directories.png)

1. 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 dms_user;
   GRANT READ ON DIRECTORY ARCHIVELOG_DIR_B TO dms_user;
   GRANT READ ON DIRECTORY ONLINELOG_DIR_A TO dms_user;
   GRANT READ ON DIRECTORY ONLINELOG_DIR_B TO dms_user;
   ```

1. 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.

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

1. 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
   ```

1. 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
<a name="CHAP_Source.Oracle.Limitations"></a>

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:
  + Informieren Sie sich im Fall einer selbstverwalteten Oracle-Quelldatenbank unter [Einrichten der zusätzlichen Protokollierung](#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging).
  + Informationen zu einer von AWS-verwalteten Oracle-Quelldatenbank finden Sie unter. [Konfiguration einer AWS-verwalteten Oracle-Quelle für AWS DMS](#CHAP_Source.Oracle.Amazon-Managed.Configuration)
+ AWS DMS unterstützt die Mehrmandanten-Container-Root-Datenbank (CDB\$1ROOT) nicht. Es unterstützt eine PDB, die den Binary Reader verwendet.
+ AWS DMS unterstützt keine verzögerten Einschränkungen.
+ AWS DMS Version 3.5.3 und höher unterstützt Secure vollständig. LOBs
+ 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](#CHAP_Source.Oracle.ConnectionAttrib). Beachten Sie außerdem, dass DMS bei FULL\$1CDC-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) ergeben. `TRUNCATE` 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.
+ Wenn der LOB-Modus mit begrenzter Größe aktiviert ist, werden leere BLOB/CLOB Spalten in der Oracle-Quelle als NULL-Werte repliziert. Wenn der vollständige LOB-Modus aktiviert ist, werden sie als leere Zeichenfolge ('') repliziert.
+ 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.
  + 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 :
  + Tabellencluster werden nicht unterstützt.
  + Es werden nur `SHRINK SPACE`-Operationen auf Tabellenebene unterstützt. Diese Ebene umfasst die vollständige Tabelle, Partitionen und Unterpartitionen.
  + Änderungen an indexorganisierten Tabellen mit Schlüsselkomprimierung werden nicht unterstützt.
  + Die Implementierung von Online-Redo-Logs auf Raw-Geräten wird nicht unterstützt.
  + Binary Reader unterstützt TDE nur für selbstverwaltete Oracle-Datenbanken, da RDS for 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$` oder`DR$`.
+ 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.
+ Vor AWS DMS Version 3.5.3 wird das `INSERT` Direct-Load-Verfahren mit der Option parallel Ausführung in den 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.
+ Repliziert AWS DMS nicht für alle Oracle-Versionen das Ergebnis von `UPDATE` Operationen an `XMLTYPE` und LOB-Spalten.
+ AWS DMS unterstützt keine Replikation aus Tabellen mit zeitlichen Gültigkeitsbeschränkungen.
+ Wenn die Oracle-Quelle während einer Aufgabe zum vollständigen Laden nicht verfügbar ist, wird die Aufgabe AWS DMS möglicherweise nach mehreren Wiederverbindungsversuchen als abgeschlossen markiert, obwohl die Datenmigration noch unvollständig ist. In diesem Szenario enthalten die Zieltabellen nur die Datensätze, die vor dem Verbindungsverlust migriert wurden, was möglicherweise zu Dateninkonsistenzen zwischen Quell- und Zielsystem führen kann. Um die Vollständigkeit der Daten sicherzustellen, müssen Sie entweder die Aufgabe zum vollständigen Laden vollständig neu starten oder die spezifischen Tabellen, die von der Verbindungsunterbrechung betroffen sind, neu laden.

## SSL-Unterstützung für einen Oracle-Endpunkt
<a name="CHAP_Security.SSL.Oracle"></a>

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. 

**Topics**
+ [Verwenden eines vorhandenen Zertifikats für Oracle SSL](#CHAP_Security.SSL.Oracle.Existing)
+ [Verwenden eines selbstsignierten Zertifikats für Oracle SSL](#CHAP_Security.SSL.Oracle.SelfSigned)

### Verwenden eines vorhandenen Zertifikats für Oracle SSL
<a name="CHAP_Security.SSL.Oracle.Existing"></a>

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

**Um eine bestehende Oracle-Client-Installation für Oracle SSL zu verwenden 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                        
   ```

1. `$ORACLE_HOME/lib` an die `LD_LIBRARY_PATH`-Systemvariable anhängen.

   ```
   prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib                        
   ```

1. Erstellen Sie ein Oracle Wallet unter `$ORACLE_HOME/ssl_wallet`.

   ```
   prompt>mkdir $ORACLE_HOME/ssl_wallet
   ```

1. 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, SSL/TLS um eine Verbindung zu einer DB-Instance zu verschlüsseln](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) im *Amazon RDS-Benutzerhandbuch*.

1. Wenn Ihr CA-Zertifikat mehr als eine PEM-Datei enthält (wie Amazon RDS Global oder Regional Bundle), müssen Sie es in separate Dateien aufteilen und sie mithilfe des folgenden Bash-Skripts zur Oracle-Wallet hinzufügen. Dieses Skript erfordert zwei Parametereingaben: den Pfad zum CA-Zertifikat und den Pfad zum Ordner der zuvor erstellten Oracle-Wallet.

   ```
   #!/usr/bin/env bash
   
   certnum=$(grep -c BEGIN <(cat $1))
   
   cnt=0
   temp_cert=""
   while read line
   do
   if [ -n "$temp_cert" -a "$line" == "-----BEGIN CERTIFICATE-----" ]
   then
   cnt=$(expr $cnt + 1)
   printf "\rImporting certificate # $cnt of $certnum"
   orapki wallet add -wallet "$2" -trusted_cert -cert <(echo -n "${temp_cert}") -auto_login_only 1>/dev/null 2>/dev/null
   temp_cert=""
   fi
   temp_cert+="$line"$'\n'
   done < <(cat $1)
   
   cnt=$(expr $cnt + 1)
   printf "\rImporting certificate # $cnt of $certnum"
   orapki wallet add -wallet "$2" -trusted_cert -cert <(echo -n "${temp_cert}") -auto_login_only 1>/dev/null 2>/dev/null
   echo ""
   ```

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
<a name="CHAP_Security.SSL.Oracle.SelfSigned"></a>

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
   ```

1. Wechseln Sie in das Verzeichnis, das Sie im vorherigen Schritt erstellt haben.

   ```
   cd /u01/app/oracle/self_signed_cert
   ```

1. Erstellen Sie einen Stammschlüssel.

   ```
   openssl genrsa -out self-rootCA.key 2048
   ```

1. 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

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

   ```
   mkdir -p /u01/app/oracle/wallet
   ```

1. Erstellen Sie ein neues Oracle Wallet.

   ```
   orapki wallet create -wallet "/u01/app/oracle/wallet" -pwd oracle123 -auto_login_local
   ```

1. 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
   ```

1. 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
   ```

1. 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
   ```

1. 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
   ```

1. 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`

1. Rufen Sie die Zertifikatsignatur ab.

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

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

1. 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
   ```

1. Fügen Sie das Zertifikat dem Wallet hinzu.

   ```
   orapki wallet add -wallet /u01/app/oracle/wallet -pwd oracle123 -user_cert -cert certdms.crt
   ```

1. 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
   ```

1. 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)
   ```

1. Beenden Sie den Oracle Listener.

   ```
   lsnrctl stop
   ```

1. 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))
       )
     )
   ```

1. 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>)
           )
   )
   ```

1. Starten Sie den Oracle Listener neu.

   ```
   lsnrctl start
   ```

1. Zeigen Sie den Status des Oracle Listener an.

   ```
   lsnrctl status
   ```

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

   ```
   sqlplus -L ORACLE_USER@SID_ssl
   ```

1. Ü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
   ```

1. Wechseln Sie zu dem Verzeichnis mit dem selbstsignierten Zertifikat.

   ```
   cd /u01/app/oracle/self_signed_cert
   ```

1. Erstellen Sie ein neues Client-Oracle-Wallet AWS DMS , das Sie verwenden können.

   ```
   orapki wallet create -wallet ./ -auto_login_only
   ```

1. Fügen Sie das selbstsignierte Stammzertifikat dem Oracle Wallet hinzu.

   ```
   orapki wallet add -wallet ./ -trusted_cert -cert self-rootCA.pem -auto_login_only
   ```

1. 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
   ```

1. 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
<a name="CHAP_Source.Oracle.Encryption"></a>

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.

1. Rufen Sie die Masterschlüssel-ID für eine Nicht-CDB- oder eine CDB-Quelle wie folgt ab:

   1. Führen Sie für eine Nicht-CDB-Quelle die folgende Abfrage aus, um die Master-Verschlüsselungsschlüssel-ID abzurufen:

      ```
      SQL>  select rownum, key_id, activation_time from v$encryption_keys;
      
      ROWNUM KEY_ID                                                 ACTIVATION_TIME
      ------ ------------------------------------------------------ ---------------
           1 AeKask0XZU+NvysflCYBEVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA   04-SEP-24 10.20.56.605200 PM +00:00
           2 AV7WU9uhoU8rv8daE/HNnSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA   10-AUG-21 07.52.03.966362 PM +00:00
           3 AckpoJ/f+k8xvzJ+gSuoVH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA   14-SEP-20 09.26.29.048870 PM +00:00
      ```

      Die Aktivierungszeit ist nützlich, wenn Sie CDC zu einem früheren Zeitpunkt starten möchten. Wenn Sie die obigen Ergebnisse verwenden, können Sie CDC beispielsweise zwischen dem 10. und 21. August, 19:52.03 Uhr und dem 14.09.-20 21:26.29 Uhr mit der Master-Key-ID in ROWNUM 2 starten. Wenn die Aufgabe die am oder nach dem 14. September bis 09.26.29 Uhr generierte Redo erreicht, schlägt sie fehl. Sie müssen den Quellendpunkt ändern, die Masterschlüssel-ID in ROWNUM 3 angeben und dann die Aufgabe fortsetzen.

   1. Für die CDB-Quelle benötigt DMS den CDB\$1ROOT Master-Verschlüsselungsschlüssel. Connect zu CDB\$1ROOT her und führen Sie die folgende Abfrage aus:

      ```
      SQL> select rownum, key_id, activation_time from v$encryption_keys where con_id = 1;
      
      ROWNUM KEY_ID                                               ACTIVATION_TIME
      ------ ---------------------------------------------------- -----------------------------------
           1 Aa2E/Vwb5U+zv5hCncS5ErMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 29-AUG-24 12.51.19.699060 AM +00:00
      ```

1. 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.

1. 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.

1. 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
   ```

1. 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 und wendet sie auch nicht auf die Zieldatenbank 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:   
Erstellen Sie einen lokalen Keystore.  

   ```
   ADMINISTER KEY MANAGEMENT create keystore file system wallet location identified by wallet password;
   ```
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
<a name="CHAP_Source.Oracle.Compression"></a>

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 | – | – | 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 mit Oracle als Quelle für AWS DMS
<a name="CHAP_Source.Oracle.NestedTables"></a>

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](#CHAP_Source.Oracle.NestedTables.JoinExample).

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
<a name="CHAP_Source.Oracle.NestedTables.Prerequisites"></a>

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
<a name="CHAP_Source.Oracle.NestedTables.Types"></a>

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
<a name="CHAP_Source.Oracle.NestedTables.Limitations"></a>

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 repliziert verschachtelte Oracle-Tabellen als Quelle
<a name="CHAP_Source.Oracle.NestedTables.HowReplicated"></a>

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 namens`NESTED_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
<a name="CHAP_Source.Oracle.NestedTables.JoinExample"></a>

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);
   ```

1. 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;
   ```

1. 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
<a name="CHAP_Source.Oracle.REDOonASM"></a>

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](https://support.oracle.com/knowledge/Oracle Cloud/1495104_1.html). 

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
<a name="CHAP_Source.Oracle.ConnectionAttrib"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), 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 | Description | 
| --- | --- | 
| 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](#CHAP_Source.Oracle.Amazon-Managed.CDC). 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](https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/rman-data-repair-concepts.html#GUID-1805CCF7-4AF2-482D-B65A-998192F89C2B) 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.Oracle.html) Standardwert: false  Gültige Werte: true/false  Beispiel: `--oracle-settings '{"AddSupplementalLogging": false}'`  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 mit Oracle als Quelle für AWS DMS](#CHAP_Source.Oracle.NestedTables). 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\$1id der Ansicht „v\$1archived\$1log“ 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  Gültige Werte: Y/N  Beispiel: `--oracle-settings '{"ArchivedLogsOnly": Y}'`  | 
|  `asmUsePLSQLArray` (nur ECA)  |  Verwenden Sie dieses zusätzliche Verbindungsattribut (ECA), wenn Sie Quelländerungen mit erfassen BinaryReader. 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 `parallelASMReadThreads` 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](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Wildcards.md). Standardwert: Null  Gültige Werte: alle Zeichen außer Platzhalterzeichen Beispiel: `--oracle-settings '{"EscapeCharacter": "#"}'` 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 ein oder mehrere Ziele für ein oder mehrere archivierte Redo-Logs an. IDs Dies IDs sind die Werte der Spalte dest\$1id in der Ansicht v\$1archived\$1log. Verwenden Sie diese Einstellung mit dem ArchivedLogDestId zusätzlichen Verbindungsattribut in einem Setup oder einem Setup. primary-to-single primary-to-multiple-standby 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}'`  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). Sie müssen beachten, dass es zu Genauigkeitsverlusten kommen kann, wenn diese Einstellung falsch konfiguriert ist.   | 
|  `OpenTransactionWindow`  |   Gibt den Zeitrahmen in Minuten an, in dem nach offenen Transaktionen für reine CDC-Aufgaben gesucht wird. Wenn Sie den Wert `OpenTransactionWindow` auf 1 oder höher einstellen, `SCN_TO_TIMESTAMP` konvertiert DMS SCN-Werte in Zeitstempelwerte. Aufgrund der Einschränkungen von Oracle Database schlägt SCN\$1TO\$1TIMESTAMP mit einem Fehler fehl, wenn Sie eine SCN angeben, die zu alt ist, als CDC-Startpunkt, und Sie können keine reinen CDC-Aufgaben starten. `ORA-08181` 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](#CHAP_Source.Oracle.Amazon-Managed.CDC).Standardwert: keiner rdsdbdata/db/ORCLGültiger Wert:/\$1A/ 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](#CHAP_Source.Oracle.Amazon-Managed.CDC). 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 1000 (Standard) und 2.000.000 (Maximum) 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](#CHAP_Source.Oracle.Amazon-Managed.CDC). Standardwert: 1000  Gültige Werte: Eine Ganzzahl zwischen 1000 und 2.000.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](#CHAP_Source.Oracle.Amazon-Managed.CDC).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](#CHAP_Source.Oracle.Encryption). 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\$1GEOMETRY 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: SDO2 GEOJSON 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](#CHAP_Source.Oracle.Amazon-Managed.CDC).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](#CHAP_Source.Oracle.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 (Standardeinstellung). 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](#CHAP_Source.Oracle.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](#CHAP_Source.Oracle.Amazon-Managed.CDC).Standardwert: keiner Zulässiger Wert: /rdsdbdata/log/ Beispiel: `--oracle-settings '{"UsePathPrefix": "/rdsdbdata/log/"}'`  | 

## Quelldatentypen für Oracle
<a name="CHAP_Source.Oracle.DataTypes"></a>

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 unter[Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Oracle-Datentyp  |  AWS DMS Datentyp  | 
| --- | --- | 
|  BINARY\$1FLOAT  |  REAL4  | 
|  BINARY\$1DOUBLE  |  REAL8  | 
|  BINARY  |  BYTES  | 
|  FLOAT (P)  |  Wenn die Genauigkeit kleiner oder gleich 24 ist, verwenden Sie REAL4. Wenn die Genauigkeit 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: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.Oracle.html) Wenn die Skalierung kleiner als 0 ist, verwenden Sie REAL8. | 
|  DATE  |  DATETIME  | 
|  INTERVAL\$1YEAR TO MONTH  |  STRING (mit Angabe von "interval year\$1to\$1month")  | 
|  INTERVAL\$1DAY TO SECOND  |  STRING (mit Angabe von "interval day\$1to\$1second")  | 
|  TIMESTAMP (ZEITSTEMPEL)  |  DATETIME  | 
|  TIMESTAMP WITH TIME ZONE  |  STRING (mit Angabe von "timestamp\$1with\$1timezone")  | 
|  TIMESTAMP WITH LOCAL TIME ZONE  |  STRING (mit Angabe von "timestamp\$1with\$1local\$1 timezone")  | 
|  CHAR  |  STRING  | 
|  VARCHAR2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.Oracle.html)  | 
|  NCHAR  |  WSTRING  | 
|  NVARCHAR2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.Oracle.html)  | 
|  RAW  |  BYTES  | 
|  REAL  |  REAL8  | 
|  BLOB  |  BLOB Um diesen Datentyp mit zu verwenden 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 DMS[Einstellung der LOB-Unterstützung für Quelldatenbanken in einer Aufgabe AWS DMS](CHAP_Tasks.LOBSupport.md)  | 
|  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 limitierten LOB-Modus kürzt AWS DMS alle Daten auf 64 KB, die Sie auf LONG RAW-Spalten mit einer Länge von mehr als 64 KB setzen. Weitere Informationen zur LOB-Unterstützung finden Sie unter AWS DMS[Einstellung der LOB-Unterstützung für Quelldatenbanken in einer Aufgabe AWS DMS](CHAP_Tasks.LOBSupport.md)  | 
|  XMLTYPE  |  CLOB  | 
| SDO\$1GEOMETRY | BLOB (bei einer Migration von Oracle zu Oracle)CLOB (bei einer Migration von Oracle zu PostgreSQL) | 

Als Quelle verwendete Oracle-Tabellen mit Spalten der folgenden Datentypen 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
<a name="CHAP_Source.Oracle.DataTypes.Spatial"></a>

*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\$1GEOMETRY 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\$1GEOMETRY 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\$1SDO\$1GEOM\$1METADATA-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](#CHAP_Source.Oracle.ConnectionAttrib).
+ 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](CHAP_Tasks.LOBSupport.md).
+ Da AWS DMS nur der Full-LOB-Modus für die Migration von Oracle Spatial-Spalten unterstützt wird, benötigt die Spaltentabelle einen Primärschlüssel und einen eindeutigen Schlüssel. Wenn die Tabelle keinen Primärschlüssel und keinen eindeutigen Schlüssel hat, wird die Tabelle bei der Migration übersprungen.

# Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.SQLServer"></a>

Migrieren Sie Daten aus einer oder mehreren Microsoft SQL Server-Datenbanken mit AWS DMS. Mit einer SQL Server-Datenbank als Quelle können Sie Daten in eine andere SQL Server-Datenbank oder in eine der anderen AWS DMS unterstützten Datenbanken migrieren. 

Informationen zu Versionen von SQL Server, die als Quelle AWS DMS unterstützt werden, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md).

Die SQL Server-Quelldatenbank kann auf einem beliebigen Computer in Ihrem Netzwerk installiert sein. Ein SQL Server-Konto mit den entsprechenden Zugriffsberechtigungen für die Quelldatenbank für den Typ der ausgewählten Aufgabe ist für die Verwendung mit AWS DMS erforderlich. Weitere Informationen finden Sie unter [Berechtigungen für SQL Server-Aufgaben](#CHAP_Source.SQLServer.Permissions).

AWS DMS unterstützt die Migration von Daten aus benannten Instanzen von SQL Server. Beim Erstellen des Quellendpunkts können Sie folgende Notation für den Servernamen verwenden.

```
IPAddress\InstanceName
```

Im folgenden Beispiel wird ein korrekter Servername für den Quellendpunkt angegeben. Hier ist der erste Teil des Namens die IP-Adresse des Servers und der zweite Teil ist der Name der SQL Server-Instanz (in diesem Beispiel SQLTest).

```
10.0.0.25\SQLTest
```

Ermitteln Sie außerdem die Portnummer, die Ihre benannte Instanz von SQL Server überwacht, und verwenden Sie sie, um Ihren AWS DMS Quellendpunkt zu konfigurieren. 

**Anmerkung**  
Port 1433 ist der Standard für Microsoft SQL Server. Jedoch werden dynamische Ports, die sich bei jedem Start von SQL Server ändern, und spezifische statische Portnummern, die zum Herstellen einer Verbindung mit SQL Server über eine Firewall genutzt werden, ebenfalls häufig verwendet. Sie möchten also die tatsächliche Portnummer Ihrer benannten Instanz von SQL Server wissen, wenn Sie den AWS DMS Quellendpunkt erstellen.

Sie können SSL verwenden, um Verbindungen zwischen Ihrem SQL Server-Endpunkt und der Replikations-Instance zu verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem SQL Server-Endpunkt finden Sie unter [Verwenden von SSL mit AWS Database Migration Service](CHAP_Security.SSL.md).

Sie können CDC für die laufende Migration aus einer SQL Server-Datenbank verwenden. Hinweise zur Konfiguration Ihrer SQL Server-Quelldatenbank für CDC finden Sie unter. [Erfassung von Datenänderungen für die laufende Replikation von SQL Server](CHAP_Source.SQLServer.CDC.md)

Weitere Informationen zur Arbeit mit SQL Server-Quelldatenbanken und AWS DMS finden Sie im Folgenden.

**Topics**
+ [Einschränkungen bei der Verwendung von SQL Server als Quelle für AWS DMS](#CHAP_Source.SQLServer.Limitations)
+ [Berechtigungen für SQL Server-Aufgaben](#CHAP_Source.SQLServer.Permissions)
+ [Voraussetzungen für die Verwendung der laufenden Replikation (CDC) von einer SQL-Server-Quelle aus](#CHAP_Source.SQLServer.Prerequisites)
+ [Unterstützte Komprimierungsmethoden für SQL Server](#CHAP_Source.SQLServer.Compression)
+ [Arbeiten mit selbstverwalteten SQL Server-Verfügbarkeitsgruppen AlwaysOn](#CHAP_Source.SQLServer.AlwaysOn)
+ [Endpunkteinstellungen bei Verwendung von SQL Server als Quelle für AWS DMS](#CHAP_Source.SQLServer.ConnectionAttrib)
+ [Quelldatentypen für SQL Server](#CHAP_Source.SQLServer.DataTypes)
+ [Erfassung von Datenänderungen für die laufende Replikation von SQL Server](CHAP_Source.SQLServer.CDC.md)

## Einschränkungen bei der Verwendung von SQL Server als Quelle für AWS DMS
<a name="CHAP_Source.SQLServer.Limitations"></a>

Die folgenden Einschränkungen gelten, wenn Sie eine SQL Server-Datenbank als Quelle für AWS DMS verwenden:
+ Die Identitätseigenschaft für eine Spalte wird nicht zu einer Spalte in der Zieldatenbank migriert.
+ Der SQL Server-Endpunkt unterstützt die Verwendung von Tabellen mit spärlichen Spalten nicht.
+ Windows-Authentifizierung wird nicht unterstützt.
+ Änderungen an berechneten Feldern in einem SQL Server werden nicht repliziert.
+ Temporäre Tabellen werden nicht unterstützt.
+ SQL Server-Partition-Switching wird nicht unterstützt.
+ Bei Verwendung der Dienstprogramme WRITETEXT und UPDATETEXT werden AWS DMS keine Ereignisse erfasst, die auf die Quelldatenbank angewendet werden.
+ Das folgende Data Manipulation Language (DML)-Muster wird nicht unterstützt. 

  ```
  SELECT * INTO new_table FROM existing_table
  ```
+ Bei der Verwendung von SQL Server als Quelle wird die Verschlüsselung auf Spaltenebene nicht unterstützt.
+ AWS DMS unterstützt keine Audits auf Serverebene für SQL Server 2008 oder SQL Server 2008 R2 als Quellen. Dies liegt an einem bekannten Problem mit SQL Server 2008 und 2008 R2. Wenn Sie beispielsweise den folgenden Befehl ausführen, schlägt dies AWS DMS fehl.

  ```
  USE [master]
  GO 
  ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on)
  GO
  ```
+ Die Spalten Geometrie und Geografie werden im vollständigen LOB-Modus nicht unterstützt, wenn SQL Server als Quelle verwendet wird. Verwenden Sie stattdessen den limitierten LOB-Modus oder legen Sie die Aufgabeneinstellung `InlineLobMaxSize` so fest, dass der Inline-LOB-Modus verwendet wird.
+ Wenn Sie eine Quelldatenbank in Microsoft SQL Server in einer Replikationsaufgabe verwenden, werden die Definitionen von SQL Server Replication Publisher nicht entfernt, falls Sie die Aufgabe entfernen. Ein Microsoft SQL Server-Systemadministrator muss diese Definitionen von Microsoft SQL Server löschen.
+ Die Migration von Daten aus schemagebundenen Daten und non-schema-bound Ansichten wird nur für Aufgaben mit Volllast unterstützt. 
+ Das Umbenennen von Tabellen mit sp\$1rename wird nicht unterstützt (z. B. `sp_rename 'Sales.SalesRegion', 'SalesReg;)`
+ Das Umbenennen von Spalten mit sp\$1rename wird nicht unterstützt (z. B. `sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';`)
+ AWS DMS unterstützt keine Änderungsverarbeitung zum Setzen und Löschen von Spaltenstandardwerten (unter Verwendung der `ALTER COLUMN SET DEFAULT` Klausel mit Anweisungen). `ALTER TABLE`
+ AWS DMS unterstützt keine Änderungsverarbeitung zum Festlegen der NULL-Zulässigkeit von Spalten (Verwendung der `ALTER COLUMN [SET|DROP] NOT NULL` Klausel mit `ALTER TABLE` Anweisungen).
+ Bei SQL Server 2012 und SQL Server 2014 kann die Verteilungsdatenbank bei Verwendung der DMS-Replikation mit Verfügbarkeitsgruppen nicht in einer Verfügbarkeitsgruppe platziert werden. SQL 2016 unterstützt das Platzieren der Verteilungsdatenbank in einer Verfügbarkeitsgruppe, mit Ausnahme von Verteilungsdatenbanken, die in Merge-, bidirektionalen oder peer-to-peer Replikationstopologien verwendet werden.
+ Unterstützt bei partitionierten Tabellen AWS DMS keine unterschiedlichen Datenkomprimierungseinstellungen für jede Partition.
+ Wenn Sie einen Wert in räumliche SQL-Server-Datentypen (GEOGRAPHY und GEOMETRY) einfügen, können Sie entweder die Eigenschaft Spatial Reference System Identifier (SRID) ignorieren oder eine andere Zahl angeben. AWS DMS Ersetzt beim Replizieren von Tabellen mit räumlichen Datentypen die SRID durch die Standard-SRID (0 für GEOMETRY und 4326 für GEOGRAPHY).
+ Wenn Ihre Datenbank nicht für MS-REPLIKATION oder MS-CDC konfiguriert ist, können Sie trotzdem Tabellen erfassen, die keinen Primärschlüssel haben, es werden jedoch nur DML-Ereignisse erfasst. INSERT/DELETE Die Ereignisse UPDATE und TRUNCATE TABLE werden ignoriert.
+ Columnstore-Indizes werden nicht unterstützt.
+ Speicheroptimierte Tabellen (unter Verwendung von In-Memory OLTP) werden nicht unterstützt.
+ Wenn Sie eine Tabelle mit einem Primärschlüssel replizieren, der aus mehreren Spalten besteht, wird das Aktualisieren der Primärschlüsselspalten während eines Volllastvorgangs nicht unterstützt.
+ Verzögerte Haltbarkeit wird nicht unterstützt.
+ Aufgrund der Art und Weise, wie RDS Backups durchführt, funktioniert die Endpunkteinstellung `readBackupOnly=true` (zusätzliches Verbindungsattribut) auf Quell-Instances in RDS für SQL Server nicht.
+ `EXCLUSIVE_AUTOMATIC_TRUNCATION` funktioniert auf Quell-Instances in Amazon RDS SQL Server nicht, da RDS-Benutzer keinen Zugriff zum Ausführen der gespeicherten SQL-Server-Prozedur `sp_repldone` haben.
+ AWS DMS erfasst keine Befehle, die gekürzt werden.
+ AWS DMS unterstützt keine Replikation von Datenbanken mit aktivierter beschleunigter Datenbankwiederherstellung (ADR).
+ AWS DMS unterstützt nicht die Erfassung von Anweisungen in Data Definition Language (DDL) und Data Manipulation Language (DML) innerhalb einer einzigen Transaktion.
+ AWS DMS unterstützt nicht die Replikation von Data-Tier-Anwendungspaketen (DACPAC).
+ UPDATE-Anweisungen, die Primärschlüssel oder eindeutige Indizes beinhalten und mehrere Datenzeilen aktualisieren, können zu Konflikten führen, wenn Sie Änderungen auf die Zieldatenbank anwenden. Dies kann beispielsweise der Fall sein, wenn die Zieldatenbank Aktualisierungen als INSERT- und DELETE-Anweisungen anstelle einer einzigen UPDATE-Anweisung anwendet. Im stapeloptimierten Anwendungsmodus wird die Tabelle möglicherweise ignoriert. Im transaktionalen Anwendungsmodus kann die UPDATE-Operation zu Verstößen gegen die Einschränkung führen. Laden Sie die entsprechende Tabelle neu, um dieses Problem zu vermeiden. Suchen Sie alternativ die problematischen Datensätze in der Kontrolltabelle „Ausnahmen anwenden“ (`dmslogs.awsdms_apply_exceptions`) und bearbeiten Sie sie manuell in der Zieldatenbank. Weitere Informationen finden Sie unter [Einstellungen für die Optimierung der Verarbeitung von Änderungen](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).
+ AWS DMS unterstützt nicht die Replikation von Tabellen und Schemas, bei denen der Name ein Sonderzeichen aus dem folgenden Satz enthält.

  `\\ -- \n \" \b \r ' \t ;` 
+ Datenmaskierung wird nicht unterstützt. AWS DMS migriert maskierte Daten ohne Maskierung.
+ AWS DMS repliziert bis zu 32.767 Tabellen mit Primärschlüsseln und bis zu 1.000 Spalten für jede Tabelle. Das liegt daran, dass für jede replizierte Tabelle ein Artikel zur SQL Server-Replikation AWS DMS erstellt wird und dass für Artikel zur SQL Server-Replikation diese Einschränkungen gelten.
+ Wenn Sie die Erfassung von Datenänderungen (Change Data Capture, CDC) verwenden, müssen Sie alle Spalten, die einen eindeutigen Index bilden, als `NOT NULL` definieren. Wenn diese Anforderung nicht erfüllt ist, führt dies zum SQL-Server-Systemfehler 22838. 
+ Sie können Ereignisse verlieren, wenn SQL Server vom aktiven Transaktionsprotokoll in das Sicherungsprotokoll archiviert oder sie aus dem aktiven Transaktionsprotokoll kürzt.

Beim Zugriff auf die Sicherungstransaktionsprotokolle gelten die folgenden Einschränkungen:
+ Verschlüsselte Sicherungen werden nicht unterstützt.
+ Sicherungen, die unter einer URL oder unter Windows Azure gespeichert sind, werden nicht unterstützt.
+ AWS DMS unterstützt nicht die direkte Verarbeitung von Transaktionsprotokollsicherungen auf Dateiebene aus alternativen freigegebenen Ordnern.
+  AWS DMS Unterstützt für andere Cloud SQL Server-Quellen als Amazon RDS for Microsoft SQL Server die fortlaufende Replikation (CDC) nur mit dem aktiven Transaktionsprotokoll. Sie können nicht das Backup-Protokoll für CDC verwenden. Sie können Ereignisse verlieren, wenn der SQL-Server sie vom aktiven Transaktionsprotokoll in das Backup-Protokoll archiviert oder sie aus dem aktiven Transaktionsprotokoll kürzt, bevor DMS sie lesen kann. 
+ Für Amazon RDS for Microsoft SQL Server Server-Quellen unterstützen AWS DMS 3.5.2 und niedriger die fortlaufende Replikation (CDC) nur mit dem aktiven Transaktionsprotokoll, da DMS mit CDC nicht auf das Backup-Protokoll zugreifen kann. Sie können Ereignisse verlieren, wenn RDS for SQL Server sie aus dem aktiven Transaktionsprotokoll in das Backup-Protokoll archiviert oder sie aus dem aktiven Transaktionslog kürzt, bevor DMS sie lesen kann. Diese Einschränkung gilt nicht für AWS DMS Version 3.5.3 und höher.
+ AWS DMS unterstützt CDC für Amazon RDS Proxy for SQL Server nicht als Quelle.
+ Wenn die SQL Server-Quelle während einer Aufgabe mit vollständigem Laden nicht verfügbar ist, wird die Aufgabe nach mehreren Verbindungsversuchen AWS DMS möglicherweise als abgeschlossen markiert, obwohl die Datenmigration noch unvollständig ist. In diesem Szenario enthalten die Zieltabellen nur die Datensätze, die vor dem Verbindungsverlust migriert wurden, was möglicherweise zu Dateninkonsistenzen zwischen Quell- und Zielsystem führen kann. Um die Vollständigkeit der Daten sicherzustellen, müssen Sie entweder die Aufgabe zum vollständigen Laden vollständig neu starten oder die spezifischen Tabellen, die von der Verbindungsunterbrechung betroffen sind, neu laden.

## Berechtigungen für SQL Server-Aufgaben
<a name="CHAP_Source.SQLServer.Permissions"></a>

**Topics**
+ [Berechtigungen für reine Volllastaufgaben](#CHAP_Source.SQLServer.Permissions.FullLoad)
+ [Berechtigungen für Aufgaben mit laufender Replikation](#CHAP_Source.SQLServer.Permissions.Ongoing)

### Berechtigungen für reine Volllastaufgaben
<a name="CHAP_Source.SQLServer.Permissions.FullLoad"></a>

Die folgenden Berechtigungen sind zum Ausführen reiner Volllastaufgaben erforderlich. Beachten Sie, dass AWS DMS das Login `dms_user` nicht erstellt. Informationen zum Erstellen eines Anmeldenamens für SQL Server finden Sie unter [Erstellen eines Datenbankbenutzers](https://learn.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16) *in der Dokumentation von Microsoft*.

```
USE db_name;
                
                CREATE USER dms_user FOR LOGIN dms_user; 
                ALTER ROLE [db_datareader] ADD MEMBER dms_user; 
                GRANT VIEW DATABASE STATE to dms_user;
                GRANT VIEW DEFINITION to dms_user;
                
                USE master;
                
                GRANT VIEW SERVER STATE TO dms_user;
```

### Berechtigungen für Aufgaben mit laufender Replikation
<a name="CHAP_Source.SQLServer.Permissions.Ongoing"></a>

Selbstverwaltete SQL Server-Instanzen können für die laufende Replikation mithilfe von DMS mit oder ohne Verwendung der `sysadmin` Rolle konfiguriert werden. Stellen Sie bei SQL Server-Instanzen, bei denen Sie die `sysadmin` Rolle nicht gewähren können, sicher, dass der DMS-Benutzer über die im Folgenden beschriebenen Rechte verfügt.

**Richten Sie Berechtigungen für die laufende Replikation aus einer selbstverwalteten SQL Server-Datenbank ein**

1. Erstellen Sie ein neues SQL Server-Konto mit Kennwortauthentifizierung mithilfe von SQL Server Management Studio (SSMS) oder wie zuvor beschrieben[Berechtigungen für reine Volllastaufgaben](#CHAP_Source.SQLServer.Permissions.FullLoad), beispielsweise. `self_managed_user`

1. Führen Sie die folgenden `GRANT` Befehle aus: 

   ```
   GRANT VIEW SERVER STATE TO self_managed_user;
   
   USE msdb;
       GRANT SELECT ON msdb.dbo.backupset TO self_managed_user;
       GRANT SELECT ON msdb.dbo.backupmediafamily TO self_managed_user;
       GRANT SELECT ON msdb.dbo.backupfile TO self_managed_user;
       
   USE db_name;
       CREATE USER self_managed_user FOR LOGIN self_managed_user;
       ALTER ROLE [db_owner] ADD MEMBER self_managed_user;
       GRANT VIEW DEFINITION to self_managed_user;
   ```

1. Zusätzlich zu den oben genannten Berechtigungen benötigt der Benutzer eine der folgenden Berechtigungen:
   + Der Benutzer muss Mitglied der `sysadmin` festen Serverrolle sein
   + Konfigurationen und Berechtigungen wie unter [Einrichtung einer laufenden Replikation auf einem SQL-Server in einer Availability-Group-Umgebung: Ohne Sysadmin-Rolle](CHAP_Source.SQLServer.CDC.md#CHAP_SupportScripts.SQLServer.ag) oder beschrieben[Einrichten der laufenden Replikation auf einer eigenständigen SQL-Server-Quelle: Ohne Sysadmin-Rolle](CHAP_Source.SQLServer.CDC.md#CHAP_SupportScripts.SQLServer.standalone), abhängig von Ihrer Quellkonfiguration.

#### Richten Sie Berechtigungen für die laufende Replikation aus einer Cloud-SQL Server-Datenbank ein
<a name="CHAP_Source.SQLServer.Permissions.Cloud"></a>

Eine in der Cloud gehostete SQL Server-Instance ist eine Instance, die auf Amazon RDS for Microsoft SQL Server, einer verwalteten Azure SQL Instance oder einer anderen verwalteten Cloud-SQL Server-Instanz läuft, die von DMS unterstützt wird.

Erstellen Sie ein neues SQL Server-Konto mit Kennwortauthentifizierung mithilfe von SQL Server Management Studio (SSMS) oder wie zuvor beschrieben[Berechtigungen für reine Volllastaufgaben](#CHAP_Source.SQLServer.Permissions.FullLoad), z. B. `rds_user`

Führen Sie die folgenden Befehle zum Erteilen der Berechtigungen aus.

```
GRANT VIEW SERVER STATE TO rds_user;
```

Für Amazon RDS for Microsoft SQL Server Server-Quellen unterstützt DMS-Version 3.5.3 und höher das Lesen aus Transaktionsprotokoll-Backups. Um sicherzustellen, dass DMS auf die Protokollsicherungen zugreifen kann, müssen Sie zusätzlich zu den oben genannten Rechten entweder `master` Benutzerrechte oder die folgenden Rechte für eine RDS-SQL-Server-Quelle gewähren:

```
USE msdb;
    GRANT EXEC ON msdb.dbo.rds_dms_tlog_download TO rds_user;
    GRANT EXEC ON msdb.dbo.rds_dms_tlog_read TO rds_user;
    GRANT EXEC ON msdb.dbo.rds_dms_tlog_list_current_lsn TO rds_user;
    GRANT EXEC ON msdb.dbo.rds_task_status TO rds_user;
    
USE db_name;
    CREATE USER rds_user FOR LOGIN rds_user;
    ALTER ROLE [db_owner] ADD MEMBER rds_user;
    GRANT VIEW DEFINITION to rds_user;
```

Gewähren Sie für Amazon Azure SQL Managed Instances die folgenden Rechte:

```
GRANT SELECT ON msdb.dbo.backupset TO rds_user;
GRANT SELECT ON msdb.dbo.backupmediafamily TO rds_user;
GRANT SELECT ON msdb.dbo.backupfile TO rds_user;
```

## Voraussetzungen für die Verwendung der laufenden Replikation (CDC) von einer SQL-Server-Quelle aus
<a name="CHAP_Source.SQLServer.Prerequisites"></a>

Sie können die laufende Replikation (Erfassung von Datenänderungen (Change Data Capture, CDC)) für eine selbstverwaltete SQL-Server-Datenbank On-Premises oder in Amazon EC2 oder für eine Cloud-Datenbank wie Amazon RDS oder eine von Microsoft Azure SQL verwaltete Instance verwenden.

Die folgenden Anforderungen gelten speziell für die Verwendung der fortlaufenden Replikation mit einer SQL Server-Datenbank als Quelle für AWS DMS:
+ SQL Server muss für vollständige Sicherungen konfiguriert werden und vor Beginn der Datenreplikation muss eine Sicherung ausgeführt werden.
+ Das Wiederherstellungsmodell muss auf **Bulk logged** (Massenprotokollierung) oder **Full** (Vollständig) eingestellt sein.
+ Die SQL Server-Sicherung auf mehrere Datenträger wird nicht unterstützt. Wenn das Backup so definiert ist, dass das Datenbank-Backup in mehrere Dateien auf verschiedenen Festplatten geschrieben wird, AWS DMS können die Daten nicht gelesen werden und die AWS DMS Aufgabe schlägt fehl.
+ Bei selbstverwalteten SQL-Server-Quellen werden Definitionen von SQL Server Replication Publisher für die in einer DMS-CDC-Aufgabe verwendete Quelle nicht entfernt, wenn die Aufgabe entfernt wird. Bei selbstverwalteten Quellen muss ein SQL Server-Systemadministrator diese Definitionen aus SQL Server löschen.
+ Während des CDC AWS DMS muss nach Sicherungen des SQL Server-Transaktionsprotokolls gesucht werden, um Änderungen lesen zu können. AWS DMS unterstützt keine SQL Server-Transaktionsprotokollsicherungen, die mit Sicherungssoftware von Drittanbietern erstellt wurden und *nicht* im systemeigenen Format vorliegen. Um Backups des Transaktionsprotokolls zu unterstützen, die *im nativen Format vorliegen* und mit Backup-Software von Drittanbietern erstellt wurden, fügen Sie dem Quellendpunkt das Verbindungsattribut `use3rdPartyBackupDevice=Y` hinzu.
+ Beachten Sie bei selbstverwalteten SQL Server-Quellen, dass SQL Server Änderungen an neu erstellten Tabellen erst erfasst, nachdem diese veröffentlicht wurden. AWS DMS Verwaltet die Erstellung der Publikation, wenn Tabellen zu einer SQL Server-Quelle hinzugefügt werden. Dieser Vorgang kann allerdings einige Minuten dauern. Während dieser Verzögerung vorgenommene Operationen in neu erstellten Tabellen werden nicht erfasst oder in der Zieldatenbank repliziert. 
+ AWS DMS Für die Erfassung von Änderungsdaten muss die vollständige Transaktionsprotokollierung in SQL Server aktiviert sein. Um die vollständige Transaktionsprotokollierung in SQL Server zu aktivieren, müssen Sie entweder MS-REPLICATION oder CHANGE DATA CAPTURE (CDC) aktivieren.
+ SQL-Server-*tlog*-Einträge werden erst für die Wiederverwendung markiert, wenn der MS-CDC-Erfassungsauftrag diese Änderungen verarbeitet.
+ CDC-Vorgänge werden auf speicheroptimierten Tabellen nicht unterstützt. Diese Einschränkung gilt für SQL Server 2014 (erstmalige Einführung des Features) und höher.
+ AWS DMS Für die Erfassung von Änderungsdaten ist standardmäßig eine Verteilungsdatenbank auf Amazon EC2 oder einem lokalen SQL-Server als Quelle erforderlich. Stellen Sie daher sicher, dass Sie den Verteiler aktiviert haben, während Sie MS Replication für Tabellen mit Primärschlüsseln konfigurieren.

## Unterstützte Komprimierungsmethoden für SQL Server
<a name="CHAP_Source.SQLServer.Compression"></a>

Beachten Sie in Bezug auf die Unterstützung von SQL-Server-Komprimierungsmethoden in AWS DMS Folgendes:
+ AWS DMS unterstützt die Row/Page Komprimierung in SQL Server Version 2008 und höher.
+ AWS DMS unterstützt das Vardecimal-Speicherformat nicht.
+ AWS DMS unterstützt keine spärlichen Spalten und keine Komprimierung von Spaltenstrukturen.

## Arbeiten mit selbstverwalteten SQL Server-Verfügbarkeitsgruppen AlwaysOn
<a name="CHAP_Source.SQLServer.AlwaysOn"></a>

SQL-Server-AlwaysOn-Verfügbarkeitsgruppen bieten Hochverfügbarkeit und Notfallwiederherstellung als Alternative zur Datenbankspiegelung auf Unternehmensebene. 

In AWS DMS können Sie Änderungen von einem einzelnen primären oder sekundären Verfügbarkeitsgruppenreplikat migrieren.

### Arbeiten mit dem Replikat der primären Verfügbarkeitsgruppe
<a name="CHAP_Source.SQLServer.AlwaysOn.Primary"></a>

 

**Gehen Sie wie folgt vor, um die primäre Verfügbarkeitsgruppe als Quelle in AWS DMS zu verwenden:**

1. Aktivieren Sie die Verteilungsoption für alle SQL-Server-Instances in Ihren Replikaten der Verfügbarkeitsgruppe. Weitere Informationen finden Sie unter [Einrichten der laufenden Replikation auf einer selbstverwalteten SQL-Server-Quelle](CHAP_Source.SQLServer.CDC.md#CHAP_Source.SQLServer.CDC.MSCDC).

1. Öffnen Sie in der AWS DMS Konsole die Einstellungen für die SQL Server-Quelldatenbank. Geben Sie für **Servername** den Domain Name Service (DNS)-Namen oder die IP-Adresse ein, der/die für den Verfügbarkeitsgruppen-Listener konfiguriert wurde. 

Wenn Sie eine AWS DMS Aufgabe zum ersten Mal starten, kann es länger als gewöhnlich dauern, bis sie gestartet wird. Das liegt daran, dass die Erstellung der Tabellenartikel durch den Verfügbarkeitsgruppenserver dupliziert wird. 

### Arbeiten mit dem Replikat einer sekundären Verfügbarkeitsgruppe
<a name="CHAP_Source.SQLServer.AlwaysOn.Secondary"></a>

**Gehen Sie wie folgt vor, um eine sekundäre Verfügbarkeitsgruppe als Quelle für zu verwenden: AWS DMS**

1. Verwenden Sie für die Verbindung zu einzelnen Replikaten dieselben Anmeldeinformationen wie für den Benutzer des AWS DMS Quellendpunkts.

1. Stellen Sie sicher, dass Ihre AWS DMS Replikationsinstanz DNS-Namen für alle vorhandenen Replikate auflösen und eine Verbindung zu ihnen herstellen kann. Sie können die folgende SQL-Abfrage verwenden, um DNS-Namen für alle Ihre Replikate abzurufen.

   ```
   select ar.replica_server_name, ar.endpoint_url from sys.availability_replicas ar
   JOIN sys.availability_databases_cluster adc
   ON adc.group_id = ar.group_id AND adc.database_name = '<source_database_name>';
   ```

1. Wenn Sie den Quellendpunkt erstellen, geben Sie den DNS-Namen des Verfügbarkeitsgruppen-Listeners als **Servername** des Endpunkts oder als **Serveradresse** des Endpunkt-Secrets an. Weitere Informationen zu Verfügbarkeitsgruppen-Listenern finden Sie unter [What is an availability group listener?](https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/availability-group-listener-overview?view=sql-server-ver15) in der Dokumentation zu SQL Server.

   Sie können entweder einen öffentlichen DNS-Server oder einen On-Premises-DNS-Server verwenden, um den Verfügbarkeitsgruppen-Listener, das primäre Replikat und die sekundären Replikate aufzulösen. Wenn Sie einen On-Premises-DNS-Server verwenden möchten, konfigurieren Sie den Amazon Route 53 Resolver. Weitere Informationen finden Sie unter [Verwenden Ihres eigenen Vor-Ort-Nameservers](CHAP_BestPractices.md#CHAP_BestPractices.Rte53DNSResolver).

1. Fügen Sie Ihrem Quellendpunkt die folgenden zusätzlichen Verbindungsattribute hinzu.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.SQLServer.html)

1. Aktivieren Sie die Verteilungsoption für alle Replikate in Ihrer Verfügbarkeitsgruppe. Fügen Sie der Verteilerliste alle Knoten hinzu. Weitere Informationen finden Sie unter [So richten Sie die Verteilung ein](CHAP_Source.SQLServer.CDC.md#CHAP_Source.SQLServer.CDC.MSCDC.Setup).

1. Führen Sie die folgende Abfrage für das primäre Lese-/Schreibreplikat aus, um die Veröffentlichung Ihrer Datenbank zu ermöglichen. Sie führen diese Abfrage nur einmal für Ihre Datenbank aus. 

   ```
   sp_replicationdboption @dbname = N'<source DB name>', @optname = N'publish', @value = N'true';
   ```



#### Einschränkungen
<a name="CHAP_Source.SQLServer.AlwaysOn.Secondary.limitations"></a>

Im Folgenden werden Einschränkungen für die Arbeit mit einem Replikat einer sekundären Verfügbarkeitsgruppe aufgeführt:
+ AWS DMS unterstützt Safeguard nicht, wenn Sie ein schreibgeschütztes Verfügbarkeitsgruppenreplikat als Quelle verwenden. Weitere Informationen finden Sie unter [Endpunkteinstellungen bei Verwendung von SQL Server als Quelle für AWS DMS](#CHAP_Source.SQLServer.ConnectionAttrib).
+ AWS DMS unterstützt das `setUpMsCdcForTables` zusätzliche Verbindungsattribut nicht, wenn ein schreibgeschütztes Verfügbarkeitsgruppenreplikat als Quelle verwendet wird. Weitere Informationen finden Sie unter [Endpunkteinstellungen bei Verwendung von SQL Server als Quelle für AWS DMS](#CHAP_Source.SQLServer.ConnectionAttrib).
+ AWS DMS kann ab Version 3.4.7 ein selbstverwaltetes sekundäres Verfügbarkeitsgruppenreplikat als Quelldatenbank für die laufende Replikation (Change Data Capture, CDC) verwenden. Multi-AZ-Lesereplikate in Cloud SQL Server werden nicht unterstützt. Wenn Sie frühere Versionen von verwenden, stellen Sie sicher AWS DMS, dass Sie das Replikat der primären Verfügbarkeitsgruppe als Quelldatenbank für CDC verwenden.

#### Failover auf andere Knoten
<a name="CHAP_Source.SQLServer.AlwaysOn.Secondary.failover"></a>

Wenn Sie das `ApplicationIntent` zusätzliche Verbindungsattribut für Ihren Endpunkt auf festlegen`ReadOnly`, stellt Ihre AWS DMS Aufgabe eine Verbindung mit dem schreibgeschützten Knoten mit der höchsten Nur-Lese-Routing-Priorität her. Anschließend erfolgt ein Failover zu anderen schreibgeschützten Knoten in Ihrer Verfügbarkeitsgruppe, wenn der schreibgeschützte Knoten mit der höchsten Priorität nicht verfügbar ist. Wenn Sie dies nicht festlegen`ApplicationIntent`, stellt Ihre AWS DMS Aufgabe nur eine Verbindung zum primären Knoten (Lese-/Schreibknoten) in Ihrer Verfügbarkeitsgruppe her.

## Endpunkteinstellungen bei Verwendung von SQL Server als Quelle für AWS DMS
<a name="CHAP_Source.SQLServer.ConnectionAttrib"></a>

Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer SQL-Server-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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), mit der `--microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'` JSON-Syntax erstellen.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit SQL Server als Quelle verwenden können.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.SQLServer.html)

## Quelldatentypen für SQL Server
<a name="CHAP_Source.SQLServer.DataTypes"></a>

Die Datenmigration, die SQL Server als Quelle verwendet, AWS DMS unterstützt die meisten SQL Server-Datentypen. Die folgende Tabelle zeigt die SQL Server-Quelldatentypen, die bei der Verwendung unterstützt werden, AWS DMS sowie die Standardzuweisung von AWS DMS Datentypen.

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 unter[Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  SQL Server-Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
|  BIGINT  |  INT8  | 
|  BIT  |  BOOLEAN  | 
|  DECIMAL  |  NUMERIC  | 
|  INT  |  INT4  | 
|  MONEY  |  NUMERIC  | 
|  NUMERIC (p,s)  |  NUMERIC   | 
|  SMALLINT  |  INT2  | 
|  SMALLMONEY  |  NUMERIC  | 
|  TINYINT  |  UINT1  | 
|  REAL  |  REAL4  | 
|  FLOAT  |  REAL8  | 
|  DATETIME  |  DATETIME  | 
|  DATETIME2 (SQL Server 2008 und höher)  |  DATETIME  | 
|  SMALLDATETIME  |  DATETIME  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  DATETIMEOFFSET  |  WSTRING  | 
|  CHAR  |  STRING  | 
|  VARCHAR  |  STRING  | 
|  VARCHAR (max)  |  CLOB TEXT Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von CLOB-Datentypen für eine bestimmte Aufgabe aktivieren. Bei SQL Server-Tabellen werden die LOB-Spalten im Ziel auch für UPDATE-Anweisungen aktualisiert, die den Wert der LOB-Spalte in SQL Server nicht ändern. AWS DMS   AWS DMS Unterstützt während CDC CLOB-Datentypen nur in Tabellen, die einen Primärschlüssel enthalten.  | 
|  NCHAR  |  WSTRING  | 
|  NVARCHAR (Länge)  |  WSTRING  | 
|  NVARCHAR (max)  |  NCLOB NTEXT Um diesen Datentyp mit zu verwenden AWS DMS, müssen Sie die Verwendung von SupportLobs für eine bestimmte Aufgabe aktivieren. Weitere Informationen zum Aktivieren von Lob-Unterstützung finden Sie unter [Einstellung der LOB-Unterstützung für Quelldatenbanken in einer Aufgabe AWS DMS](CHAP_Tasks.LOBSupport.md).  Bei SQL Server-Tabellen werden die LOB-Spalten im Ziel auch für UPDATE-Anweisungen aktualisiert, die den Wert der LOB-Spalte in SQL Server nicht ändern. AWS DMS   AWS DMS Unterstützt während CDC CLOB-Datentypen nur in Tabellen, die einen Primärschlüssel enthalten.  | 
|  BINARY  |  BYTES  | 
|  VARBINARY  |  BYTES  | 
|  VARBINARY (max)  |  BLOB IMAGE Bei SQL Server-Tabellen werden die LOB-Spalten im Ziel auch für UPDATE-Anweisungen aktualisiert, die den Wert der LOB-Spalte in SQL Server nicht ändern. AWS DMS  Um diesen Datentyp mit zu verwenden 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.  | 
|  TIMESTAMP (ZEITSTEMPEL)  |  BYTES  | 
|  UNIQUEIDENTIFIER  |  STRING  | 
|  HIERARCHYID   |  Verwenden Sie HIERARCHYID bei der Replikation von Daten auf einem SQL Server-Zielendpunkt. Verwenden Sie WSTRING (250) bei der Replikation auf allen anderen Zielendpunkten.  | 
|  XML  |  NCLOB  AWS DMS Aktualisiert bei SQL Server-Tabellen die LOB-Spalten im Ziel auch für UPDATE-Anweisungen, die den Wert der LOB-Spalte in SQL Server nicht ändern. 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.  | 
|  GEOMETRY  |  Verwenden Sie GEOMETRY bei der Replikation auf Zielendpunkte, die diesen Datentyp unterstützen. Verwenden Sie CLOB bei der Replikation auf Zielendpunkte, die diesen Datentyp nicht unterstützen.  | 
|  GEOGRAPHY  |  Verwenden Sie GEOGRAPHY bei der Replikation auf Zielendpunkte, die diesen Datentyp unterstützen. Verwenden Sie CLOB bei der Replikation auf Zielendpunkte, die diesen Datentyp nicht unterstützen.  | 

AWS DMS unterstützt keine Tabellen, die Felder mit den folgenden Datentypen enthalten. 
+ CURSOR
+ SQL\$1VARIANT
+ TABLE

**Anmerkung**  
Benutzerdefinierte Datentypen werden abhängig von dem Typ, auf dem sie basieren, unterstützt. Beispielsweise wird ein benutzerdefinierter Datentyp basierend auf DATETIME als Datentyp DATETIME verarbeitet.

# Erfassung von Datenänderungen für die laufende Replikation von SQL Server
<a name="CHAP_Source.SQLServer.CDC"></a>

In diesem Thema wird beschrieben, wie Sie die CDC-Replikation auf einer SQL Server-Quelle einrichten.

**Topics**
+ [Erfassen von Datenänderungen für selbstverwaltete SQL-Server-Quellen (On-Premises oder in Amazon EC2)](#CHAP_Source.SQLServer.CDC.Selfmanaged)
+ [Einrichten der laufenden Replikation auf einer SQL-Server-DB-Instance in der Cloud](#CHAP_Source.SQLServer.Configuration)

## Erfassen von Datenänderungen für selbstverwaltete SQL-Server-Quellen (On-Premises oder in Amazon EC2)
<a name="CHAP_Source.SQLServer.CDC.Selfmanaged"></a>

Damit Änderungen aus einer Quelldatenbank in Microsoft SQL Server erfasst werden, stellen Sie sicher, dass die Datenbank für vollständige Backups konfiguriert ist. Konfigurieren Sie die Datenbank entweder im vollständigen Wiederherstellungsmodus oder im massenprotokollierten Modus.

 AWS DMS Verwendet für eine selbstverwaltete SQL Server-Quelle Folgendes:

**MS-Replication**  
Zum Erfassen von Änderungen für Tabellen mit Primärschlüsseln. Sie können dies automatisch konfigurieren, indem Sie dem AWS DMS Endpunktbenutzer auf der SQL Server-Quellinstanz Sysadmin-Rechte gewähren. Oder Sie können die Schritte in diesem Abschnitt befolgen, um die Quelle vorzubereiten und einen Benutzer zu verwenden, der keine Sysadmin-Rechte für den Endpunkt hat. AWS DMS 

**MS-CDC**  
Zum Erfassen von Änderungen für Tabellen ohne Primärschlüssel. Aktivieren Sie MS-CDC auf Datenbankebene und für alle Tabellen einzeln.

Beim Einrichten einer SQL-Server-Datenbank für die laufende Replikation (CDC) können Sie einen der folgenden Schritte ausführen:
+ Einrichten der fortlaufenden Replikation mit der Sysadmin-Rolle.
+ Einrichten der fortlaufenden Replikation ohne Verwendung der Sysadmin-Rolle.

**Anmerkung**  
Sie können das folgende Skript verwenden, um alle Tabellen ohne Primärschlüssel oder eindeutigen Schlüssel zu finden:  

```
USE [DBname]
SELECT SCHEMA_NAME(schema_id) AS schema_name, name AS table_name
FROM sys.tables
WHERE OBJECTPROPERTY(object_id, 'TableHasPrimaryKey') = 0
        AND  OBJECTPROPERTY(object_id, 'TableHasUniqueCnst') = 0
ORDER BY schema_name, table_name;
```

### Einrichten der laufenden Replikation auf einer selbstverwalteten SQL-Server-Quelle
<a name="CHAP_Source.SQLServer.CDC.MSCDC"></a>

Dieser Abschnitt enthält Informationen zum Einrichten der laufenden Replikation auf einer selbstverwalteten SQL-Server-Quelle mit oder ohne die Sysadmin-Rolle.

**Topics**
+ [Einrichten der laufenden Replikation auf einer selbstverwalteten SQL-Server-Quelle: Verwenden der Sysadmin-Rolle](#CHAP_Source.SQLServer.CDC.MSCDC.Sysadmin)
+ [Einrichten der laufenden Replikation auf einer eigenständigen SQL-Server-Quelle: Ohne Sysadmin-Rolle](#CHAP_SupportScripts.SQLServer.standalone)
+ [Einrichtung einer laufenden Replikation auf einem SQL-Server in einer Availability-Group-Umgebung: Ohne Sysadmin-Rolle](#CHAP_SupportScripts.SQLServer.ag)

#### Einrichten der laufenden Replikation auf einer selbstverwalteten SQL-Server-Quelle: Verwenden der Sysadmin-Rolle
<a name="CHAP_Source.SQLServer.CDC.MSCDC.Sysadmin"></a>

AWS DMS Bei der laufenden Replikation für SQL Server wird die systemeigene SQL Server-Replikation für Tabellen mit Primärschlüsseln und die Change Data Capture (CDC) für Tabellen ohne Primärschlüssel verwendet.

Bevor Sie die laufende Replikation einrichten, informieren Sie sich unter [Voraussetzungen für die Verwendung der laufenden Replikation (CDC) von einer SQL-Server-Quelle aus](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Prerequisites). 

Bei Tabellen mit Primärschlüsseln AWS DMS kann im Allgemeinen die erforderlichen Artefakte auf der Quelle konfiguriert werden. Bei selbstverwalteten SQL-Server-Quell-Instances müssen Sie die SQL-Server-Verteilung jedoch zunächst manuell konfigurieren. Danach können AWS DMS Quellbenutzer mit Sysadmin-Rechten automatisch die Publikation für Tabellen mit Primärschlüsseln erstellen.

Um zu überprüfen, ob die Verteilung bereits konfiguriert wurde, führen Sie den folgenden Befehl aus.

```
sp_get_distributor
```

Ist das Ergebnis für die Spaltenverteilung `NULL`, ist die Verteilung nicht konfiguriert. Sie können die Verteilung anhand des folgenden Verfahrens einrichten.<a name="CHAP_Source.SQLServer.CDC.MSCDC.Setup"></a>

**So richten Sie die Verteilung ein**

1. Stellen Sie mithilfe des Tools SQL Server Management Studio (SSMS) eine Verbindung mit der SQL-Server-Quelldatenbank her.

1. Öffnen Sie das Kontextmenü (rechte Maustaste) für den Ordner **Replikation** und wählen Sie die Option **Verteilung konfigurieren**. Der Assistent zum Konfigurieren der Verteilung wird angezeigt. 

1. Befolgen Sie die Anweisungen im Assistenten, um die Standardwerte einzugeben und die Verteilung zu erstellen.<a name="CHAP_Source.SQLServer.CDC.MSCDC.Setup.CDC"></a>

**So richten Sie CDC ein**

AWS DMS Version 3.4.7 und höher kann MS CDC für Ihre Datenbank und alle Ihre Tabellen automatisch einrichten, wenn Sie kein schreibgeschütztes Replikat verwenden. Setzen Sie das ECA `SetUpMsCdcForTables` auf true, um dieses Feature zu verwenden. Hinweise zu finden Sie unter. ECAs [Endpunkteinstellungen](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.ConnectionAttrib)

Gehen Sie für AWS DMS Versionen vor 3.4.7 oder für ein schreibgeschütztes Replikat als Quelle wie folgt vor:

1. Richten Sie bei Tabellen ohne Primärschlüssel MS-CDC für die Datenbank ein. Verwenden Sie dazu ein Konto, dem die Sysadmin-Rolle zugewiesen ist, und führen Sie den folgenden Befehl aus.

   ```
   use [DBname]
   EXEC sys.sp_cdc_enable_db
   ```

1. Richten Sie anschließend MS-CDC für jede der Quelltabellen ein. Führen Sie die folgende Abfrage für jede Tabelle mit eindeutigen Schlüsseln, aber ohne Primärschlüssel aus, um MS-CDC einzurichten.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @index_name = N'unique_index_name',
   @role_name = NULL,
   @supports_net_changes = 1
   GO
   ```

1. Führen Sie die folgende Abfrage für jede Tabelle ohne Primärschlüssel oder eindeutige Schlüssel aus, um MS-CDC einzurichten.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @role_name = NULL
   GO
   ```

Weitere Informationen zum Einrichten von MS-CDC für bestimmte Tabellen finden Sie in der [ SQL Server-Dokumentation](https://msdn.microsoft.com/en-us/library/cc627369.aspx). 

#### Einrichten der laufenden Replikation auf einer eigenständigen SQL-Server-Quelle: Ohne Sysadmin-Rolle
<a name="CHAP_SupportScripts.SQLServer.standalone"></a>

Dieser Abschnitt beschreibt die Einrichtung der fortlaufenden Replikation für eine eigenständige SQL-Server-Datenbankquelle, für die das Benutzerkonto keine Sysadmin-Berechtigungen benötigt.

**Anmerkung**  
Nachdem Sie die Schritte in diesem Abschnitt ausgeführt haben, hat der DMS-Benutzer, der kein Systemadministrator ist, die Berechtigung, um Folgendes zu tun:  
Lesen der Änderungen aus der Protokolldatei für Online-Transaktionen
Festplattenzugriff zum Lesen von Änderungen aus Transaktionsprotokoll-Backup-Dateien
Hinzufügen oder Ändern der von DMS verwendeten Publikation
Hinzufügen von Artikeln zu der Publikation

1. Richten Sie Microsoft SQL Server für die Replikation ein, wie unter [Erfassung von Datenänderungen für die laufende Replikation von SQL Server](#CHAP_Source.SQLServer.CDC) beschrieben.

1. Aktivieren Sie MS-REPLICATION in der Quelldatenbank. Dies kann entweder manuell oder durch einmaliges Ausführen der Aufgabe als Sysadmin-Benutzer erfolgen.

1. Erstellen Sie das `awsdms`-Schema in der Quelldatenbank mit dem folgenden Skript:

   ```
   use master
   go
   create schema awsdms
   go
   
   
   -- Create the table valued function [awsdms].[split_partition_list] on the Master database, as follows:
   USE [master]
   GO
   
   set ansi_nulls on
   go
   
   set quoted_identifier on
   go
   
   if (object_id('[awsdms].[split_partition_list]','TF')) is not null
   
   drop function [awsdms].[split_partition_list];
   
   go
   
   create function [awsdms].[split_partition_list]
   
   (
   
   @plist varchar(8000), --A delimited list of partitions
   
   @dlm nvarchar(1) --Delimiting character
   
   )
   
   returns @partitionsTable table --Table holding the BIGINT values of the string fragments
   
   (
   
   pid bigint primary key
   
   )   
   
   as
   
   begin
   
   declare @partition_id bigint;
   
   declare @dlm_pos integer;
   
   declare @dlm_len integer;
   
   set @dlm_len = len(@dlm);
   
   while (charindex(@dlm,@plist)>0)
   
   begin
   
   set @dlm_pos = charindex(@dlm,@plist);
   
   set @partition_id = cast( ltrim(rtrim(substring(@plist,1,@dlm_pos-1))) as bigint);
   
   insert into @partitionsTable (pid) values (@partition_id)
   
   set @plist = substring(@plist,@dlm_pos+@dlm_len,len(@plist));
   
   end
   
   set @partition_id = cast (ltrim(rtrim(@plist)) as bigint);
   
   insert into @partitionsTable (pid) values ( @partition_id );
   
   return
   
   end
   
   GO
   ```

1. Erstellen Sie die `[awsdms].[rtm_dump_dblog]`-Prozedur in der Master-Datenbank mit dem folgenden Skript:

   ```
   use [MASTER]
   
   go
   
   if (object_id('[awsdms].[rtm_dump_dblog]','P')) is not null drop procedure [awsdms].[rtm_dump_dblog];
   go
   
   
   set ansi_nulls on
   go
   
   set quoted_identifier on
   GO
   
   
   
   CREATE procedure [awsdms].[rtm_dump_dblog]
   
   (
   
   @start_lsn varchar(32),
   
   @seqno integer,
   
   @filename varchar(260),
   
   @partition_list varchar(8000), -- A comma delimited list: P1,P2,... Pn
   
   @programmed_filtering integer,
   
   @minPartition bigint,
   
   @maxPartition bigint
   
   )
   
   as begin
   
   declare @start_lsn_cmp varchar(32); -- Stands against the GT comparator
   
   SET NOCOUNT ON -- – Disable "rows affected display"
   
   set @start_lsn_cmp = @start_lsn;
   
   if (@start_lsn_cmp) is null
   
   set @start_lsn_cmp = '00000000:00000000:0000';
   
   if (@partition_list is null)
   
   begin
   
   RAISERROR ('Null partition list waspassed',16,1);
   
   return
   
   end
   
   if (@start_lsn) is not null
   
   set @start_lsn = '0x'+@start_lsn;
   
   if (@programmed_filtering=0)
   
   
   
   SELECT
   
   [Current LSN],
   
   [operation],
   
   [Context],
   
   [Transaction ID],
   
   [Transaction Name],
   
   [Begin Time],
   
   [End Time],
   
   [Flag Bits],
   
   [PartitionID],
   
   [Page ID],
   
   [Slot ID],
   
   [RowLog Contents 0],
   
   [Log Record],
   
   [RowLog Contents 1]
   
   FROM
   
   fn_dump_dblog (
   
   @start_lsn, NULL, N'DISK', @seqno, @filename,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default)
   
   where [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS
   
   and
   
   (
   
   ( [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
   
   or
   
   ( [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
   
   and
   
   ( ( [context] in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX' and (datalength([RowLog Contents 0]) in (0,1))))
   
   and [PartitionID] in ( select * from master.awsdms.split_partition_list (@partition_list,','))
   
   )
   
   or
   
   ([operation] = 'LOP_HOBT_DDL')
   
   )
   
   
   else
   
   
   SELECT
   
   [Current LSN],
   
   [operation],
   
   [Context],
   
   [Transaction ID],
   
   [Transaction Name],
   
   [Begin Time],
   
   [End Time],
   
   [Flag Bits],
   
   [PartitionID],
   
   [Page ID],
   
   [Slot ID],
   
   [RowLog Contents 0],
   
   [Log Record],
   
   [RowLog Contents 1] -- After Image
   
   FROM
   
   fn_dump_dblog (
   
   @start_lsn, NULL, N'DISK', @seqno, @filename,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default,
   
   default, default, default, default, default, default, default)
   
   where [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS
   
   and
   
   (
   
   ( [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
   
   or
   
   ( [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
   
   and
   
   ( ( [context] in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX' and (datalength([RowLog Contents 0]) in (0,1))))
   
   and ([PartitionID] is not null) and ([PartitionID] >= @minPartition and [PartitionID]<=@maxPartition)
   
   )
   
   or
   
   ([operation] = 'LOP_HOBT_DDL')
   
   )
   
   
   
   SET NOCOUNT OFF -- Re-enable "rows affected display"
   
   end
   
   GO
   ```

1. Erstellen Sie das Zertifikat in der Master-Datenbank mit dem folgenden Skript:

   ```
   Use [master]
   Go
   
   CREATE CERTIFICATE [awsdms_rtm_dump_dblog_cert] ENCRYPTION BY PASSWORD = N'@5trongpassword'
   
   WITH SUBJECT = N'Certificate for FN_DUMP_DBLOG Permissions';
   ```

1. Erstellen Sie die Anmeldung von dem Zertifikat mit dem folgenden Skript: 

   ```
   Use [master]
   Go
   
   CREATE LOGIN awsdms_rtm_dump_dblog_login FROM CERTIFICATE [awsdms_rtm_dump_dblog_cert];
   ```

1. Fügen Sie die Anmeldung mithilfe des folgenden Skripts zur Sysadmin-Serverrolle hinzu:

   ```
   ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_dump_dblog_login];
   ```

1. Fügen Sie die Signatur zu [Master]. [awsdms]. [rtm\$1dump\$1dblog] unter Verwendung des Zertifikats mit dem folgenden Skript hinzu: 

   ```
   Use [master]
   GO
   ADD SIGNATURE
   TO [master].[awsdms].[rtm_dump_dblog] BY CERTIFICATE [awsdms_rtm_dump_dblog_cert] WITH PASSWORD = '@5trongpassword';
   ```
**Anmerkung**  
Wenn Sie die gespeicherte Prozedur neu erstellen, müssen Sie die Signatur erneut hinzufügen.

1. Erstellen Sie [awsdms].[rtm\$1position\$11st\$1timestamp] in der Master-Datenbank mithilfe des folgenden Skripts:

   ```
   use [master]
       if object_id('[awsdms].[rtm_position_1st_timestamp]','P') is not null
       DROP PROCEDURE [awsdms].[rtm_position_1st_timestamp];
       go
       create procedure [awsdms].[rtm_position_1st_timestamp]
       (
       @dbname                sysname,      -- Database name
       @seqno                 integer,      -- Backup set sequence/position number within file
       @filename              varchar(260), -- The backup filename
       @1stTimeStamp          varchar(40)   -- The timestamp to position by
       ) 
       as begin
   
       SET NOCOUNT ON       -- Disable "rows affected display"
   
       declare @firstMatching table
       (
       cLsn varchar(32),
       bTim datetime
       )
   
       declare @sql nvarchar(4000)
       declare @nl                       char(2)
       declare @tb                       char(2)
       declare @fnameVar                 nvarchar(254) = 'NULL'
   
       set @nl  = char(10); -- New line
       set @tb  = char(9)   -- Tab separator
   
       if (@filename is not null)
       set @fnameVar = ''''+@filename +''''
   
       set @sql='use ['+@dbname+'];'+@nl+
       'select top 1 [Current LSN],[Begin Time]'+@nl+
       'FROM fn_dump_dblog (NULL, NULL, NULL, '+ cast(@seqno as varchar(10))+','+ @fnameVar+','+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default,'+@nl+
       @tb+'default, default, default, default, default, default, default)'+@nl+
       'where operation=''LOP_BEGIN_XACT''' +@nl+
       'and [Begin Time]>= cast('+''''+@1stTimeStamp+''''+' as datetime)'+@nl
   
       --print @sql
       delete from  @firstMatching 
       insert into @firstMatching  exec sp_executesql @sql    -- Get them all
   
       select top 1 cLsn as [matching LSN],convert(varchar,bTim,121) as [matching Timestamp] from @firstMatching;
   
       SET NOCOUNT OFF      -- Re-enable "rows affected display"
   
       end
       GO
   ```

1. Erstellen Sie das Zertifikat in der Master-Datenbank mit dem folgenden Skript:

   ```
   Use [master]
   Go
   CREATE CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
   ENCRYPTION BY PASSWORD = '@5trongpassword'
   WITH SUBJECT = N'Certificate for FN_POSITION_1st_TIMESTAMP Permissions';
   ```

1. Erstellen Sie die Anmeldung von dem Zertifikat mit dem folgenden Skript:

   ```
   Use [master]
   Go
   CREATE LOGIN awsdms_rtm_position_1st_timestamp_login FROM CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert];
   ```

1. Fügen Sie die Anmeldedaten mithilfe des folgenden Skripts zur sysadmin-Rolle hinzu:

   ```
   ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_position_1st_timestamp_login];
   ```

1. Fügen Sie die Signatur zu [master].[awsdms].[rtm\$1position\$11st\$1timestamp] unter Verwendung des Zertifikats mit dem folgenden Skript hinzu:

   ```
   Use [master]
       GO
       ADD SIGNATURE
       TO [master].[awsdms].[rtm_position_1st_timestamp]
       BY CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
       WITH PASSWORD = '@5trongpassword';
   ```

1. Gewähren Sie dem DMS-Benutzer mithilfe des folgenden Skripts Ausführungszugriff auf die neue gespeicherte Prozedur:

   ```
   use master
   go
   GRANT execute on [awsdms].[rtm_position_1st_timestamp] to dms_user;
   ```

1. Erstellen Sie in jeder der folgenden Datenbanken einen Benutzer mit den folgenden Berechtigungen und Rollen:
**Anmerkung**  
Sie sollten das Benutzerkonto dmsnosysadmin mit derselben SID für jedes Replikat erstellen. Die folgende SQL-Abfrage kann dabei helfen, den SID-Wert des dmsnosysadmin-Kontos auf jedem Replikat zu überprüfen. Weitere Informationen zum Erstellen eines Benutzers finden Sie unter [BENUTZER ERSTELLEN (Transact-SQL)](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-user-transact-sql) in der [Microsoft-SQL-Server-Dokumentation](https://learn.microsoft.com/en-us/sql/). Weitere Informationen zum Erstellen von SQL-Benutzerkonten für die Azure-SQL-Datenbank finden Sie unter [Aktive Georeplikation](https://learn.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview).

   ```
   use master
   go
   grant select on sys.fn_dblog to [DMS_user]
   grant view any definition to [DMS_user]
   grant view server state to [DMS_user]--(should be granted to the login).
   grant execute on sp_repldone to [DMS_user]
   grant execute on sp_replincrementlsn to [DMS_user]
   grant execute on sp_addpublication to [DMS_user]
   grant execute on sp_addarticle to [DMS_user]
   grant execute on sp_articlefilter to [DMS_user]
   grant select on [awsdms].[split_partition_list] to [DMS_user]
   grant execute on [awsdms].[rtm_dump_dblog] to [DMS_user]
   ```

   ```
   use msdb
   go
   grant select on msdb.dbo.backupset to self_managed_user
   grant select on msdb.dbo.backupmediafamily to self_managed_user
   grant select on msdb.dbo.backupfile to self_managed_user
   ```

   Führen Sie den folgenden Befehl für die Quelldatenbank aus:

   ```
   use Source_DB
       Go
       EXEC sp_addrolemember N'db_owner', N'DMS_user'
   ```

1. Fügen Sie abschließend dem SQL-Server-Endpunkt ein zusätzliches Verbindungsattribut (ECA) hinzu:

   ```
   enableNonSysadminWrapper=true;
   ```

#### Einrichtung einer laufenden Replikation auf einem SQL-Server in einer Availability-Group-Umgebung: Ohne Sysadmin-Rolle
<a name="CHAP_SupportScripts.SQLServer.ag"></a>

Dieser Abschnitt beschreibt die Einrichtung der fortlaufenden Replikation für eine eigenständige SQL-Server-Datenbankquelle, für die das Benutzerkonto keine sysadmin-Berechtigungen benötigt.

**Anmerkung**  
Nachdem Sie die Schritte in diesem Abschnitt ausgeführt haben, hat der DMS-Benutzer, der kein Systemadministrator ist, die Berechtigung, um Folgendes zu tun:  
Lesen der Änderungen aus der Protokolldatei für Online-Transaktionen
Festplattenzugriff zum Lesen von Änderungen aus Transaktionsprotokoll-Backup-Dateien
Hinzufügen oder Ändern der von DMS verwendeten Publikation
Hinzufügen von Artikeln zu der Publikation

**So richten Sie die fortlaufende Replikation in einer Availability-Group-Umgebung ein, ohne den Sysadmin-Benutzer zu verwenden**

1. Richten Sie Microsoft SQL Server für die Replikation ein, wie unter [Erfassung von Datenänderungen für die laufende Replikation von SQL Server](#CHAP_Source.SQLServer.CDC) beschrieben.

1. Aktivieren Sie MS-REPLICATION in der Quelldatenbank. Dies kann entweder manuell oder durch einmaliges Ausführen der Aufgabe als Sysadmin-Benutzer erfolgen.
**Anmerkung**  
Sie sollten den MS-REPLICATION-Verteiler entweder lokal oder so konfigurieren, dass Benutzer, die keine Systemadministratoren sind, über den zugehörigen Verbindungsserver darauf zugreifen können.

1. Wenn die Option **Nur sp\$1repldone innerhalb eines einzelnen Aufgaben-Endpunkts verwenden** aktiviert ist, beenden Sie den MS-REPLICATION-Protokollleseauftrag.

1. Führen Sie auf jedem Replikat die folgenden Schritte aus:

   1. Erstellen Sie das `[awsdms]`[awsdms]-Schema in der Master-Datenbank:

      ```
      CREATE SCHEMA [awsdms]
      ```

   1. Erstellen Sie die `[awsdms].[split_partition_list]`-Tabellenwertfunktion in der Master-Datenbank:

      ```
      USE [master]
      GO
      
      SET ansi_nulls on
      GO
        
      SET quoted_identifier on
      GO
      
      IF (object_id('[awsdms].[split_partition_list]','TF')) is not null
        DROP FUNCTION [awsdms].[split_partition_list];
      GO
      
      CREATE FUNCTION [awsdms].[split_partition_list] 
      ( 
        @plist varchar(8000),    --A delimited list of partitions    
        @dlm nvarchar(1)    --Delimiting character
      ) 
      RETURNS @partitionsTable table --Table holding the BIGINT values of the string fragments
      (
        pid bigint primary key
      ) 
      AS 
      BEGIN
        DECLARE @partition_id bigint;
        DECLARE @dlm_pos integer;
        DECLARE @dlm_len integer;  
        SET @dlm_len = len(@dlm);
        WHILE (charindex(@dlm,@plist)>0)
        BEGIN 
          SET @dlm_pos = charindex(@dlm,@plist);
          SET @partition_id = cast( ltrim(rtrim(substring(@plist,1,@dlm_pos-1))) as bigint);
          INSERT into @partitionsTable (pid) values (@partition_id)
          SET @plist = substring(@plist,@dlm_pos+@dlm_len,len(@plist));
        END 
        SET @partition_id = cast (ltrim(rtrim(@plist)) as bigint);
        INSERT into @partitionsTable (pid) values (  @partition_id  );
        RETURN
      END
      GO
      ```

   1. Erstellen Sie die `[awsdms].[rtm_dump_dblog]`-Prozedur in der Master-Datenbank:

      ```
      USE [MASTER] 
      GO
      
      IF (object_id('[awsdms].[rtm_dump_dblog]','P')) is not null
        DROP PROCEDURE [awsdms].[rtm_dump_dblog]; 
      GO
      
      SET ansi_nulls on
      GO 
      
      SET quoted_identifier on 
      GO
                                          
      CREATE PROCEDURE [awsdms].[rtm_dump_dblog]
      (
        @start_lsn            varchar(32),
        @seqno                integer,
        @filename             varchar(260),
        @partition_list       varchar(8000), -- A comma delimited list: P1,P2,... Pn
        @programmed_filtering integer,
        @minPartition         bigint,
        @maxPartition         bigint
      ) 
      AS 
      BEGIN
      
        DECLARE @start_lsn_cmp varchar(32); -- Stands against the GT comparator
      
        SET NOCOUNT ON  -- Disable "rows affected display"
      
        SET @start_lsn_cmp = @start_lsn;
        IF (@start_lsn_cmp) is null
          SET @start_lsn_cmp = '00000000:00000000:0000';
      
        IF (@partition_list is null)
          BEGIN
            RAISERROR ('Null partition list was passed',16,1);
            return
            --set @partition_list = '0,';    -- A dummy which is never matched
          END
      
        IF (@start_lsn) is not null
          SET @start_lsn = '0x'+@start_lsn;
      
        IF (@programmed_filtering=0)
          SELECT
            [Current LSN],
            [operation],
            [Context],
            [Transaction ID],
            [Transaction Name],
            [Begin Time],
            [End Time],
            [Flag Bits],
            [PartitionID],
            [Page ID],
            [Slot ID],
            [RowLog Contents 0],
            [Log Record],
            [RowLog Contents 1] -- After Image
          FROM
            fn_dump_dblog (
              @start_lsn, NULL, N'DISK', @seqno, @filename,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default,
              default, default, default, default, default, default, default)
          WHERE 
            [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS -- This aims for implementing FN_DBLOG based on GT comparator.
            AND
            (
              (  [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
              OR
              (  [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
                AND
                ( ( [context]   in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX') )
                AND       
                [PartitionID] in ( select * from master.awsdms.split_partition_list (@partition_list,','))
              )
            OR
            ([operation] = 'LOP_HOBT_DDL')
          )
          ELSE
            SELECT
              [Current LSN],
              [operation],
              [Context],
              [Transaction ID],
              [Transaction Name],
              [Begin Time],
              [End Time],
              [Flag Bits],
              [PartitionID],
              [Page ID],
              [Slot ID],
              [RowLog Contents 0],
              [Log Record],
              [RowLog Contents 1] -- After Image
            FROM
              fn_dump_dblog (
                @start_lsn, NULL, N'DISK', @seqno, @filename,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default,
                default, default, default, default, default, default, default)
            WHERE [Current LSN] collate SQL_Latin1_General_CP1_CI_AS > @start_lsn_cmp collate SQL_Latin1_General_CP1_CI_AS -- This aims for implementing FN_DBLOG based on GT comparator.
            AND
            (
              (  [operation] in ('LOP_BEGIN_XACT','LOP_COMMIT_XACT','LOP_ABORT_XACT') )
              OR
              (  [operation] in ('LOP_INSERT_ROWS','LOP_DELETE_ROWS','LOP_MODIFY_ROW')
                AND
                ( ( [context]   in ('LCX_HEAP','LCX_CLUSTERED','LCX_MARK_AS_GHOST') ) or ([context] = 'LCX_TEXT_MIX') )
                AND ([PartitionID] is not null) and ([PartitionID] >= @minPartition and [PartitionID]<=@maxPartition)
              )
              OR
              ([operation] = 'LOP_HOBT_DDL')
            )
            SET NOCOUNT OFF -- Re-enable "rows affected display"
      END
      GO
      ```

   1. Erstellen Sie ein Zertifikat in der Master-Datenbank:

      ```
      USE [master]
      GO
      CREATE CERTIFICATE [awsdms_rtm_dump_dblog_cert]
        ENCRYPTION BY PASSWORD = N'@hardpassword1'
        WITH SUBJECT = N'Certificate for FN_DUMP_DBLOG Permissions'
      ```

   1. Erstellen Sie eine Anmeldung aus dem Zertifikat:

      ```
      USE [master]
      GO
      CREATE LOGIN awsdms_rtm_dump_dblog_login FROM CERTIFICATE
        [awsdms_rtm_dump_dblog_cert];
      ```

   1. Fügen Sie den Anmeldenamen zur Sysadmin-Serverrolle hinzu:

      ```
      ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_dump_dblog_login];
      ```

   1. Fügen Sie die Signatur zur Prozedur [master].[awsdms].[rtm\$1dump\$1dblog] unter Verwendung des Zertifikats hinzu:

      ```
      USE [master]
      GO
      
      ADD SIGNATURE
        TO [master].[awsdms].[rtm_dump_dblog]
        BY CERTIFICATE [awsdms_rtm_dump_dblog_cert]
        WITH PASSWORD = '@hardpassword1';
      ```
**Anmerkung**  
Wenn Sie die gespeicherte Prozedur neu erstellen, müssen Sie die Signatur erneut hinzufügen.

   1. Erstellen Sie die `[awsdms].[rtm_position_1st_timestamp]`-Prozedur in der Master-Datenbank:

      ```
      USE [master]
      IF object_id('[awsdms].[rtm_position_1st_timestamp]','P') is not null
        DROP PROCEDURE [awsdms].[rtm_position_1st_timestamp];
      GO
      CREATE PROCEDURE [awsdms].[rtm_position_1st_timestamp]
      (
        @dbname                sysname,      -- Database name
        @seqno                 integer,      -- Backup set sequence/position number within file
        @filename              varchar(260), -- The backup filename
        @1stTimeStamp          varchar(40)   -- The timestamp to position by
      ) 
      AS 
      BEGIN
        SET NOCOUNT ON       -- Disable "rows affected display"
      
        DECLARE @firstMatching table
        (
          cLsn varchar(32),
          bTim datetime
        )
        DECLARE @sql nvarchar(4000)
        DECLARE @nl                       char(2)
        DECLARE @tb                       char(2)
        DECLARE @fnameVar                 sysname = 'NULL'
      
        SET @nl  = char(10); -- New line
        SET @tb  = char(9)   -- Tab separator
      
        IF (@filename is not null)
          SET @fnameVar = ''''+@filename +''''
        SET @filename = ''''+@filename +''''
        SET @sql='use ['+@dbname+'];'+@nl+
          'SELECT TOP 1 [Current LSN],[Begin Time]'+@nl+
          'FROM fn_dump_dblog (NULL, NULL, NULL, '+ cast(@seqno as varchar(10))+','+ @filename +','+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default,'+@nl+
          @tb+'default, default, default, default, default, default, default)'+@nl+
          'WHERE operation=''LOP_BEGIN_XACT''' +@nl+
          'AND [Begin Time]>= cast('+''''+@1stTimeStamp+''''+' as datetime)'+@nl
      
          --print @sql
          DELETE FROM @firstMatching 
          INSERT INTO @firstMatching  exec sp_executesql @sql    -- Get them all
          SELECT TOP 1 cLsn as [matching LSN],convert(varchar,bTim,121) AS[matching Timestamp] FROM @firstMatching;
      
          SET NOCOUNT OFF      -- Re-enable "rows affected display"
      
      END
      GO
      ```

   1. Erstellen Sie ein Zertifikat in der Master-Datenbank:

      ```
      USE [master]
      GO
      CREATE CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
        ENCRYPTION BY PASSWORD = N'@hardpassword1'
        WITH SUBJECT = N'Certificate for FN_POSITION_1st_TIMESTAMP Permissions';
      ```

   1. Erstellen Sie eine Anmeldung aus dem Zertifikat:

      ```
      USE [master]
      GO
      CREATE LOGIN awsdms_rtm_position_1st_timestamp_login FROM CERTIFICATE
        [awsdms_rtm_position_1st_timestamp_cert];
      ```

   1. Fügen Sie den Anmeldenamen zur Sysadmin-Serverrolle hinzu:

      ```
      ALTER SERVER ROLE [sysadmin] ADD MEMBER [awsdms_rtm_position_1st_timestamp_login];
      ```

   1. Fügen Sie der `[master].[awsdms].[rtm_position_1st_timestamp]`-Prozedur mithilfe des Zertifikats die Signatur hinzu:

      ```
      USE [master]
      GO
      ADD SIGNATURE
        TO [master].[awsdms].[rtm_position_1st_timestamp]
        BY CERTIFICATE [awsdms_rtm_position_1st_timestamp_cert]
        WITH PASSWORD = '@hardpassword1';
      ```
**Anmerkung**  
Wenn Sie die gespeicherte Prozedur neu erstellen, müssen Sie die Signatur erneut hinzufügen.

   1. Erstellen Sie permissions/roles in jeder der folgenden Datenbanken einen Benutzer mit den folgenden Angaben:
**Anmerkung**  
Sie sollten das Benutzerkonto dmsnosysadmin mit derselben SID für jedes Replikat erstellen. Die folgende SQL-Abfrage kann dabei helfen, den SID-Wert des dmsnosysadmin-Kontos auf jedem Replikat zu überprüfen. Weitere Informationen zum Erstellen eines Benutzers finden Sie unter [BENUTZER ERSTELLEN (Transact-SQL)](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-user-transact-sql) in der [Microsoft-SQL-Server-Dokumentation](https://learn.microsoft.com/en-us/sql/). Weitere Informationen zum Erstellen von SQL-Benutzerkonten für die Azure-SQL-Datenbank finden Sie unter [Aktive Georeplikation](https://learn.microsoft.com/en-us/azure/azure-sql/database/active-geo-replication-overview).

      ```
      SELECT @@servername servername, name, sid, create_date, modify_date
        FROM sys.server_principals
        WHERE name = 'dmsnosysadmin';
      ```

   1. Erteilen Sie für jedes Replikat Berechtigungen für die Master-Datenbank:

      ```
      USE master
      GO 
      
      GRANT select on sys.fn_dblog to dmsnosysadmin;
      GRANT view any definition to dmsnosysadmin;
      GRANT view server state to dmsnosysadmin -- (should be granted to the login).
      GRANT execute on sp_repldone to dmsnosysadmin;
      GRANT execute on sp_replincrementlsn to dmsnosysadmin;
      GRANT execute on sp_addpublication to dmsnosysadmin;
      GRANT execute on sp_addarticle to dmsnosysadmin;
      GRANT execute on sp_articlefilter to dmsnosysadmin;
      GRANT select on [awsdms].[split_partition_list] to dmsnosysadmin;
      GRANT execute on [awsdms].[rtm_dump_dblog] to dmsnosysadmin;
      GRANT execute on [awsdms].[rtm_position_1st_timestamp] to dmsnosysadmin;
      ```

   1. Erteilen Sie für jedes Replikat Berechtigungen für die msdb-Datenbank:

      ```
      USE msdb
      GO
      GRANT select on msdb.dbo.backupset TO self_managed_user
      GRANT select on msdb.dbo.backupmediafamily TO self_managed_user
      GRANT select on msdb.dbo.backupfile TO self_managed_user
      ```

   1. Fügen Sie die `db_owner`-Rolle zu `dmsnosysadmin` in der Quelldatenbank hinzu. Da die Datenbank synchronisiert ist, können Sie die Rolle nur dem primären Replikat hinzufügen.

      ```
      use <source DB>
      GO 
      EXEC sp_addrolemember N'db_owner', N'dmsnosysadmin'
      ```

## Einrichten der laufenden Replikation auf einer SQL-Server-DB-Instance in der Cloud
<a name="CHAP_Source.SQLServer.Configuration"></a>

In diesem Abschnitt wird die Einrichtung von CDC für eine in der Cloud gehostete SQL-Server-Datenbank-Instance beschrieben. Eine in der Cloud gehostete SQL-Server-Instance ist eine Instance, die in Amazon RDS für SQL Server, einer von Azure SQL verwalteten Instance oder einer anderen verwalteten Cloud-SQL-Server-Instance ausgeführt wird. Informationen zu den Einschränkungen der laufenden Replikation für jeden Datenbanktyp finden Sie unter [Einschränkungen bei der Verwendung von SQL Server als Quelle für AWS DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations). 

Bevor Sie die laufende Replikation einrichten, informieren Sie sich unter [Voraussetzungen für die Verwendung der laufenden Replikation (CDC) von einer SQL-Server-Quelle aus](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Prerequisites). 

Im Gegensatz zu selbstverwalteten Microsoft-SQL-Server-Quellen unterstützt Amazon RDS für SQL Server MS-Replication nicht. Daher AWS DMS muss MS-CDC für Tabellen mit oder ohne Primärschlüssel verwendet werden.

Amazon RDS gewährt keine Sysadmin-Rechte für die Einrichtung von Replikationsartefakten, die für laufende Änderungen in einer SQL Server-Quellinstanz AWS DMS verwendet werden. Aktivieren Sie MS-CDC für die Amazon-RDS-Instance (unter Verwendung von Hauptbenutzer-Berechtigungen) wie im folgenden Verfahren gezeigt.

**So aktivieren Sie MS-CDC für eine SQL-Server-DB-Instance in der Cloud**

1. Führen Sie eine der folgenden Abfragen auf Datenbankebene aus.

   Verwenden Sie diese Abfrage für eine DB-Instance von RDS für SQL Server.

   ```
   exec msdb.dbo.rds_cdc_enable_db 'DB_name'
   ```

   Verwenden Sie diese Abfrage für eine von Azure SQL verwaltete DB-Instance.

   ```
   USE DB_name 
   GO 
   EXEC sys.sp_cdc_enable_db 
   GO
   ```

1. Führen Sie die folgende Abfrage für jede Tabelle mit einem Primärschlüssel aus, um MS-CDC zu aktivieren.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @role_name = NULL,
   @supports_net_changes = 1
   GO
   ```

   Führen Sie die folgende Abfrage für jede Tabelle mit eindeutigen Schlüsseln, aber ohne Primärschlüssel aus, um MS-CDC zu aktivieren.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @index_name = N'unique_index_name',
   @role_name = NULL,
   @supports_net_changes = 1
   GO
   ```

    Führen Sie die folgende Abfrage für jede Tabelle ohne Primärschlüssel oder eindeutige Schlüssel aus, um MS-CDC zu aktivieren.

   ```
   exec sys.sp_cdc_enable_table
   @source_schema = N'schema_name',
   @source_name = N'table_name',
   @role_name = NULL
   GO
   ```

1. Legen Sie den Aufbewahrungszeitraum fest:
   + Stellen Sie bei RDS for SQL Server-Instanzen, die mit DMS-Version 3.5.3 und höher replizieren, sicher, dass der Aufbewahrungszeitraum auf den Standardwert von 5 Sekunden festgelegt ist. Wenn Sie ein Upgrade durchführen oder von DMS 3.5.2 und niedriger auf DMS 3.5.3 und höher wechseln, ändern Sie den Wert für das Abfrageintervall, nachdem die Aufgaben auf der neuen oder aktualisierten Instanz ausgeführt wurden. Das folgende Skript legt die Aufbewahrungsdauer auf 5 Sekunden fest:

     ```
     use dbname
     EXEC sys.sp_cdc_change_job @job_type = 'capture' ,@pollinginterval = 5
     exec sp_cdc_stop_job 'capture'
     exec sp_cdc_start_job 'capture'
     ```
   + Der Parameter `@pollinginterval` wird in Sekunden gemessen, wobei der empfohlene Wert auf 86 399 festgelegt ist. Dies bedeutet, dass das Transaktionsprotokoll Änderungen 86 399 Sekunden (einen Tag) lang speichert, wenn `@pollinginterval = 86399`. Die Prozedur `exec sp_cdc_start_job 'capture'` initiiert die Einstellungen.
**Anmerkung**  
Bei einigen Versionen von SQL Server wird der Wert von `pollinginterval` auf den Standardwert von fünf Sekunden zurückgesetzt, wenn er auf mehr als 3 599 Sekunden festgelegt wurde. In diesem Fall werden T-Log-Einträge gelöscht, bevor sie gelesen werden AWS DMS können. Informationen dazu, welche SQL-Server-Versionen von diesem bekannten Problem betroffen sind, finden Sie in [diesem Microsoft-KB-Artikel](https://support.microsoft.com/en-us/topic/kb4459220-fix-incorrect-results-occur-when-you-convert-pollinginterval-parameter-from-seconds-to-hours-in-sys-sp-cdc-scan-in-sql-server-dac8aefe-b60b-7745-f987-582dda2cfa78).

     Wenn Sie Amazon RDS mit Multi-AZ verwenden, stellen Sie sicher, dass Sie auch Ihre sekundäre Availability Zone so einstellen, dass sie im Falle eines Failovers die richtigen Werte hat.

     ```
     exec rdsadmin..rds_set_configuration 'cdc_capture_pollinginterval' , <5 or preferred value>
     ```

**Um die Aufbewahrungsfrist beizubehalten, wenn eine AWS DMS Replikationsaufgabe für mehr als eine Stunde angehalten wird**
**Anmerkung**  
Die folgenden Schritte sind für eine RDS for SQL Server-Quellreplikation mit DMS 3.5.3 und höher nicht erforderlich.

1. Halten Sie den Auftrag, der die Transaktionsprotokolle kürzt, mit dem folgenden Befehl an. 

   ```
   exec sp_cdc_stop_job 'capture'
   ```

1. Suchen Sie Ihre Aufgabe auf der AWS DMS Konsole und setzen Sie sie fort.

1. Wählen Sie die Registerkarte **Überwachung** und überprüfen Sie die Metrik `CDCLatencySource`. 

1. Wenn die Metrik `CDCLatencySource` gleich 0 (Null) ist und diesen Wert beibehält, starten Sie den Auftrag, der die Transaktionsprotokolle kürzt, mit dem folgenden Befehl neu.

   ```
   exec sp_cdc_start_job 'capture'
   ```

Denken Sie daran, den Auftrag zu starten, der die SQL-Server-Transaktionsprotokolle kürzt. Andernfalls könnte der Speicher auf Ihrer SQL-Server-Instance voll werden.

### Empfohlene Einstellungen bei der Verwendung von RDS für SQL Server als Quelle für AWS DMS
<a name="CHAP_Source.SQLServer.Configuration.Settings"></a>

#### Für AWS DMS 3.5.3 und höher
<a name="CHAP_Source.SQLServer.Configuration.Settings.353"></a>

**Anmerkung**  
Die erste Version der Protokollsicherungsfunktion von RDS für SQL Server ist standardmäßig für Endpoints aktiviert, die Sie nach der Veröffentlichung von DMS-Version 3.5.3 erstellt oder geändert haben. Um diese Funktion für bestehende Endpunkte zu verwenden, ändern Sie den Endpunkt, ohne Änderungen vorzunehmen.

AWS DMS Version 3.5.3 bietet Unterstützung für das Lesen aus Protokollsicherungen. DMS stützt sich hauptsächlich auf das Lesen aus den aktiven Transaktionsprotokollen, um Ereignisse zu replizieren. Wenn eine Transaktion gesichert wird, bevor DMS sie aus dem aktiven Protokoll lesen kann, greift die Task bei Bedarf auf die RDS-Backups zu und liest aus den nachfolgenden Backup-Logs, bis sie das aktive Transaktionslog erreicht. Um sicherzustellen, dass DMS Zugriff auf Protokollsicherungen hat, legen Sie die Aufbewahrungsfrist für automatisierte RDS-Backups auf mindestens einen Tag fest. Informationen zur Einstellung der Aufbewahrungsdauer für automatische [Backup finden Sie unter Aufbewahrungszeitraum](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ManagingAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupRetention) für Backups im *Amazon RDS-Benutzerhandbuch*.

Eine DMS-Aufgabe, die auf Protokollsicherungen zugreift, nutzt Speicherplatz auf der RDS-Instance. Beachten Sie, dass die Aufgabe nur auf die für die Replikation benötigten Protokollsicherungen zugreift. Amazon RDS entfernt diese heruntergeladenen Backups innerhalb weniger Stunden. Diese Entfernung hat keine Auswirkungen auf die in Amazon S3 gespeicherten Amazon RDS-Backups oder die Amazon `RESTORE DATABASE` RDS-Funktionalität. Es ist ratsam, zusätzlichen Speicherplatz auf Ihrer RDS-Quelle für SQL Server zuzuweisen, wenn Sie beabsichtigen, mithilfe von DMS zu replizieren. Eine Möglichkeit, den Speicherbedarf abzuschätzen, besteht darin, das Backup zu ermitteln, von dem aus DMS die Replikation beginnen oder fortsetzen wird, und die Dateigrößen aller nachfolgenden Backups mithilfe der RDS-Metadatenfunktion zu addieren. `tlog backup` Weitere Informationen zu dieser `tlog backup` Funktion finden Sie unter [Verfügbare Transaktionsprotokoll-Backups auflisten](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER.SQLServer.AddlFeat.TransactionLogAccess.html#USER.SQLServer.AddlFeat.TransactionLogAccess.Listing) im *Amazon RDS-Benutzerhandbuch*. 

Alternativ können Sie die automatische Speicherskalierung aktivieren und/oder die Speicherskalierung basierend auf der CloudWatch `FreeStorageSpace` Metrik für Ihre Amazon RDS-Instance auslösen.

Wir empfehlen dringend, nicht an einem Punkt zu weit hinten in den Transaktionsprotokoll-Backups zu beginnen oder fortzufahren, da dies dazu führen könnte, dass der Speicherplatz auf Ihrer SQL Server-Instance voll wird. In solchen Fällen ist es ratsam, einen Vollladevorgang zu starten. Das Replizieren aus dem Transaktionslog-Backup ist langsamer als das Lesen aus den aktiven Transaktionslogs. Weitere Informationen finden Sie unter [Verarbeitung von Transaktionsprotokoll-Backups für RDS für SQL Server](CHAP_Troubleshooting_Latency_Source_SQLServer.md#CHAP_Troubleshooting_Latency_Source_SQLServer_backup).

Beachten Sie, dass für den Zugriff auf die Protokollsicherungen zusätzliche Rechte erforderlich sind. Weitere Informationen finden Sie unter [Richten Sie Berechtigungen für die laufende Replikation aus einer Cloud-SQL Server-Datenbank ein](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Permissions.Cloud) Stellen Sie sicher, dass Sie diese Rechte gewähren, bevor die Aufgabe mit der Replikation beginnt.

#### Für AWS DMS 3.5.2 und niedriger
<a name="CHAP_Source.SQLServer.Configuration.Settings.352"></a>

Wenn Sie mit Amazon RDS for SQL Server als Quelle arbeiten, stützt sich der MS-CDC-Erfassungsauftrag auf die Parameter `maxscans` und. `maxtrans` Diese Parameter bestimmen die maximale Anzahl von Scans, die die MS-CDC-Erfassung im Transaktionsprotokoll durchführt, und die Anzahl der Transaktionen, die für jeden Scan verarbeitet werden.

Bei Datenbanken, bei denen die Anzahl der Transaktionen größer als `maxtrans*maxscans` ist, kann eine Erhöhung des Werts `polling_interval` zu einer Anhäufung von aktiven Transaktionsprotokoll-Datensätzen führen. Diese Anhäufung kann wiederum zu einer Vergrößerung des Transaktionsprotokolls führen.

Beachten Sie, dass AWS DMS dies nicht auf den MS-CDC-Erfassungsauftrag angewiesen ist. Der MS-CDC-Erfassungsauftrag kennzeichnet die Transaktionsprotokolleinträge als verarbeitet. Dadurch kann der Backup-Auftrag für das Transaktionsprotokoll die Einträge aus dem Transaktionsprotokoll entfernen.

Es wird empfohlen, die Größe des Transaktionsprotokolls und den Erfolg der MS-CDC-Auftrags zu überwachen. Wenn die MS-CDC-Jobs fehlschlagen, kann das Transaktionsprotokoll übermäßig anwachsen und zu Replikationsfehlern führen. AWS DMS Sie können Fehler bei MS-CDC-Erfassungsaufträgen mithilfe der dynamischen Verwaltungsansicht `sys.dm_cdc_errors` in der Quelldatenbank überwachen. Sie können die Größe des Transaktionsprotokolls mithilfe des Verwaltungsbefehls `DBCC SQLPERF(LOGSPACE)` überwachen.

**So beheben Sie die von MS-CDC verursachte Vergrößerung des Transaktionsprotokolls**

1. Prüfen Sie, aus `Log Space Used %` welcher Datenbank repliziert AWS DMS wird, und stellen Sie sicher, dass sie kontinuierlich wächst.

   ```
   DBCC SQLPERF(LOGSPACE)
   ```

1. Ermitteln Sie, wodurch der Backup-Vorgang des Transaktionsprotokolls blockiert wird.

   ```
   Select log_reuse_wait, log_reuse_wait_desc, name from sys.databases where name = db_name();
   ```

   Wenn der Wert `log_reuse_wait_desc` gleich `REPLICATION` ist, wird die Blockierung des Protokoll-Backups durch die Latenz in MS-CDC verursacht.

1. Erhöhen Sie die Anzahl der vom Erfassungsauftrag verarbeiteten Ereignisse, indem Sie die Parameterwerte `maxtrans` und `maxscans` erhöhen.

   ```
   EXEC sys.sp_cdc_change_job @job_type = 'capture' ,@maxtrans = 5000, @maxscans = 20 
   exec sp_cdc_stop_job 'capture'
   exec sp_cdc_start_job 'capture'
   ```

Um dieses Problem zu beheben, legen Sie die Werte von `maxscans` und `maxtrans` so fest, dass `maxtrans*maxscans` sie der durchschnittlichen Anzahl von Ereignissen entsprechen, die für Tabellen generiert werden, die für jeden Tag aus der Quelldatenbank AWS DMS repliziert werden.

Wenn Sie für diese Parameter einen höheren als den empfohlenen Wert festlegen, verarbeiten die Erfassungsaufträge alle Ereignisse in den Transaktionsprotokollen. Wenn Sie für diese Parameter einen niedrigeren als den empfohlenen Wert festlegen, erhöht sich die MS-CDC-Latenz und das Transaktionsprotokoll wird vergrößert.

Die Ermittlung geeigneter Werte für `maxscans` und `maxtrans` kann schwierig sein, da Änderungen des Workloads zu einer unterschiedlichen Anzahl von Ereignissen führen. In diesem Fall empfehlen wir, Überwachung für die MS-CDC-Latenz einzurichten. Weitere Informationen finden Sie unter [Monitor the process](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/administer-and-monitor-change-data-capture-sql-server?view=sql-server-ver15#Monitor) in der Dokumentation zu SQL Server. Konfigurieren Sie dann `maxtrans` und `maxscans` dynamisch auf Grundlage der Überwachungsergebnisse.

Wenn die AWS DMS Aufgabe nicht in der Lage ist, die für die Fortsetzung oder Fortsetzung der Aufgabe erforderlichen Protokollsequenznummern (LSNs) zu finden, schlägt die Aufgabe möglicherweise fehl und erfordert ein vollständiges Neuladen.

**Anmerkung**  
Wenn Sie Daten aus einer RDS for SQL Server-Quelle replizieren, können Fehler auftreten, wenn Sie versuchen, die Replikation nach einem Stop-Start-Ereignis der Amazon RDS-Instance fortzusetzen. AWS DMS Dies liegt daran, dass der SQL-Server-Agent-Prozess den Erfassungsauftrag neu startet, wenn er nach dem Stopp-Start-Ereignis neu gestartet wird. Dadurch wird das MS-CDC-Abfrageintervall umgangen.  
Aus diesem Grund kann es bei Datenbanken mit einem Transaktionsvolumen, das unter der Verarbeitung des MS-CDC-Erfassungsauftrags liegt, dazu führen, dass Daten verarbeitet oder als repliziert und gesichert markiert werden, bevor sie an der Stelle fortgesetzt werden AWS DMS können, an der sie gestoppt wurden. Dies führt zu dem folgenden Fehler:  

```
[SOURCE_CAPTURE ]E: Failed to access LSN '0000dbd9:0006f9ad:0003' in the backup log sets since BACKUP/LOG-s are not available. [1020465] (sqlserver_endpoint_capture.c:764)
```
Legen Sie die Werte `maxtrans` und `maxscans` wie zuvor empfohlen fest, um dieses Problem zu beheben.

# Verwendung der Microsoft Azure SQL-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.AzureSQL"></a>

Mit AWS DMS können Sie Microsoft Azure SQL Database auf die gleiche Weise wie SQL Server als Quelle verwenden. AWS DMS unterstützt als Quelle dieselbe Liste von Datenbankversionen, die für SQL Server unterstützt werden, der lokal oder auf einer Amazon EC2 EC2-Instance ausgeführt wird. 

Weitere Informationen finden Sie unter [Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](CHAP_Source.SQLServer.md).

**Anmerkung**  
AWS DMS unterstützt keine Change Data Capture-Operationen (CDC) mit Azure SQL Database.

# Verwenden von Microsoft Azure SQL Managed Instance als Quelle für AWS DMS
<a name="CHAP_Source.AzureMgd"></a>

Mit AWS DMS können Sie Microsoft Azure SQL Managed Instance auf die gleiche Weise wie SQL Server als Quelle verwenden. AWS DMS unterstützt als Quelle dieselbe Liste von Datenbankversionen, die für SQL Server unterstützt werden, der lokal oder auf einer Amazon EC2 EC2-Instance ausgeführt wird. 

Weitere Informationen finden Sie unter [Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](CHAP_Source.SQLServer.md).

# Verwendung des flexiblen Servers Microsoft Azure Database for PostgreSQL als Quelle für AWS DMS
<a name="CHAP_Source.AzureDBPostgreSQL"></a>

Mit AWS DMS können Sie den flexiblen Server Microsoft Azure Database for PostgreSQL als Quelle verwenden, ähnlich wie PostgreSQL.

Informationen zu Versionen des flexiblen Servers Microsoft Azure Database for PostgreSQL, der als Quelle AWS DMS unterstützt wird, finden Sie unter. [Quellen für AWS DMS](CHAP_Introduction.Sources.md)

## Einrichtung eines flexiblen Microsoft-Azure-für-PostgreSQL-Servers für logische Replikation und Dekodierung
<a name="CHAP_Source.AzureDBPostgreSQL.setup"></a>

Sie können während der Datenbankmigration logische Replikations- und Dekodierungs-Features auf dem flexiblen Microsoft-Azure-Database-for-PostgreSQL-Server verwenden.

Für die logische Dekodierung verwendet DMS das Plugin `test_decoding` oder `pglogical`. Wenn das `pglogical`-Plugin in einer PostgreSQL-Quelldatenbank verfügbar ist, erstellt DMS einen Replikations-Slot mit `pglogical`, andernfalls wird das `test_decoding`-Plugin verwendet. 

Gehen Sie wie folgt vor, um Ihren flexiblen Microsoft-Azure-für-PostgreSQL-Server als Quellendpunkt für DMS zu konfigurieren: 

1. Öffnen Sie die Seite „Serverparameter“ im Portal.

1. Setzen Sie den `wal_level`-Serverparameter auf `LOGICAL`.

1. Wenn Sie die `pglogical`-Erweiterung verwenden möchten, setzen Sie die Parameter `shared_preload_libraries` und `azure.extensions` auf `pglogical`.

1. Setzen Sie den `max_replication_slots`-Parameter auf die maximale Anzahl von DMS-Aufgaben ein, die Sie gleichzeitig ausführen möchten. In Microsoft Azure ist der Standardwert für diesen Parameter 10. Der Maximalwert dieses Parameters hängt vom verfügbaren Speicher Ihrer PostgreSQL-Instance ab und ermöglicht zwischen 2 und 8 Replikations-Slots pro GB Speicher.

1. Legen Sie für den Parameter `max_wal_senders` einen Wert größer als 1 fest. Der Parameter `max_wal_senders` legt die Anzahl der Aufgaben fest, die gleichzeitig ausgeführt werden können. Der Standardwert lautet 10.

1. Setzen Sie den Parameterwert `max_worker_processes` auf mindestens 16. Andernfalls werden möglicherweise Fehler wie die folgenden angezeigt:

   ```
   WARNING: out of background worker slots.
   ```

1. Speichern Sie die Änderungen. Starten Sie den Server neu, um die Änderungen zu übernehmen.

1. Vergewissern Sie sich, dass Ihre PostgreSQL-Instance Netzwerkverkehr von Ihrer Verbindungsressource zulässt.

1. Erteilen Sie einem vorhandenen Benutzer Replikationsberechtigungen oder erstellen Sie einen neuen Benutzer mit Replikationsberechtigungen, indem Sie die folgenden Befehle verwenden. 
   + Mit folgendem Befehl gewähren Sie einem vorhandenen Benutzer Replikationsberechtigungen:

     ```
     ALTER USER <existing_user> WITH REPLICATION;
     ```
   + Mit folgendem Befehl erstellen Sie einen neuen Benutzer mit Replikationsberechtigungen: 

     ```
     CREATE USER aws_dms_user PASSWORD 'aws_dms_user_password';
     GRANT azure_pg_admin to aws_dms_user;
     ALTER ROLE aws_dms_user REPLICATION LOGIN;
     ```

Weitere Informationen über die logische Replikation von PostgreSQL finden Sie in den folgenden Themen:
+ [Aktivieren der Erfassung von Datenänderungen (CDC) mithilfe logischer Replikation](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.Security)
+ [Verwenden von nativen CDC-Startpunkten zum Einrichten einer CDC-Last einer PostgreSQL-Quelle](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.v10)
+ [Logische Replikation und logische Dekodierung in Azure Database für PostgreSQL – Flexibler Server](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-logical) in der [Azure-Database-für PostgreSQL-Dokumentation](https://learn.microsoft.com/en-us/azure/postgresql/).

# Verwendung des flexiblen Servers Microsoft Azure Database for MySQL als Quelle für AWS DMS
<a name="CHAP_Source.AzureDBMySQL"></a>

Mit AWS DMS können Sie den flexiblen Server Microsoft Azure Database for MySQL als Quelle verwenden, ähnlich wie Sie es mit MySQL tun.

Informationen zu Versionen des flexiblen Servers Microsoft Azure Database for MySQL, der als Quelle AWS DMS unterstützt wird, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md). 

Weitere Hinweise zur Verwendung einer vom Kunden verwalteten MySQL-kompatiblen Datenbank mit finden Sie unter. AWS DMS[Verwendung einer selbstverwalteten MySQL-kompatiblen Datenbank als Quelle für AWS DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.CustomerManaged)

## Einschränkungen bei der Verwendung von Azure MySQL als Quelle für AWS Database Migration Service
<a name="CHAP_Source.AzureDBMySQL.limitations"></a>
+ Der Standardwert für die flexible Azure MySQL-Serversystemvariable `sql_generate_invisible_primary_key` ist`ON`, und der Server fügt automatisch einen generierten unsichtbaren Primärschlüssel (GIPK) zu jeder Tabelle hinzu, die ohne einen expliziten Primärschlüssel erstellt wurde. AWS DMS unterstützt keine laufende Replikation für MySQL-Tabellen mit GIPK-Einschränkungen.

# Verwendung von OCI MySQL Heatwave als Quelle für AWS DMS
<a name="CHAP_Source.heatwave"></a>

Mit AWS DMS können Sie OCI MySQL Heatwave auf die gleiche Weise wie MySQL als Quelle verwenden. Die Verwendung von OCI MySQL Heatwave als Quelle erfordert einige zusätzliche Konfigurationsänderungen.

Hinweise zu Versionen von OCI MySQL Heatwave, die als Quelle AWS DMS unterstützt werden, finden Sie unter. [Quellen für AWS DMS](CHAP_Introduction.Sources.md)

## Einrichtung von OCI MySQL Heatwave für die logische Replikation
<a name="CHAP_Source.heatwave.setup"></a>

Gehen Sie wie folgt vor, um Ihre OCI-MySQL-Heatwave-Instance als Quellendpunkt für DMS zu konfigurieren:

1. Melden Sie sich bei der OCI-Konsole an und öffnen Sie das „Hamburger“-Hauptmenü (≡) in der oberen linken Ecke.

1. Wählen Sie **Datenbanken**, **DB-Systeme**.

1. Öffnen Sie das Menü **Konfigurationen**.

1. Wählen Sie **Create configuration** (Konfiguration erstellen).

1. Geben Sie einen Konfigurationsnamen ein, z. B. **dms\$1configuration**.

1. Wählen Sie die Form Ihrer aktuellen OCI-MySQL-Heatwave-Instance. Sie finden die Form auf der Registerkarte „Eigenschaften“ der **DB-Systemkonfiguration** der Instance im Abschnitt **DB-Systemkonfiguration:Form**.

1. Wählen Sie im Abschnitt **Benutzervariablen** die Systemvariable `binlog_row_value_options` aus. Der Standardwert ist `PARTIAL_JSON`. Löschen Sie den Wert.

1. Wählen Sie die Schaltfläche **Erstellen** aus.

1. **Öffnen Sie Ihre OCI My SQLHeatwave Instance und wählen Sie die Schaltfläche Bearbeiten.**

1. Wählen Sie im Abschnitt **Konfiguration** die Schaltfläche **Konfiguration ändern** und wählen Sie die Form-Konfiguration aus, die Sie in Schritt 4 erstellt haben.

1. Sobald die Änderungen wirksam werden, ist Ihre Instance für die logische Replikation bereit.

# Verwenden von Google Cloud for MySQL als Quelle für AWS DMS
<a name="CHAP_Source.GC"></a>

Mit AWS DMS können Sie Google Cloud for MySQL auf die gleiche Weise wie MySQL als Quelle verwenden. 

Hinweise zu Versionen von GCP MySQL, die MySQL als Quelle AWS DMS unterstützen, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md). 

Weitere Informationen finden Sie unter [Verwendung einer MySQL-kompatiblen Datenbank als Quelle für AWS DMS](CHAP_Source.MySQL.md).

**Anmerkung**  
Support für GCP MySQL 8.0 als Quelle ist in AWS DMS Version 3.4.6 verfügbar.  
AWS DMS unterstützt den SSL-Modus `verify-full` für GCP für MySQL-Instances nicht.  
Die GCP MySQL-Sicherheitseinstellung wird `Allow only SSL connections` nicht unterstützt, da sie sowohl die Überprüfung des Server- als auch des Client-Zertifikats erfordert. AWS DMS unterstützt nur die Überprüfung von Serverzertifikaten.  
AWS DMS unterstützt den Standardwert von GCP CloudSQL for MySQL `CRC32` für das `binlog_checksum` Datenbank-Flag.

# Verwenden von Google Cloud für PostgreSQL als Quelle für AWS DMS
<a name="CHAP_Source.GCPostgres"></a>

Mit AWS DMS können Sie Google Cloud for PostgreSQL auf die gleiche Weise als Quelle verwenden wie selbstverwaltete PostgreSQL-Datenbanken.

Hinweise zu Versionen von GCP PostgreSQL, die PostgreSQL als Quelle AWS DMS unterstützen, finden Sie unter. [Quellen für AWS DMS](CHAP_Introduction.Sources.md) 

Weitere Informationen finden Sie unter [Verwenden einer PostgreSQL-Datenbank als Quelle AWS DMS](CHAP_Source.PostgreSQL.md).

## Richten Sie Google Cloud für PostgreSQL für die logische Replikation und Dekodierung ein
<a name="CHAP_Source.GCPostgres.setup"></a>

Sie können während der Datenbankmigration Features für logische Replikation und Dekodierung in Google Cloud SQL for PostgreSQL verwenden.

Für die logische Dekodierung verwendet DMS eines der folgenden Plugins:
+ `test_decoding`
+ `pglogical`

Wenn das `pglogical`-Plugin in einer PostgreSQL-Quelldatenbank verfügbar ist, erstellt DMS einen Replikations-Slot mit `pglogical`, andernfalls wird das `test_decoding`-Plugin verwendet. 

Beachten Sie Folgendes zur Verwendung der logischen Dekodierung mit: AWS DMS

1. Aktivieren Sie mit Google Cloud SQL für PostgreSQL die logische Dekodierung, indem Sie das Flag `cloudsql.logical_decoding` auf `on` setzen.

1. Um `pglogical` zu aktivieren, setzen Sie das `cloudsql.enable_pglogical`-Flag auf `on` und starten Sie die Datenbank neu.

1. Um logische Dekodierungs-Features zu verwenden, erstellen Sie einen PostgreSQL-Benutzer mit dem Attribut `REPLICATION`. Wenn Sie die `pglogical`-Erweiterung verwenden, muss der Benutzer die Rolle `cloudsqlsuperuser` haben. Gehen Sie wie folgt vor, um einen Benutzer mit der `cloudsqlsuperuser`-Rolle zu erstellen:

   ```
   CREATE USER new_aws_dms_user WITH REPLICATION
   IN ROLE cloudsqlsuperuser LOGIN PASSWORD 'new_aws_dms_user_password';
   ```

   Um dieses Attribut für einen vorhandenen Benutzer festzulegen, führen Sie die folgenden Schritte aus:

   ```
   ALTER USER existing_user WITH REPLICATION;
   ```

1. Setzen Sie den `max_replication_slots`-Parameter auf die maximale Anzahl von DMS-Aufgaben ein, die Sie gleichzeitig ausführen möchten. In Google Cloud SQL ist der Standardwert für diesen Parameter 10. Der Maximalwert dieses Parameters hängt vom verfügbaren Speicher Ihrer PostgreSQL-Instance ab und ermöglicht zwischen 2 und 8 Replikations-Slots pro GB Speicher.

Weitere Informationen über die logische Replikation von PostgreSQL finden Sie in den folgenden Themen:
+ [Aktivieren der Erfassung von Datenänderungen (CDC) mithilfe logischer Replikation](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.Security)
+ [Verwenden von nativen CDC-Startpunkten zum Einrichten einer CDC-Last einer PostgreSQL-Quelle](CHAP_Source.PostgreSQL.md#CHAP_Source.PostgreSQL.v10)
+ [Einrichten der logischen Replikation und Dekodierung](https://cloud.google.com/sql/docs/postgres/replication/configure-logical-replication) in der [Cloud-SQL-for-PostgreSQL-Dokumentation](https://cloud.google.com/sql/docs/postgres).

# Verwenden einer PostgreSQL-Datenbank als Quelle AWS DMS
<a name="CHAP_Source.PostgreSQL"></a>

Sie können Daten aus einer oder mehreren PostgreSQL-Datenbanken migrieren mit. AWS DMS Mit einer PostgreSQL-Datenbank als Quelle können Sie Daten zu einer anderen PostgreSQL-Datenbank oder einer der anderen unterstützten Datenbanken migrieren. 

Hinweise zu Versionen von PostgreSQL, die als Quelle AWS DMS unterstützt werden, finden Sie unter. [Quellen für AWS DMS](CHAP_Introduction.Sources.md) 

AWS DMS unterstützt PostgreSQL für diese Datenbanktypen: 
+ Lokale Datenbanken
+ Datenbanken auf einer Amazon-EC2-Instance
+ Datenbanken auf einer DB-Instance von Amazon RDS
+ Datenbanken auf einer DB-Instance basierend auf der Amazon-Aurora-PostgreSQL-kompatiblen Edition
+ Datenbanken auf einer DB-Instance basierend auf der Amazon-Aurora-PostgreSQL-kompatiblen Serverless-Edition

**Anmerkung**  
DMS unterstützt Amazon Aurora PostgreSQL – Serverless V1 nur als Quelle für Volllastaufgaben. Sie können jedoch Amazon Aurora PostgreSQL – Serverless V2 als Quelle für Volllast-, Volllast-und-CDC- und reine CDC-Aufgaben verwenden.

Sie können Secure Sockets Layer (SSL) verwenden, um Verbindungen zwischen Ihrem PostgreSQL-Endpunkt und der Replikations-Instance zu verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem PostgreSQL-Endpunkt finden Sie unter [Verwenden von SSL mit AWS Database Migration Service](CHAP_Security.SSL.md).

Eine zusätzliche Sicherheitsanforderung bei Verwendung von PostgreSQL als Quelle besteht darin, dass das angegebene Benutzerkonto ein registrierter Benutzer in der PostgreSQL-Datenbank sein muss.

Gehen Sie wie folgt vor, um eine PostgreSQL-Datenbank als AWS DMS Quellendpunkt zu konfigurieren:
+ Erstellen Sie einen PostgreSQL-Benutzer mit entsprechenden Berechtigungen, um AWS DMS Zugriff auf Ihre PostgreSQL-Quelldatenbank zu gewähren.
**Anmerkung**  
Wenn es sich bei Ihrer PostgreSQL-Quelldatenbank um eine selbstverwaltete Datenbank handelt, informieren Sie sich unter [Arbeiten mit selbstverwalteten PostgreSQL-Datenbanken als Quelle in AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites).
Wenn es sich bei Ihrer PostgreSQL-Quelldatenbank um eine von Amazon RDS verwaltete Datenbank handelt, informieren Sie sich unter [Arbeiten mit AWS-verwalteten PostgreSQL-Datenbanken als DMS-Quelle](#CHAP_Source.PostgreSQL.RDSPostgreSQL).
+ Erstellen Sie einen PostgreSQL-Quellendpunkt, der der von Ihnen ausgewählten PostgreSQL-Datenbankkonfiguration entspricht.
+ Erstellen Sie eine Aufgabe oder eine Reihe von Aufgaben, um Ihre Tabellen zu migrieren.

  Um eine full-load-only Aufgabe zu erstellen, ist keine weitere Endpunktkonfiguration erforderlich.

  Bevor Sie eine Aufgabe für die Erfassung von Datenänderungen erstellen (eine reine CDC-Aufgabe oder eine Volllast-und-CDC-Aufgabe), informieren Sie sich unter [CDC mithilfe einer selbstverwalteten PostgreSQL-Datenbank als Quelle aktivieren AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites.CDC) oder [CDC mit einer AWS-verwalteten PostgreSQL-DB-Instance aktivieren mit AWS DMS](#CHAP_Source.PostgreSQL.RDSPostgreSQL.CDC).

**Topics**
+ [Arbeiten mit selbstverwalteten PostgreSQL-Datenbanken als Quelle in AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites)
+ [Arbeiten mit AWS-verwalteten PostgreSQL-Datenbanken als DMS-Quelle](#CHAP_Source.PostgreSQL.RDSPostgreSQL)
+ [Aktivieren der Erfassung von Datenänderungen (CDC) mithilfe logischer Replikation](#CHAP_Source.PostgreSQL.Security)
+ [Verwenden von nativen CDC-Startpunkten zum Einrichten einer CDC-Last einer PostgreSQL-Quelle](#CHAP_Source.PostgreSQL.v10)
+ [Migration von PostgreSQL zu PostgreSQL mit AWS DMS](#CHAP_Source.PostgreSQL.Homogeneous)
+ [Migration von Babelfish für Amazon Aurora PostgreSQL mit AWS DMS](#CHAP_Source.PostgreSQL.Babelfish)
+ [AWS DMS Artefakte aus einer PostgreSQL-Quelldatenbank entfernen](#CHAP_Source.PostgreSQL.CleanUp)
+ [Zusätzliche Konfigurationseinstellungen bei Verwendung einer PostgreSQL-Datenbank als DMS-Quelle](#CHAP_Source.PostgreSQL.Advanced)
+ [Replica als Quelle für PostgreSQL lesen](#CHAP_Source.PostgreSQL.ReadReplica)
+ [Verwenden der `MapBooleanAsBoolean` PostgreSQL-Endpunkteinstellung](#CHAP_Source.PostgreSQL.ConnectionAttrib.Endpointsetting)
+ [Endpunkteinstellungen und zusätzliche Verbindungsattribute (ECAs) bei Verwendung von PostgreSQL als DMS-Quelle](#CHAP_Source.PostgreSQL.ConnectionAttrib)
+ [Einschränkungen bei Verwendung einer PostgreSQL-Datenbank als DMS-Quelle](#CHAP_Source.PostgreSQL.Limitations)
+ [Quelldatentypen für PostgreSQL](#CHAP_Source-PostgreSQL-DataTypes)

## Arbeiten mit selbstverwalteten PostgreSQL-Datenbanken als Quelle in AWS DMS
<a name="CHAP_Source.PostgreSQL.Prerequisites"></a>

Mit einer selbstverwalteten PostgreSQL-Datenbank als Quelle können Sie Daten entweder in eine andere PostgreSQL-Datenbank oder in eine der anderen Zieldatenbanken migrieren, die von unterstützt werden. AWS DMS Bei der Datenbankquelle kann es sich um eine On-Premises-Datenbank oder eine selbstverwaltete Engine handeln, die auf einer Amazon-EC2-Instance ausgeführt wird. Sie können eine DB-Instance sowohl für Volllast- als auch für CDC-Aufgaben verwenden.

### Voraussetzungen für die Verwendung einer selbstverwalteten PostgreSQL-Datenbank als Quelle AWS DMS
<a name="CHAP_Source.PostgreSQL.Prerequisites.SelfManaged"></a>

Führen Sie vor der Migration von Daten aus einer selbstverwalteten PostgreSQL-Quelldatenbank die folgenden Schritte aus: 
+ Stellen Sie sicher, dass Sie eine PostgreSQL-Datenbank der Version 9.4.x oder höher verwenden.
+ Erteilen Sie für Volllast-und-CDC- oder reine CDC-Aufgaben Superuser-Berechtigungen für das Benutzerkonto, das für die PostgreSQL-Quelldatenbank angegeben ist. Das Benutzerkonto erfordert Superuser-Berechtigungen, um auf replikationsspezifische Funktionen in der Quelle zugreifen zu können. Das DMS-Benutzerkonto benötigt SELECT-Berechtigungen für alle Spalten, um Tabellen erfolgreich zu migrieren. Falls Berechtigungen für Spalten fehlen, erstellt DMS die Zieltabelle mithilfe regulärer DMS-Datentypzuordnungen, was zu Unterschieden in den Metadaten und zu Fehlern bei Aufgaben führt.
+ Fügen Sie der `pg_hba.conf` Konfigurationsdatei die IP-Adresse des AWS DMS Replikationsservers hinzu und aktivieren Sie Replikations- und Socket-Verbindungen. Ein Beispiel folgt.

  ```
              # Replication Instance
              host all all 12.3.4.56/00 md5
              # Allow replication connections from localhost, by a user with the
              # replication privilege.
              host replication dms 12.3.4.56/00 md5
  ```

  Die Konfigurationsdatei `pg_hba.conf` von PostgreSQL steuert die Clientauthentifizierung. (HBA steht für hostbasierte Authentifizierung) Die Datei wird üblicherweise im Datenverzeichnis des Datenbankclusters gespeichert. 
+ Wenn Sie eine Datenbank als Quelle für die logische Replikation konfigurieren, AWS DMS siehe [CDC mithilfe einer selbstverwalteten PostgreSQL-Datenbank als Quelle aktivieren AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites.CDC)

**Anmerkung**  
Einige AWS DMS Transaktionen befinden sich für einige Zeit im Leerlauf, bevor sie von der DMS-Engine wieder verwendet werden. Über den Parameter `idle_in_transaction_session_timeout` in PostgreSQL-Versionen 9.6 und höher können Sie für Transaktionen im Leerlauf ein Timeout und Fehlschlagen veranlassen. Beenden Sie Transaktionen im Leerlauf nicht, wenn Sie AWS DMS verwenden. 

### CDC mithilfe einer selbstverwalteten PostgreSQL-Datenbank als Quelle aktivieren AWS DMS
<a name="CHAP_Source.PostgreSQL.Prerequisites.CDC"></a>

AWS DMS unterstützt die Erfassung von Änderungsdaten (CDC) mithilfe logischer Replikation. Legen Sie die folgenden Parameter und Werte in der Konfigurationsdatei `postgresql.conf` fest, um die logische Replikation einer selbstverwalteten PostgreSQL-Quelldatenbank zu aktivieren:
+ Set `wal_level = logical`.
+ Legen Sie für `max_replication_slots` einen Wert größer als 1 fest.

  Legen Sie den Wert `max_replication_slots` gemäß der Anzahl der Aufgaben fest, die Sie ausführen möchten. Wenn Sie beispielsweise fünf Aufgaben ausführen möchten, legen Sie mindestens fünf Slots fest.. Slots werden automatisch geöffnet, sobald eine Aufgabe gestartet wird und bleiben geöffnet, selbst wenn die Aufgabe nicht mehr ausgeführt wird. Löschen Sie offene Slots unbedingt manuell. Beachten Sie, dass DMS beim Löschen der Aufgabe automatisch Replikations-Slots löscht, sofern DMS den Slot erstellt hat.
+ Legen Sie für `max_wal_senders` einen Wert größer als 1 fest.

  Der Parameter `max_wal_senders` legt die Anzahl der Aufgaben fest, die gleichzeitig ausgeführt werden können.
+ Der Parameter `wal_sender_timeout` beendet Replikationsverbindungen, die länger als die angegebene Anzahl von Millisekunden inaktiv sind. Der Standardwert für eine On-Premises-PostgreSQL-Datenbank beträgt 60 000 Millisekunden (60 Sekunden). Wenn Sie den Wert auf 0 (Null) festlegen, wird der Timeout-Mechanismus deaktiviert. Dies ist eine gültige Einstellung für DMS.

  Wenn Sie den Wert `wal_sender_timeout` auf einen anderen Wert als Null festlegen, benötigt eine DMS-Aufgabe mit CDC mindestens 10 000 Millisekunden (10 Sekunden) und schlägt fehl, wenn der Wert unter 10 000 liegt. Halten Sie den Wert unter 5 Minuten, um eine Verzögerung während eines Multi-AZ-Failovers einer DMS-Replikations-Instance zu vermeiden.

Einige Parameter sind statisch und können nur beim Serverstart festgelegt werden. Änderungen an ihren Einträgen in der Konfigurationsdatei (für eine selbstverwaltete Datenbank) oder der DB-Parametergruppe (für eine Datenbank von RDS für PostgreSQL) werden ignoriert, bis der Server neu gestartet wird. Weitere Informationen finden Sie in der [PostgreSQL-Dokumentation](https://www.postgresql.org/docs/current/intro-whatis.html).

Weitere Informationen zum Aktivieren von CDC finden Sie unter [Aktivieren der Erfassung von Datenänderungen (CDC) mithilfe logischer Replikation](#CHAP_Source.PostgreSQL.Security).

## Arbeiten mit AWS-verwalteten PostgreSQL-Datenbanken als DMS-Quelle
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL"></a>

Sie können eine AWS-verwaltete PostgreSQL-DB-Instance als Quelle für verwenden. AWS DMS Sie können sowohl Volllast- als auch CDC-Aufgaben mit einer von AWS verwalteten PostgreSQL-Quelle ausführen. 

### Voraussetzungen für die Verwendung einer AWS-verwalteten PostgreSQL-Datenbank als DMS-Quelle
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL.Prerequisites"></a>

Gehen Sie vor der Migration von Daten aus einer AWS-verwalteten PostgreSQL-Quelldatenbank wie folgt vor:
+ Wir empfehlen, dass Sie ein AWS Benutzerkonto mit den erforderlichen Mindestberechtigungen für die PostgreSQL-DB-Instance als Benutzerkonto für den PostgreSQL-Quellendpunkt für verwenden. AWS DMS Von der Verwendung des Hauptkontos wird abgeraten. Das Konto muss über die Rolle `rds_superuser` und die Rolle `rds_replication` verfügen. Die Rolle `rds_replication` erteilt Berechtigungen zur Verwaltung von logischen Slots und zum Streamen von Daten mithilfe von logischen Slots.

  Erstellen Sie vom Hauptbenutzerkonto aus mehrere Objekte für das verwendete Konto. Informationen dazu, wie Sie diese erstellen, finden Sie unter [Migrieren einer Datenbank von Amazon RDS für PostgreSQL ohne Verwendung des Hauptbenutzerkontos](#CHAP_Source.PostgreSQL.RDSPostgreSQL.NonMasterUser).
+ Wenn sich Ihre Quelldatenbank in einer Virtual Private Cloud (VPC) befindet, wählen Sie die VPC-Sicherheitsgruppe aus, die Zugriff auf die DB-Instance bietet, in der sich die Datenbank befindet. Dies ist erforderlich, damit die DMS-Replikations-Instance eine Verbindung mit der Quell-DB-Instance herstellen kann. Wenn sich die Datenbank und die DMS-Replikations-Instance in derselben VPC befinden, fügen Sie die entsprechende Sicherheitsgruppe ihren eigenen Regeln für eingehenden Datenverkehr hinzu.

**Anmerkung**  
Einige AWS DMS Transaktionen sind für einige Zeit inaktiv, bevor sie von der DMS-Engine wieder verwendet werden. Über den Parameter `idle_in_transaction_session_timeout` in PostgreSQL-Versionen 9.6 und höher können Sie für Transaktionen im Leerlauf ein Timeout und Fehlschlagen veranlassen. Beenden Sie Transaktionen im Leerlauf nicht, wenn Sie AWS DMS verwenden.

### CDC mit einer AWS-verwalteten PostgreSQL-DB-Instance aktivieren mit AWS DMS
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL.CDC"></a>

AWS DMS unterstützt CDC auf Amazon RDS-PostgreSQL-Datenbanken, wenn die DB-Instance für die logische Replikation konfiguriert ist. In der folgenden Tabelle wird die logische Replikationskompatibilität jeder AWS-verwalteten PostgreSQL-Version zusammengefasst. 


|  PostgreSQL-Version  |  AWS DMS Unterstützung bei Volllast   |  AWS DMS CDC-Unterstützung  | 
| --- | --- | --- | 
|  Aurora PostgreSQL Version 2.1 mit Kompatibilität mit PostgreSQL 10.5 (oder niedriger)  |  Ja  |  Nein  | 
|  Aurora PostgreSQL Version 2.2 mit Kompatibilität mit PostgreSQL 10.6 (oder höher)   |  Ja  |  Ja  | 
|  RDS für PostgreSQL mit Kompatibilität mit PostgreSQL 10.21 (oder höher)  |  Ja  |  Ja  | 

**So aktivieren Sie die logische Replikation für eine RDS PostgreSQL DB-Instance**

1. Verwenden Sie das AWS Hauptbenutzerkonto für die PostgreSQL-DB-Instance als Benutzerkonto für den PostgreSQL-Quellendpunkt. Das Masterbenutzerkonto hat die erforderlichen Rollen für die CDC-Einrichtung. 

   Wenn Sie ein anderes als das Hauptbenutzerkonto verwenden, müssen Sie vom Hauptbenutzerkonto aus mehrere Objekte für das verwendete Konto erstellen. Weitere Informationen finden Sie unter [Migrieren einer Datenbank von Amazon RDS für PostgreSQL ohne Verwendung des Hauptbenutzerkontos](#CHAP_Source.PostgreSQL.RDSPostgreSQL.NonMasterUser).

1. Legen Sie den Parameter `rds.logical_replication` in der DB-CLUSTER-Parametergruppe auf 1 fest. Für das Wirksamwerden dieses statischen Parameters ist ein Neustart der DB-Instance erforderlich. Im Rahmen der Anwendung dieses Parameters legt AWS DMS die Parameter `wal_level`, `max_wal_senders`, `max_replication_slots` und `max_connections` fest. Diese Parameteränderungen können die WAL-Erzeugung (Write Ahead Log) erhöhen. Setzen Sie `rds.logical_replication` also nur, wenn Sie logische Replikationsslots verwenden.

1. Der Parameter `wal_sender_timeout` beendet Replikationsverbindungen, die länger als die angegebene Anzahl von Millisekunden inaktiv sind. Die Standardeinstellung für eine AWS-verwaltete PostgreSQL-Datenbank ist 30000 Millisekunden (30 Sekunden). Wenn Sie den Wert auf 0 (Null) festlegen, wird der Timeout-Mechanismus deaktiviert. Dies ist eine gültige Einstellung für DMS.

   Wenn Sie den Wert `wal_sender_timeout` auf einen anderen Wert als Null festlegen, benötigt eine DMS-Aufgabe mit CDC mindestens 10 000 Millisekunden (10 Sekunden) und schlägt fehl, wenn der Wert zwischen 0 und 10 000 liegt. Halten Sie den Wert unter 5 Minuten, um eine Verzögerung während eines Multi-AZ-Failovers einer DMS-Replikations-Instance zu vermeiden.

1.  Stellen Sie sicher, dass der Wert des Parameters `max_worker_processes` in Ihrer DB-Cluster-Parametergruppe gleich oder höher als die kombinierten Gesamtwerte von `max_logical_replication_workers`, `autovacuum_max_workers` und `max_parallel_workers` ist. Eine hohe Anzahl von Hintergrund-Worker-Prozessen kann sich auf die Anwendungs-Workloads auf kleinen Instances auswirken. Überwachen Sie daher die Leistung Ihrer Datenbank, wenn Sie für `max_worker_processes` einen höheren Wert als den Standardwert festlegen.

1.  Wenn Sie Aurora PostgreSQL als Quelle mit CDC verwenden, setzen Sie den Wert auf. `synchronous_commit` `ON`

**So verwenden Sie PostgreSQL MultiAZ DB Cluster Read Replica für CDC (laufende Replikation)**

1. Setzen Sie die `sync_replication_slots` Parameter `rds.logical_replication` und in Ihrer DB-CLUSTER-Parametergruppe auf 1. Diese statischen Parameter erfordern einen Neustart der DB-Instance, damit sie wirksam werden.

1. Führen Sie den folgenden Befehl aus, um die `awsdms_ddl_audit` Tabelle auf Writer zu erstellen und die `objects_schema` durch den Namen des zu verwendenden Schemas zu ersetzen:

   ```
   CREATE TABLE objects_schema.awsdms_ddl_audit
   (
     c_key    bigserial primary key,
     c_time   timestamp,    -- Informational
     c_user   varchar(64),  -- Informational: current_user
     c_txn    varchar(16),  -- Informational: current transaction
     c_tag    varchar(24),  -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
     c_oid    integer,      -- For future use - TG_OBJECTID
     c_name   varchar(64),  -- For future use - TG_OBJECTNAME
     c_schema varchar(64),  -- For future use - TG_SCHEMANAME. For now - holds current_schema
     c_ddlqry  text         -- The DDL query associated with the current DDL event
   );
   ```

1. Führen Sie den folgenden Befehl aus, um die `awsdms_intercept_ddl` Funktion zu erstellen und die `objects_schema` durch den Namen des zu verwendenden Schemas zu ersetzen:

   ```
   CREATE OR REPLACE FUNCTION objects_schema.awsdms_intercept_ddl()
     RETURNS event_trigger
   LANGUAGE plpgsql
   SECURITY DEFINER
     AS $$
     declare _qry text;
   BEGIN
     if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE' or tg_tag = 'CREATE TABLE AS') then
            SELECT current_query() into _qry;
            insert into objects_schema.awsdms_ddl_audit
            values
            (
            default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry
            );
            delete from objects_schema.awsdms_ddl_audit;
   end if;
   END;
   $$;
   ```

1. Führen Sie den folgenden Befehl aus, um den `awsdms_intercept_ddl` Event-Trigger zu erstellen:

   ```
   CREATE EVENT TRIGGER awsdms_intercept_ddl ON ddl_command_end EXECUTE PROCEDURE objects_schema.awsdms_intercept_ddl();
   ```

   Stellen Sie sicher, dass alle Benutzer und Rollen, die auf diese Ereignisse zugreifen, über die erforderlichen DDL-Berechtigungen verfügen. Beispiel:

   ```
   grant all on public.awsdms_ddl_audit to public;
   grant all on public.awsdms_ddl_audit_c_key_seq to public;
   ```

1. Erstellen Sie einen Replikationsslot auf Writer:

   ```
   SELECT * FROM pg_create_logical_replication_slot('dms_read_replica_slot', 'test_decoding', false, true);
   ```

1. Stellen Sie sicher, dass der Replikationssteckplatz auf Reader verfügbar ist:

   ```
   select * from pg_catalog.pg_replication_slots where slot_name = 'dms_read_replica_slot';
   
   slot_name            |plugin       |slot_type|datoid|database|temporary|active|active_pid|xmin|catalog_xmin|restart_lsn|confirmed_flush_lsn|wal_status|safe_wal_size|two_phase|inactive_since               |conflicting|invalidation_reason|failover|synced|
   ---------------------+-------------+---------+------+--------+---------+------+----------+----+------------+-----------+-------------------+----------+-------------+---------+-----------------------------+-----------+-------------------+--------+------+
   dms_read_replica_slot|test_decoding|logical  |     5|postgres|false    |false |          |    |3559        |0/180011B8 |0/180011F0         |reserved  |             |true     |2025-02-10 15:45:04.083 +0100|false      |                   |false   |false |
   ```

1. Erstellen Sie den DMS-Quellendpunkt für Read Replica und legen Sie den Namen des logischen Replikationssteckplatzes über das zusätzliche Verbindungsattribut fest:

   ```
   slotName=dms_read_replica_slot;
   ```

1. Erstellen und starten Sie die CDC/FL\$1CDC-Aufgabe.
**Anmerkung**  
Bei CDC/FL\$1CDC-Migrationen betrachtet DMS die Startzeit der Aufgabe als CDC-Startposition. Alle älteren Versionen aus LSNs dem Replikationssteckplatz werden ignoriert.

### Migrieren einer Datenbank von Amazon RDS für PostgreSQL ohne Verwendung des Hauptbenutzerkontos
<a name="CHAP_Source.PostgreSQL.RDSPostgreSQL.NonMasterUser"></a>

In Einzelfällen können Sie das Hauptbenutzerkonto für die DB-Instance von Amazon RDS PostgreSQL, die Sie als Quelle verwenden, nicht verwenden. In diesen Fällen erstellen Sie mehrere Objekte, um Data Definition Language (DDL)-Ereignisse zu erfassen. Sie erstellen diese Objekte in dem Konto, das nicht das Masterkonto ist, und dann erstellen Sie einen Auslöser im Masterbenutzerkonto.

**Anmerkung**  
Wenn Sie die Endpunkteinstellung `CaptureDdls` am Quellendpunkt auf `false` festlegen, müssen Sie folgende Tabelle/folgenden Auslöser in der Quelldatenbank nicht erstellen.

Gehen Sie wie folgt vor, um diese Objekte zu erstellen.

**So erstellen Sie Objekte**

1. Wählen Sie das Schema aus, in dem die Objekte erstellt werden sollen. Das Standardschema ist `public`. Stellen Sie sicher, dass das Schema vorhanden ist und dass das `OtherThanMaster`-Konto darauf zugreifen kann. 

1. Melden Sie sich mit dem anderen Benutzerkonto (nicht dem Hauptkonto) (hier das Konto `OtherThanMaster`) bei der PostgreSQL-DB-Instance an.

1. Erstellen Sie die Tabelle `awsdms_ddl_audit`, indem Sie den folgenden Befehl ausführen. Ersetzen Sie dabei `objects_schema` im folgenden Code durch den Namen des zu verwendenden Schemas.

   ```
   CREATE TABLE objects_schema.awsdms_ddl_audit
   (
     c_key    bigserial primary key,
     c_time   timestamp,    -- Informational
     c_user   varchar(64),  -- Informational: current_user
     c_txn    varchar(16),  -- Informational: current transaction
     c_tag    varchar(24),  -- Either 'CREATE TABLE' or 'ALTER TABLE' or 'DROP TABLE'
     c_oid    integer,      -- For future use - TG_OBJECTID
     c_name   varchar(64),  -- For future use - TG_OBJECTNAME
     c_schema varchar(64),  -- For future use - TG_SCHEMANAME. For now - holds current_schema
     c_ddlqry  text         -- The DDL query associated with the current DDL event
   );
   ```

1. Erstellen Sie die Funktion `awsdms_intercept_ddl`, indem Sie den folgenden Befehl ausführen und dabei `objects_schema` im folgenden Code durch den Namen des zu verwendenden Schemas ersetzen.

   ```
   CREATE OR REPLACE FUNCTION objects_schema.awsdms_intercept_ddl()
     RETURNS event_trigger
   LANGUAGE plpgsql
   SECURITY DEFINER
     AS $$
     declare _qry text;
   BEGIN
     if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE' or tg_tag = 'CREATE TABLE AS') then
            SELECT current_query() into _qry;
            insert into objects_schema.awsdms_ddl_audit
            values
            (
            default,current_timestamp,current_user,cast(TXID_CURRENT()as varchar(16)),tg_tag,0,'',current_schema,_qry
            );
            delete from objects_schema.awsdms_ddl_audit;
   end if;
   END;
   $$;
   ```

1. Melden Sie sich vom `OtherThanMaster`-Konto ab und melden Sie sich mit einem Konto an, dem die `rds_superuser`-Rolle zugewiesen ist.

1. Erstellen Sie den Ereignisauslöser `awsdms_intercept_ddl`, indem Sie den folgenden Befehl ausführen.

   ```
   CREATE EVENT TRIGGER awsdms_intercept_ddl ON ddl_command_end 
   EXECUTE PROCEDURE objects_schema.awsdms_intercept_ddl();
   ```

1. Stellen Sie sicher, dass alle Benutzer und Rollen, die auf diese Ereignisse zugreifen, über die erforderlichen DDL-Berechtigungen verfügen. Beispiel:

   ```
   grant all on public.awsdms_ddl_audit to public;
   grant all on public.awsdms_ddl_audit_c_key_seq to public;
   ```

Wenn Sie das vorangegangene Verfahren ausgeführt haben, können Sie den AWS DMS -Quellendpunkt mithilfe des `OtherThanMaster`-Kontos erstellen.

**Anmerkung**  
Diese Ereignisse werden durch die Anweisungen `CREATE TABLE`, `ALTER TABLE` und `DROP TABLE` ausgelöst.

## Aktivieren der Erfassung von Datenänderungen (CDC) mithilfe logischer Replikation
<a name="CHAP_Source.PostgreSQL.Security"></a>

Sie können das native PostgreSQL-Feature zur logischen Replikation verwenden, um CDC während einer Datenbankmigration für PostgreSQL-Quellen zu aktivieren. Sie können dieses Feature mit einer selbstverwalteten PostgreSQL- und einer DB-Instance von Amazon RDS für PostgreSQL verwenden. Dieser Ansatz reduziert Ausfallzeiten und stellt sicher, dass die Zieldatenbank mit der PostgreSQL-Quelldatenbank synchronisiert ist.

AWS DMS unterstützt CDC für PostgreSQL-Tabellen mit Primärschlüsseln. Wenn eine Tabelle keinen Primärschlüssel hat, enthalten die Write-Ahead-Logs (WAL) kein Vorher-Bild der Datenbankzeile. In diesem Fall kann DMS die Tabelle nicht aktualisieren. Sie können dann zusätzliche Konfigurationseinstellungen verwenden und die Tabellenreplikatidentität als Problemumgehung verwenden. Bei diesem Ansatz können jedoch zusätzliche Protokolle generiert werden. Es wird empfohlen, die Tabellenreplikatidentität erst nach sorgfältigen Tests als Problemumgehung zu verwenden. Weitere Informationen finden Sie unter [Zusätzliche Konfigurationseinstellungen bei Verwendung einer PostgreSQL-Datenbank als DMS-Quelle](#CHAP_Source.PostgreSQL.Advanced).

**Anmerkung**  
REPLICA IDENTITY FULL wird mit einem Plug-in für logische Dekodierung unterstützt, aber nicht mit dem Plug-in pglogical. Weitere Informationen finden Sie in der [Dokumentation zu pglogical](https://github.com/2ndQuadrant/pglogical#primary-key-or-replica-identity-required).

 AWS DMS Verwendet bei Volllast- und nur CDC- und CDC-Aufgaben logische Replikationssteckplätze, um WAL-Protokolle für die Replikation aufzubewahren, bis die Protokolle dekodiert sind. Beim Neustart (nicht bei der Fortsetzung) einer Volllast-und-CDC- oder einer reinen CDC-Aufgabe wird der Replikations-Slot neu erstellt.

**Anmerkung**  
Für die logische Dekodierung verwendet DMS entweder das Plugin test\$1decoding oder pglogical. Wenn das Plug-in pglogical in einer PostgreSQL-Quelldatenbank verfügbar ist, erstellt DMS einen Replikations-Slot mithilfe von pglogical, andernfalls wird das Plug-in test\$1decoding verwendet. Weitere Informationen zum Plug-in test\$1decoding finden Sie in der [Dokumentation zu PostgreSQL](https://www.postgresql.org/docs/9.4/test-decoding.html).  
Wenn der Datenbankparameter `max_slot_wal_keep_size` auf einen anderen Wert als den Standardwert festgelegt ist und die `restart_lsn` eines Replikations-Slots um mehr als diese Größe hinter der aktuellen LSN zurückbleibt, schlägt die DMS-Aufgabe aufgrund des Entfernens der erforderlichen WAL-Dateien fehl.

### Konfigurieren des Plug-ins pglogical
<a name="CHAP_Source.PostgreSQL.Security.Pglogical"></a>

Das als PostgreSQL-Erweiterung implementierte Plug-in pglogical ist ein logisches Replikationssystem und Modell für die selektive Datenreplikation. In der folgenden Tabelle sind die PostgreSQL-Quelldatenbankversionen aufgeführt, die das Plug-in pglogical unterstützen.


|  PostgreSQL-Quelle   |  Unterstützung für pglogical  | 
| --- | --- | 
|  Selbstverwaltetes PostgreSQL 9.4 oder höher  |  Ja  | 
|  Amazon RDS PostgreSQL 9.5 oder niedriger  |  Nein  | 
|  Amazon RDS PostgreSQL 9.6 oder höher  |  Ja  | 
|  Aurora PostgreSQL 1.x bis 2.5.x  |  Nein  | 
|  Aurora PostgreSQL 2.6.x oder höher  |  Ja  | 
|  Aurora PostgreSQL 3.3.x oder höher  |  Ja  | 

Bevor Sie pglogical für die Verwendung mit konfigurieren AWS DMS, aktivieren Sie zunächst die logische Replikation für Change Data Capture (CDC) in Ihrer PostgreSQL-Quelldatenbank. 
+ Informationen zur Aktivierung der logischen Replikation für CDC auf *selbstverwalteten* PostgreSQL-Quelldatenbanken finden Sie unter [CDC mithilfe einer selbstverwalteten PostgreSQL-Datenbank als Quelle aktivieren AWS DMS](#CHAP_Source.PostgreSQL.Prerequisites.CDC).
+ Informationen zur Aktivierung der logischen Replikation für CDC auf *von AWS verwalteten* PostgreSQL-Quelldatenbanken finden Sie unter [CDC mit einer AWS-verwalteten PostgreSQL-DB-Instance aktivieren mit AWS DMS](#CHAP_Source.PostgreSQL.RDSPostgreSQL.CDC).

Nachdem die logische Replikation in Ihrer PostgreSQL-Quelldatenbank aktiviert wurde, führen Sie die folgenden Schritte aus, um pglogical für die Verwendung mit DMS zu konfigurieren.

**Um das pglogical-Plugin für die logische Replikation in einer PostgreSQL-Quelldatenbank zu verwenden mit AWS DMS**

1. Erstellen Sie eine pglogical-Erweiterung für Ihre PostgreSQL-Quelldatenbank:

   1. Legen Sie den richtigen Parameter fest:
      + Legen Sie für selbstverwaltete PostgreSQL-Datenbanken den Datenbankparameter `shared_preload_libraries= 'pglogical'` fest.
      + Legen Sie für PostgreSQL-Datenbanken in Amazon RDS und Datenbanken der Amazon-Aurora-PostgreSQL-kompatiblen Edition den Parameter `shared_preload_libraries` in derselben RDS-Parametergruppe auf `pglogical` fest.

   1. Starten Sie Ihre PostgreSQL-Quelldatenbank neu.

   1. Führen Sie in der PostgreSQL-Datenbank den Befehl `create extension pglogical;` aus.

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob pglogical erfolgreich installiert wurde:

   `select * FROM pg_catalog.pg_extension`

Sie können jetzt eine AWS DMS Aufgabe erstellen, die die Erfassung von Änderungsdaten für Ihren PostgreSQL-Quelldatenbank-Endpunkt durchführt.

**Anmerkung**  
Wenn Sie pglogical in Ihrer PostgreSQL-Quelldatenbank nicht aktivieren, verwendet AWS DMS standardmäßig das Plug-in `test_decoding`. Wenn pglogical für die logische Dekodierung aktiviert ist, wird standardmäßig pglogical verwendet. AWS DMS Sie können jedoch das zusätzliche Verbindungsattribut `PluginName` festlegen, um stattdessen das Plug-in `test_decoding` zu verwenden.

## Verwenden von nativen CDC-Startpunkten zum Einrichten einer CDC-Last einer PostgreSQL-Quelle
<a name="CHAP_Source.PostgreSQL.v10"></a>

Legen Sie zum Aktivieren von nativen CDC-Startpunkten mit PostgreSQL als Quelle das zusätzliche Verbindungsattribut `slotName` auf den Namen eines vorhandenen logischen Replikations-Slots fest, wenn Sie den Endpunkt erstellen. Dieser logische Replikations-Slot enthält laufende Änderungen ab dem Zeitpunkt der Erstellung des Endpunkts und unterstützt somit die Replikation ab einem früheren Zeitpunkt. 

PostgreSQL schreibt die Datenbankänderungen in WAL-Dateien, die nur verworfen werden, nachdem ein AWS DMS erfolgreich Änderungen aus dem logischen Replikations-Slot gelesen hat. Durch die Verwendung von logischen Replikations-Slots können protokollierte Änderungen vor dem Löschen geschützt werden, bevor sie vom Replikationsmodul verwendet werden. 

Je nach Änderungsrate und Verbrauch können Änderungen in einem logischen Replikations-Slot jedoch zu einer erhöhten Festplattennutzung führen. Es wird empfohlen, Speicherplatznutzungsalarme in der PostgreSQL-Quell-Instance festzulegen, wenn Sie logische Replikations-Slots verwenden. Weitere Informationen zur Einstellung des zusätzlichen Verbindungsattributs `slotName` finden Sie unter [Endpunkteinstellungen und zusätzliche Verbindungsattribute (ECAs) bei Verwendung von PostgreSQL als DMS-Quelle](#CHAP_Source.PostgreSQL.ConnectionAttrib).

Im folgenden Verfahren wird dieser Ansatz näher erläutert.

**So verwenden Sie einen systemeigenen CDC-Startpunkt zum Einrichten einer CDC-Last eines PostgreSQL-Quellendpunkts:**

1. Identifizieren Sie den logischen Replikations-Slot, der von einer früheren Replikationsaufgabe (einer übergeordneten Aufgabe) verwendet wird, die Sie als Startpunkt verwenden möchten. Fragen Sie dann die `pg_replication_slots` Ansicht in Ihrer Quelldatenbank ab, um sicherzustellen, dass dieser Slot keine aktiven Verbindungen hat. Wenn dies doch der Fall ist, lösen Sie sie auf und beenden Sie sie, bevor Sie fortfahren.

   Für die folgenden Schritte gehen Sie davon aus, dass Ihr logischer Replikations-Slot `abc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef` ist. 

1. Erstellen Sie einen neuen Quellendpunkt, der die folgenden zusätzlichen Verbindungsattributeinstellungen enthält.

   ```
   slotName=abc1d2efghijk_34567890_z0yx98w7_6v54_32ut_1srq_1a2b34c5d67ef;
   ```

1. Erstellen Sie mithilfe der Konsole AWS CLI oder AWS DMS der API eine neue Aufgabe, die nur für CDC bestimmt ist. Wenn Sie die CLI verwenden, können Sie beispielsweise den folgenden Befehl `create-replication-task` ausführen. 

   ```
   aws dms create-replication-task --replication-task-identifier postgresql-slot-name-test 
   --source-endpoint-arn arn:aws:dms:us-west-2:012345678901:endpoint:ABCD1EFGHIJK2LMNOPQRST3UV4 
   --target-endpoint-arn arn:aws:dms:us-west-2:012345678901:endpoint:ZYX9WVUTSRQONM8LKJIHGF7ED6 
   --replication-instance-arn arn:aws:dms:us-west-2:012345678901:rep:AAAAAAAAAAA5BB4CCC3DDDD2EE 
   --migration-type cdc --table-mappings "file://mappings.json" --cdc-start-position "4AF/B00000D0" 
   --replication-task-settings "file://task-pg.json"
   ```

   Im vorhergehenden Befehl werden die folgenden Optionen festgelegt:
   + Die Option `source-endpoint-arn` ist auf den neuen Wert festgelegt, den Sie in Schritt 2 erstellt haben.
   + Die Option `replication-instance-arn` ist auf den gleichen Wert wie für die übergeordnete Aufgabe aus Schritt 1 festgelegt.
   + Die Optionen `table-mappings` und `replication-task-settings` sind auf die gleichen Werte wie für die übergeordnete Aufgabe aus Schritt 1 festgelegt.
   + Die Option `cdc-start-position` ist auf einen Startpositionswert festgelegt. Um diese Startposition zu finden, fragen Sie entweder die `pg_replication_slots`-Ansicht Ihrer Quelldatenbank ab oder sehen Sie sich die Konsolendetails für die übergeordnete Aufgabe in Schritt 1 an. Weitere Informationen finden Sie unter [Bestimmen eines nativen CDC-Startpunkts](CHAP_Task.CDC.md#CHAP_Task.CDC.StartPoint.Native).

   Gehen Sie wie folgt vor, um den benutzerdefinierten CDC-Startmodus zu aktivieren, wenn Sie eine neue reine CDC-Aufgabe über die AWS DMS Konsole erstellen:
   + Wählen Sie im Abschnitt **Aufgabeneinstellungen** für **CDC-Startmodus für Quelltransaktionen** die Option **Benutzerdefinierten CDC-Startmodus aktivieren** aus.
   + Wählen Sie für **Benutzerdefinierter CDC-Startpunkt für Quelltransaktionen** die Option **Protokollsequenznummer angeben** aus. Geben Sie die Systemänderungsnummer an oder wählen Sie **Wiederherstellungsprüfpunkt angeben** aus und geben Sie einen Wiederherstellungsprüfpunkt an.

   Wenn diese CDC-Task ausgeführt wird, wird ein AWS DMS Fehler ausgelöst, wenn der angegebene logische Replikationssteckplatz nicht existiert. Außerdem wird ein Fehler ausgelöst, wenn die Aufgabe nicht mit einer gültigen Einstellung für `cdc-start-position` erstellt wurde.

Wenn Sie native CDC-Startpunkte mit dem Plug-in pglogical verwenden und einen neuen Replikations-Slot verwenden möchten, führen Sie die folgenden Einrichtungsschritte durch, bevor Sie eine CDC-Aufgabe erstellen. 

**So verwenden Sie einen neuen Replikations-Slot, der nicht zuvor als Teil einer anderen DMS-Aufgabe erstellt wurde**

1. Erstellen Sie einen Replikations-Slot wie im Folgenden dargestellt:

   ```
   SELECT * FROM pg_create_logical_replication_slot('replication_slot_name', 'pglogical');
   ```

1. Nachdem die Datenbank den Replikations-Slot erstellt hat, rufen Sie die Werte **restart\$1lsn** und **confirmed\$1flush\$1lsn** für den Slot ab und notieren Sie sich diese:

   ```
   select * from pg_replication_slots where slot_name like 'replication_slot_name';
   ```

   Beachten Sie, dass die native CDC-Startposition für eine CDC-Aufgabe, die nach dem Replikations-Slot erstellt wurde, nicht älter sein darf als der Wert **confirmed\$1flush\$1lsn**.

   Informationen zu den Werten **restart\$1lsn** und **confirmed\$1flush\$1lsn** finden Sie unter [pg\$1replication\$1slots](https://www.postgresql.org/docs/14/view-pg-replication-slots.html) 

1. Erstellen Sie einen pglogical-Knoten.

   ```
   SELECT pglogical.create_node(node_name := 'node_name', dsn := 'your_dsn_name');
   ```

1. Erstellen Sie mit der Funktion `pglogical.create_replication_set` zwei Replikationssätze. Der erste Replikationssatz verfolgt Aktualisierungen und Löschungen für Tabellen mit Primärschlüsseln nach. Der zweite Replikationssatz verfolgt nur Einfügungen nach und hat den gleichen Namen wie der erste Replikationssatz mit dem zusätzlichen Präfix „i“.

   ```
   SELECT pglogical.create_replication_set('replication_slot_name', false, true, true, false);
   SELECT pglogical.create_replication_set('ireplication_slot_name', true, false, false, true);
   ```

1. Fügen Sie dem Replikationssatz eine Tabelle hinzu.

   ```
   SELECT pglogical.replication_set_add_table('replication_slot_name', 'schemaname.tablename', true);
   SELECT pglogical.replication_set_add_table('ireplication_slot_name', 'schemaname.tablename', true);
   ```

1. Legen Sie das zusätzliche Verbindungsattribut (Extra Connection Attribute, ECA) wie folgt fest, wenn Sie Ihren Quellendpunkt erstellen.

   ```
   PluginName=PGLOGICAL;slotName=slot_name;
   ```

Sie können jetzt mithilfe des neuen Replikations-Slots eine reine CDC-Aufgabe mit einem nativen PostgreSQL-Startpunkt erstellen. Weitere Informationen zum Plug-in pglogical finden Sie in der [Dokumentation zu pglogical 3.7](https://www.enterprisedb.com/docs/pgd/3.7/pglogical/).

## Migration von PostgreSQL zu PostgreSQL mit AWS DMS
<a name="CHAP_Source.PostgreSQL.Homogeneous"></a>

Wenn Sie von einer anderen Datenbank-Engine als PostgreSQL zu einer PostgreSQL-Datenbank migrieren, AWS DMS ist dies fast immer das beste Migrationstool, das Sie verwenden können. Wenn Sie jedoch aus einer PostgreSQL-Datenbank auf eine PostgreSQL-Datenbank migrieren, können native PostgreSQL-Tools effektiver sein.

### Verwenden nativer PostgreSQL-Tools zur Datenmigration
<a name="CHAP_Source.PostgreSQL.Homogeneous.Native"></a>

Unter den folgenden Bedingungen empfehlen wir die Verwendung von PostgreSQL-Datenbank-Migrationstools wie `pg_dump`: 
+ Sie möchten eine homogene Migration durchführen, bei der die PostgreSQL-Ausgangsdatenbank auf eine PostgreSQL-Zieldatenbank migriert werden soll. 
+ Sie möchten eine komplette Datenbank migrieren.
+ Die nativen Tools erlauben Ihnen, Ihre Daten mit einer minimalen Ausfallzeit zu migrieren. 

Das Dienstprogramm pg\$1dump verwendet den Befehl COPY, um ein Schema sowie eine Daten-Dumpdatei einer PostgreSQL-Datenbank zu erstellen. Das durch pg\$1dump erzeugte Dump-Skript lädt Daten in eine Datenbank mit dem gleichen Namen und erstellt die Tabellen, Indizes und Fremdschlüssel neu. Verwenden Sie den Befehl `pg_restore` und den Parameter `-d`, um die Daten in einer Datenbank mit einem anderen Namen wiederherzustellen.

Wenn Sie Daten aus einer PostgreSQL-Quelldatenbank, die auf EC2 ausgeführt wird, auf ein Ziel in Amazon RDS für PostgreSQL migrieren, können Sie das Plug-in pglogical verwenden.

Weitere Informationen zum Importieren einer PostgreSQL-Datenbank in Amazon RDS für PostgreSQL oder die Amazon-Aurora-PostgreSQL-kompatible Edition finden Sie unter [https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html).

### Migration von Daten von PostgreSQL auf PostgreSQL mit DMS
<a name="CHAP_Source.PostgreSQL.Homogeneous.DMS"></a>

 AWS DMS kann Daten beispielsweise von einer lokalen PostgreSQL-Quelldatenbank auf eine Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-Zielinstanz migrieren. Kern- oder grundlegende PostgreSQL-Datentypen werden meist erfolgreich migriert.

**Anmerkung**  
Wenn Sie partitionierte Tabellen aus einer PostgreSQL-Quelle in ein PostgreSQL-Ziel replizieren, müssen Sie die übergeordnete Tabelle nicht als Teil der Auswahlkriterien in der DMS-Aufgabe angeben. Wenn Sie die übergeordnete Tabelle angeben, werden Daten in untergeordneten Tabellen auf dem Ziel dupliziert, was möglicherweise eine PK-Verletzung verursacht. Wenn in den Auswahlkriterien für die Tabellenzuordnung nur untergeordnete Tabellen ausgewählt werden, wird die übergeordnete Tabelle automatisch aufgefüllt.

Datentypen, die in der Quelldatenbank, aber nicht in der Zieldatenbank unterstützt werden, werden möglicherweise nicht erfolgreich migriert. AWS DMS streamt einige Datentypen als Zeichenfolgen, wenn der Datentyp unbekannt ist. Bei einigen Datentypen, wie z. B. XML und JSON, können kleine Dateien erfolgreich migriert werden, bei großen Dokumenten schlägt die Migration jedoch fehl. 

Beachten Sie bei der Datentypmigration Folgendes:
+ In einigen Fällen spezifiziert der PostgreSQL-Datentyp NUMERIC (p, s) keine Genauigkeit und Skalierung. Für DMS-Versionen 3.4.2 und früher verwendet DMS standardmäßig eine Präzision von 28 und eine Skalierung von 6, NUMERIC(28,6). Beispielsweise wird der Wert 0,611111104488373 von der Quelle in 0,611111 auf dem PostgreSQL-Ziel konvertiert.
+ Eine Tabelle mit einem ARRAY-Datentyp muss über einen Primärschlüssel verfügen. Eine Tabelle mit einem ARRAY-Datentyp ohne Primärschlüssel wird während Volllastvorgängen angehalten.

Die folgende Tabelle enthält PostgreSQL-Quelldatentypen sowie Erläuterungen dazu, ob diese erfolgreich migriert werden können:


| Datentyp | Wird erfolgreich migriert | Wird teilweise migriert | migriert nicht | Kommentare | 
| --- | --- | --- | --- | --- | 
| INTEGER | X |  |  |  | 
| SMALLINT | X |  |  |  | 
| BIGINT | X |  |  |  | 
| NUMERIC/DECIMAL(p,s) |  | X |  | Wobei 0 < p < 39 und 0 < s | 
| NUMERIC/DECIMAL |  | X |  | Wobei p > 38 oder p=s=0 | 
| REAL | X |  |  |  | 
| DOUBLE | X |  |  |  | 
| SMALLSERIAL | X |  |  |  | 
| SERIAL | X |  |  |  | 
| BIGSERIAL | X |  |  |  | 
| MONEY | X |  |  |  | 
| CHAR |  | X |  | Ohne angegebene Genauigkeit | 
| CHAR(n) | X |  |  |  | 
| VARCHAR |  | X |  | Ohne angegebene Genauigkeit | 
| VARCHAR (n) | X |  |  |  | 
| TEXT | X |  |  |  | 
| BYTEA | X |  |  |  | 
| TIMESTAMP (ZEITSTEMPEL) | X |  |  | Positive und negative Unendlichkeitswerte werden auf „9999-12-31 23:59:59“ bzw. „4713-01-01 00:00:00 BC“ gekürzt. | 
| TIMESTAMP WITH TIME ZONE |  | X |  |  | 
| DATE | X |  |  |  | 
| TIME | X |  |  |  | 
| TIME WITH TIME ZONE | X |  |  |  | 
| INTERVAL |  | X |  |  | 
| BOOLEAN | X |  |  |  | 
| ENUM |  |  | X |  | 
| CIDR | X |  |  |  | 
| INET |  |  | X |  | 
| MACADDR |  |  | X |  | 
| TSVECTOR |  |  | X |  | 
| TSQUERY |  |  | X |  | 
| XML |  | X |  |  | 
| POINT | X |  |  | PostGIS Spatial Data-Typ | 
| LINE |  |  | X |  | 
| LSEG |  |  | X |  | 
| BOX |  |  | X |  | 
| PATH |  |  | X |  | 
| POLYGON | X |  |  | PostGIS Spatial Data-Typ | 
| CIRCLE |  |  | X |  | 
| JSON |  | X |  |  | 
| ARRAY | X |  |  | Primärschlüssel erforderlich | 
| COMPOSITE |  |  | X |  | 
| RANGE |  |  | X |  | 
| LINESTRING | X |  |  | PostGIS Spatial Data-Typ | 
| MULTIPOINT | X |  |  | PostGIS Spatial Data-Typ | 
| MULTILINESTRING | X |  |  | PostGIS Spatial Data-Typ | 
| MULTIPOLYGON | X |  |  | PostGIS Spatial Data-Typ | 
| GEOMETRYCOLLECTION | X |  |  | PostGIS Spatial Data-Typ | 

### Migrieren räumlicher PostGIS-Datentypen
<a name="CHAP_Source.PostgreSQL.DataTypes.Spatial"></a>

*Räumliche Daten* identifizieren die Geometrieinformationen eines Objekts oder einer Position im Raum. Objektrelationale PostgreSQL-Datenbanken unterstützen räumliche PostGIS-Datentypen. 

Stellen Sie vor der Migration räumlicher PostgreSQL-Datenobjekte sicher, dass das Plug-in PostGIS auf globaler Ebene aktiviert ist. Dadurch wird sichergestellt, dass die exakten räumlichen Quelldatenspalten für die PostgreSQL-Ziel-DB-Instance AWS DMS erstellt werden.

 AWS DMS Unterstützt für homogene Migrationen von PostgreSQL zu PostgreSQL die Migration von geometrischen und geographischen (geodätischen Koordinaten) PostGIS-Datenobjekttypen und -Subtypen wie die folgenden:
+  POINT 
+  LINESTRING 
+  POLYGON 
+  MULTIPOINT 
+  MULTILINESTRING 
+  MULTIPOLYGON 
+  GEOMETRYCOLLECTION 

## Migration von Babelfish für Amazon Aurora PostgreSQL mit AWS DMS
<a name="CHAP_Source.PostgreSQL.Babelfish"></a>

Sie können die Quelltabellen von Babelfish for Aurora PostgreSQL auf alle unterstützten Zielendpunkte migrieren, indem Sie. AWS DMS

Wenn Sie Ihren AWS DMS Quellendpunkt mit der DMS-Konsole, der API oder den CLI-Befehlen erstellen, setzen Sie die Quelle auf **Amazon Aurora PostgreSQL** und den Datenbanknamen auf. **babelfish\$1db** Stellen Sie sicher, dass im Abschnitt **Endpunkteinstellungen** auf **Babelfish und auf den **DatabaseMode**Namen der Babelfish-T-SQL-Quelldatenbank** gesetzt **BabelfishDatabaseName**ist. Anstatt den Babelfish-TCP-Port zu verwenden**1433**, verwenden Sie den Aurora PostgreSQL-TCP-Port. **5432**

Sie müssen Ihre Tabellen erstellen, bevor Sie Daten migrieren, um sicherzustellen, dass DMS die richtigen Datentypen und Tabellenmetadaten verwendet. Wenn Sie Ihre Tabellen nicht auf dem Ziel erstellen, bevor Sie die Migration ausführen, erstellt DMS die Tabellen möglicherweise mit falschen Datentypen und Berechtigungen.

### Hinzufügen von Transformationsregeln zu Ihrer Migrationsaufgabe
<a name="CHAP_Source.PostgreSQL.Babelfish.Transform"></a>

Wenn Sie eine Migrationsaufgabe für eine Babelfish-Quelle erstellen, müssen Sie Transformationsregeln einbeziehen, die sicherstellen, dass DMS die vorab erstellten Zieltabellen verwendet.

Wenn Sie bei der Definition Ihres Babelfish for PostgreSQL-Clusters den Migrationsmodus für mehrere Datenbanken festgelegt haben, fügen Sie eine Transformationsregel hinzu, die den Schemanamen in das T-SQL-Schema umbenennt. Wenn der T-SQL-Schemaname beispielsweise lautet und Ihr Babelfish for PostgreSQL-Schemaname lautet`dbo`, benennen Sie das Schema um `mydb_dbo``dbo`, sodass es eine Transformationsregel verwendet. Den Namen des PostgreSQL-Schemas finden Sie unter [Babelfish-Architektur](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/babelfish-architecture.html) im *Amazon* Aurora Aurora-Benutzerhandbuch. 

Wenn Sie den Einzeldatenbankmodus verwenden, müssen Sie keine Transformationsregel verwenden, um Datenbankschemas umzubenennen. PostgreSQL-Schemanamen haben eine one-to-one Zuordnung zu den Schemanamen in der T-SQL-Datenbank.

Das folgende Beispiel für eine Transformationsregel zeigt, wie der Schemaname von `mydb_dbo` zurück in umbenannt wird: `dbo`

```
{
    "rules": [
        {
            "rule-type": "transformation",
            "rule-id": "566251737",
            "rule-name": "566251737",
            "rule-target": "schema",
            "object-locator": {
                "schema-name": "mydb_dbo"
            },
            "rule-action": "rename",
            "value": "dbo",
            "old-value": null
        },
        {
            "rule-type": "selection",
            "rule-id": "566111704",
            "rule-name": "566111704",
            "object-locator": {
                "schema-name": "mydb_dbo",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        }
    ]
}
```

### Einschränkungen für die Verwendung eines PostgreSQL-Quellendpunkts mit Babelfish-Tabellen
<a name="CHAP_Source.PostgreSQL.Babelfish.Limitations"></a>

Die folgenden Einschränkungen gelten, wenn Sie einen PostgreSQL-Quellendpunkt mit Babelfish-Tabellen verwenden:
+ DMS unterstützt nur die Migration von Babelfish Version 16.2/15.6 und höher sowie von DMS Version 3.5.3 und höher.
+ DMS repliziert keine Änderungen der Babelfish-Tabellendefinition auf den Zielendpunkt. Eine Behelfslösung für diese Einschränkung besteht darin, zuerst die Änderungen der Tabellendefinition auf das Ziel anzuwenden und dann die Tabellendefinition auf der Babelfish-Quelle zu ändern.
+ Wenn Sie Babelfish-Tabellen mit dem BYTEA-Datentyp erstellen, konvertiert DMS sie bei der Migration zu SQL Server als Ziel in den `varbinary(max)` Datentyp.
+ DMS unterstützt den Full-LOB-Modus für binäre Datentypen nicht. Verwenden Sie stattdessen den eingeschränkten LOB-Modus für binäre Datentypen.
+ DMS unterstützt keine Datenvalidierung für Babelfish als Quelle.
+ **Verwenden Sie für die Aufgabeneinstellung **Target-Tabellenvorbereitungsmodus** nur die Modi „**Nichts tun**“ oder „Kürzen“.** Verwenden Sie nicht den Modus **Tabellen am Ziel ablegen**. Wenn Sie **Drop-Tabellen auf Target** verwenden, erstellt DMS möglicherweise die Tabellen mit falschen Datentypen.
+ Wenn Sie die fortlaufende Replikation (CDC oder Volllast und CDC) verwenden, setzen Sie das `PluginName` zusätzliche Verbindungsattribut (ECA) auf. `TEST_DECODING`
+ DMS unterstützt keine Replikation (CDC oder Full Load und CDC) von partitionierten Tabellen für Babelfish als Quelle.

## AWS DMS Artefakte aus einer PostgreSQL-Quelldatenbank entfernen
<a name="CHAP_Source.PostgreSQL.CleanUp"></a>

 AWS DMS Erstellt zum Erfassen von DDL-Ereignissen verschiedene Artefakte in der PostgreSQL-Datenbank, wenn eine Migrationsaufgabe gestartet wird. Wenn die Aufgabe abgeschlossen ist, können Sie diese Artefakte entfernen.

Entfernen Sie die Artefakte, indem Sie die folgenden Anweisungen ausgeben (in der Reihenfolge, in der sie angezeigt werden), wobei `{AmazonRDSMigration}` das Schema ist, in dem die Artefakte erstellt wurden. Ein Schema sollte nur mit äußerster Vorsicht gelöscht werden. Löschen Sie nie ein Schema, das in Betrieb ist, besonders kein öffentliches.

```
drop event trigger awsdms_intercept_ddl;
```

Der Ereignisauslöser gehört keinem bestimmten Schema an.

```
drop function {AmazonRDSMigration}.awsdms_intercept_ddl()
drop table {AmazonRDSMigration}.awsdms_ddl_audit
drop schema {AmazonRDSMigration}
```

## Zusätzliche Konfigurationseinstellungen bei Verwendung einer PostgreSQL-Datenbank als DMS-Quelle
<a name="CHAP_Source.PostgreSQL.Advanced"></a>

Sie können zusätzliche Konfigurationseinstellungen für die Migration von Daten aus einer PostgreSQL-Datenbank auf zwei Weisen hinzufügen:
+ Sie können dem Attribut "Extra Connection" Werte hinzufügen, um DDL-Ereignisse zu erfassen und um das Schema anzugeben, in dem die betrieblichen DDL-Datenbankartefakte erstellt werden. Weitere Informationen finden Sie unter [Endpunkteinstellungen und zusätzliche Verbindungsattribute (ECAs) bei Verwendung von PostgreSQL als DMS-Quelle](#CHAP_Source.PostgreSQL.ConnectionAttrib).
+ Sie können Verbindungszeichenfolgenparameter außer Kraft setzen. Wählen Sie diese Option aus, um einen der folgenden Schritte auszuführen:
  + Geben Sie interne AWS DMS Parameter an. Solche Parameter sind selten erforderlich und werden daher nicht auf der Benutzeroberfläche angezeigt.
  + Geben Sie Pass-Through-Werte (Passthru) für den spezifischen Datenbankclient an. AWS DMS schließt Passthrough-Parameter in die Verbindungszeichenfolge ein, die an den Datenbankclient übergeben wird.
+ Mithilfe des Parameters auf Tabellenebene `REPLICA IDENTITY` in PostgreSQL-Versionen 9.4 und höher können Sie kontrollieren, welche Informationen in Write-Ahead-Logs () geschrieben werden. WALs Dies dient insbesondere dazu, Zeilen zu identifizieren, WALs die aktualisiert oder gelöscht werden. `REPLICA IDENTITY FULL`zeichnet die alten Werte aller Spalten in der Zeile auf. Gehen Sie bei jeder Tabelle `REPLICA IDENTITY FULL` vorsichtig `FULL` vor, da eine zusätzliche Anzahl WALs davon möglicherweise nicht erforderlich ist. Weitere Informationen finden Sie unter [ALTER TABLE-REPLICA IDENTITY](https://www.postgresql.org/docs/devel/sql-altertable.html). 

## Replica als Quelle für PostgreSQL lesen
<a name="CHAP_Source.PostgreSQL.ReadReplica"></a>

Verwenden Sie PostgreSQL-Read-Replicas als CDC-Quellen, um die Belastung der Primärdatenbank AWS DMS zu reduzieren. Diese Funktion ist ab PostgreSQL 16.x verfügbar und erfordert AWS DMS Version 3.6.1 oder höher. Die Verwendung von Read Replicas für die CDC-Verarbeitung reduziert die betrieblichen Auswirkungen auf Ihre Primärdatenbank.

**Anmerkung**  
Amazon RDS PostgreSQL Version 16.x hat Einschränkungen für die logische Read Replica-Replikation in den Three-AZ-Konfigurationen (TAZ). Für die vollständige Unterstützung der logischen Read Replica-Replikation in TAZ-Bereitstellungen müssen Sie PostgreSQL Version 17.x oder höher verwenden.

### Voraussetzungen
<a name="CHAP_Source.PostgreSQL.ReadReplica.prereq"></a>

Bevor Sie eine Read Replica als CDC-Quelle für verwenden AWS DMS, müssen Sie die logische Replikation sowohl auf der primären Datenbankinstanz als auch auf ihrer Read Replica aktivieren, um eine logische Dekodierung auf einer Read Replica zu erstellen. Führen Sie die folgenden Aktionen durch:
+ Aktivieren Sie die logische Replikation sowohl für Ihre primäre Datenbankinstanz als auch für deren Lesereplikat zusammen mit allen anderen erforderlichen Datenbankparametern. Weitere Informationen finden Sie unter [Arbeiten mit AWS-verwalteten PostgreSQL-Datenbanken als DMS-Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.RDSPostgreSQL).
+ Für reine CDC-Aufgaben erstellen Sie einen Replikationsslot auf der primären (Writer-) Instanz. Weitere Informationen finden Sie unter [Verwenden systemeigener CDC-Startpunkte zum Einrichten eines CDC-Ladens einer PostgreSQL-Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10). Diese Aktion ist erforderlich, da Read Replicas die Erstellung eines Replikationsslots nicht unterstützen.
+ Für PostgreSQL Version 16 muss der Slot manuell auf der Read Replica erstellt werden.
+ Für PostgreSQL Version 17 und höher muss der Replikationsslot auf der Primärseite erstellt werden, und er wird automatisch mit der Read Replica synchronisiert.
+ Bei Verwendung von Full Load \$1 CDC oder reinen CDC-Aufgaben AWS DMS können logische Replikationsslots auf primären Instances automatisch verwaltet werden, nicht jedoch auf Read Replicas. Bei Read Replicas der PostgreSQL Version 16 müssen Sie Replikationsslots manuell löschen und neu erstellen, bevor Sie eine Aufgabe neu starten (nicht fortsetzen). Das Überspringen dieses Schritts kann zu Aufgabenfehlern oder falschen CDC-Startpositionen führen. Ab PostgreSQL Version 17 automatisiert die logische Slot-Synchronisation von der primären Instanz aus diesen Prozess.

Nachdem Sie die Voraussetzungen erfüllt haben, können Sie in den Endpunkteinstellungen Ihren AWS DMS Quellendpunkt mit Replikation `SlotName` der Read Replica-Quelle einrichten und Ihre AWS DMS Aufgabe mithilfe systemeigener CDC-Startpunkte konfigurieren. Weitere Informationen finden Sie unter [Endpunkteinstellungen und Zusätzliche Verbindungsattribute (ECAs) bei Verwendung von PostgreSQL als DMS-Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.ConnectionAttrib) und [Verwenden systemeigener CDC-Startpunkte zum Einrichten einer CDC-Last einer](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10) PostgreSQL-Quelle.

## Verwenden der `MapBooleanAsBoolean` PostgreSQL-Endpunkteinstellung
<a name="CHAP_Source.PostgreSQL.ConnectionAttrib.Endpointsetting"></a>

Sie können PostgreSQL-Endpunkteinstellungen verwenden, um einen booleschen Wert aus Ihrer PostgreSQL-Quelle einem Amazon-Redshift-Ziel als booleschen Wert zuzuordnen. Standardmäßig wird ein BOOLEAN-Typ als varchar(5) migriert. Sie können `MapBooleanAsBoolean` angeben, damit PostgreSQL den booleschen Wert als booleschen Wert migriert, wie im folgenden Beispiel gezeigt.

```
--postgre-sql-settings '{"MapBooleanAsBoolean": true}'
```

Beachten Sie, dass Sie diese Einstellung sowohl am Quell- als auch am Zielendpunkt festlegen müssen, damit sie wirksam wird.

Da MySQL keinen BOOLEAN-Typ hat, sollten Sie bei der Migration von BOOLEAN-Daten nach MySQL eine Transformationsregel anstelle dieser Einstellung verwenden.

## Endpunkteinstellungen und zusätzliche Verbindungsattribute (ECAs) bei Verwendung von PostgreSQL als DMS-Quelle
<a name="CHAP_Source.PostgreSQL.ConnectionAttrib"></a>

Sie können Endpunkteinstellungen und zusätzliche Verbindungsattribute (ECAs) verwenden, um Ihre PostgreSQL-Quelldatenbank zu konfigurieren. Sie geben Endpunkteinstellungen an, wenn Sie den Quellendpunkt mithilfe der AWS DMS Konsole oder mithilfe des `create-endpoint` Befehls in [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), mit der `--postgre-sql-settings '{"EndpointSetting": "value", ...}'` JSON-Syntax erstellen.

Die folgende Tabelle zeigt die Endpunkteinstellungen ECAs , die Sie mit PostgreSQL als Quelle verwenden können.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.PostgreSQL.html)

## Einschränkungen bei Verwendung einer PostgreSQL-Datenbank als DMS-Quelle
<a name="CHAP_Source.PostgreSQL.Limitations"></a>

Die folgenden Einschränkungen gelten bei der Verwendung von PostgreSQL als Quelle für AWS DMS:
+ AWS DMS funktioniert nicht mit Amazon RDS for PostgreSQL 10.4 oder Amazon Aurora PostgreSQL 10.4, weder als Quelle noch als Ziel.
+ Eine erfasste Tabelle muss über einen Primärschlüssel verfügen. Wenn eine Tabelle keinen Primärschlüssel hat, werden DELETE- und UPDATE-Datensatzoperationen für diese Tabelle AWS DMS ignoriert. Informationen zur Problemumgehung finden Sie unter [Aktivieren der Erfassung von Datenänderungen (CDC) mithilfe logischer Replikation](#CHAP_Source.PostgreSQL.Security). 

  **Hinweis:** Wir empfehlen nicht, ohne Key/Unique Primärindex zu migrieren, da sonst zusätzliche Einschränkungen gelten, wie z. B. „KEINE“ Batch-Anwendungsfähigkeit, vollständige LOB-Fähigkeit, Datenvalidierung und die Unfähigkeit, effizient auf das Redshift-Ziel zu replizieren.
+ AWS DMS ignoriert den Versuch, ein Primärschlüsselsegment zu aktualisieren. In diesen Fällen identifiziert die Zieldatenbank die Aktualisierung als eine, die keine Zeilen aktualisiert hat. Da die Ergebnisse der Aktualisierung eines Primärschlüssels in PostgreSQL jedoch unvorhersehbar sind, werden keine Datensätze in die Ausnahmetabelle geschrieben.
+ AWS DMS unterstützt die Ausführungsoption „**Prozessänderungen anhand eines Zeitstempels starten**“ nicht.
+ AWS DMS repliziert keine Änderungen, die sich aus Partitions- oder Unterpartitionsoperationen (`ADD``DROP`, oder) ergeben. `TRUNCATE`
+ Die Replikation mehrerer Tabellen mit demselben Namen, wobei jeder Name eine andere Groß- und Kleinschreibung hat (z. B. Tabelle1, und Tabelle1) TABLE1, kann zu unvorhersehbarem Verhalten führen. Aufgrund dieses Problems wird diese Art der Replikation AWS DMS nicht unterstützt.
+  AWS DMS Unterstützt in den meisten Fällen die Änderungsverarbeitung der DDL-Anweisungen CREATE, ALTER und DROP für Tabellen. AWS DMS unterstützt diese Änderungsverarbeitung nicht, wenn sich die Tabellen in einem inneren Funktions- oder Prozedurtextblock oder in anderen verschachtelten Konstrukten befinden.

  Die folgende Änderung wird beispielsweise nicht erfasst:

  ```
  CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
  LANGUAGE plpgsql
  AS $$
  BEGIN
  create table attu.distributors1(did serial PRIMARY KEY,name
  varchar(40) NOT NULL);
  END;
  $$;
  ```
+ Derzeit werden `boolean`-Datentypen in einer PostgreSQL-Quelle als `bit`-Datentyp mit inkonsistenten Werten zu einem SQL-Server-Ziel migriert. Um dieses Problem zu umgehen, erstellen Sie die Tabelle vorab mit einem `VARCHAR(1)` Datentyp für die Spalte (oder lassen AWS DMS Sie die Tabelle erstellen). Dann lassen Sie die nachgeschaltete Verarbeitung ein „F“ als „False“ und ein „T“ als „True“ behandeln.
+ AWS DMS unterstützt keine Änderungsverarbeitung von TRUNCATE-Vorgängen.
+ Der OID LOB-Datentyp wird nicht auf das Ziel migriert.
+ AWS DMS unterstützt den PostGIS-Datentyp nur für homogene Migrationen.
+ Wenn es sich bei Ihrer Quelle um eine PostgreSQL-Datenbank handelt, die On-Premises oder auf einer Amazon-EC2-Instance ausgeführt wird, stellen Sie sicher, dass das Ausgabe-Plug-in test\$1decoding auf dem Quellendpunkt installiert ist. Sie finden dieses Plug-in im PostgreSQL-Paket contrib. Weitere Informationen zum Test-Decodier-Plugin finden Sie in der [PostgreSQL-Dokumentation](https://www.postgresql.org/docs/10/static/test-decoding.html).
+ AWS DMS unterstützt keine Änderungsverarbeitung zum Setzen und Löschen von Spaltenstandardwerten (unter Verwendung der ALTER COLUMN SET DEFAULT-Klausel für ALTER TABLE-Anweisungen).
+ AWS DMS unterstützt keine Änderungsverarbeitung, um die NULL-Zulässigkeit für Spalten festzulegen (unter Verwendung der ALTER COLUMN [SET\$1DROP] NOT NULL-Klausel für ALTER TABLE-Anweisungen).
+ Wenn die logische Replikation aktiviert ist, beträgt die maximale Anzahl von Änderungen, die pro Transaktion im Arbeitsspeicher gespeichert werden, 4 MB. Danach werden die Änderungen auf den Datenträger übertragen. Daher nimmt der Wert für `ReplicationSlotDiskUsage` zu und `restart_lsn` schreitet erst voran, wenn die Transaktion abgeschlossen oder angehalten und das Rollback beendet ist. Da es sich um eine lange Transaktion handelt, kann das Rollback lange dauern. Vermeiden Sie daher lang andauernde Transaktionen oder viele Untertransaktionen, wenn die logische Replikation aktiviert ist. Teilen Sie die Transaktion stattdessen in mehrere kleinere Transaktionen auf. 

  In Aurora PostgreSQL, Versionen 13 und höher, können Sie den `logical_decoding_work_mem` Parameter so einstellen, dass gesteuert wird, wann DMS-Daten auf die Festplatte übertragen. Weitere Informationen finden Sie unter [Dateien in Aurora PostgreSQL ausgeben](CHAP_Troubleshooting_Latency_Source_PostgreSQL.md#CHAP_Troubleshooting_Latency_Source_PostgreSQL_Spill).
+ Eine Tabelle mit einem ARRAY-Datentyp muss über einen Primärschlüssel verfügen. Eine Tabelle mit einem ARRAY-Datentyp ohne Primärschlüssel wird während Volllastvorgängen angehalten.
+ AWS DMS [unterstützt nicht die Migration von Tabellenmetadaten im Zusammenhang mit Tabellenpartitionierung oder Tabellenvererbung.](https://www.postgresql.org/docs/15/ddl-inherit.html) Wenn Sie AWS DMS auf eine partitionierte Tabelle oder eine Tabelle stoßen, die Vererbung verwendet, wird das folgende Verhalten beobachtet:
  + AWS DMS identifiziert und meldet sowohl übergeordnete als auch untergeordnete Tabellen, die an der Partitionierung oder Vererbung in der Quelldatenbank beteiligt sind.
  + **Tabellenerstellung auf Target**: AWS DMS Erstellt die Tabelle in der Zieldatenbank als Standardtabelle (nicht partitioniert, nicht vererbt), wobei die Struktur und Eigenschaften der ausgewählten Tabelle (n) beibehalten werden, jedoch nicht die Partitionierungs- oder Vererbungslogik.
  + **Differenzierung von Datensätzen in geerbten Tabellen**: Bei Tabellen, die Vererbung verwenden, werden Datensätze, die zu untergeordneten Tabellen gehören, beim Auffüllen der übergeordneten Tabelle AWS DMS nicht unterschieden. Daher werden keine SQL-Abfragen mit Syntax wie: `SELECT * FROM ONLY parent_table_name` verwendet.
+ Um partitionierte Tabellen aus einer PostgreSQL-Quelle auf ein PostgreSQL-Ziel zu replizieren, müssen Sie zunächst die über- und untergeordneten Tabellen im Ziel manuell erstellen. Definieren Sie anschließend eine separate Aufgabe, um auf diese Tabellen zu replizieren. Legen Sie die Aufgabenkonfiguration in solchen Fällen auf **Vor dem Laden kürzen** fest.
+ Der PostgreSQL-Datentyp `NUMERIC` verfügt über keine feste Größe. Wenn Sie Daten mit dem Datentyp `NUMERIC`, jedoch ohne Präzision und Skalierung übertagen, verwendet DMS standardmäßig `NUMERIC(28,6)` (mit 28 als Genauigkeit und 6 als Skalierung). Beispielsweise wird der Wert 0,611111104488373 von der Quelle auf dem PostgreSQL-Ziel in 0,611111 konvertiert.
+ AWS DMS unterstützt Aurora PostgreSQL Serverless V1 nur als Quelle für Volllastaufgaben. AWS DMS unterstützt Aurora PostgreSQL Serverless V2 als Quelle für Volllast-, Volllast- und CDC- und reine CDC-Aufgaben.
+ AWS DMS unterstützt nicht die Replikation einer Tabelle mit einem eindeutigen Index, der mit einer Koaleszenzfunktion erstellt wurde.
+ Wenn die Primärschlüsseldefinition für Quelle und Ziel nicht übereinstimmt, sind die Ergebnisse der Replikation möglicherweise nicht vorhersehbar.
+ Bei Verwendung des Features für paralleles Laden wird die Tabellensegmentierung nach Partitionen oder Unterpartitionen nicht unterstützt. Weitere Informationen zum parallelen Laden finden Sie unter [Verwendung des parallelen Ladens für ausgewählte Tabellen und Ansichten](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md#CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.ParallelLoad). 
+ AWS DMS unterstützt keine verzögerten Beschränkungen.
+ AWS DMS Version 3.4.7 unterstützt PostgreSQL 14.x als Quelle mit diesen Einschränkungen:
  + AWS DMS unterstützt keine Änderungsverarbeitung von zweiphasigen Commits.
  + AWS DMS unterstützt keine logische Replikation, um lange laufende Transaktionen zu streamen.
+ AWS DMS unterstützt CDC für Amazon RDS Proxy for PostgreSQL nicht als Quelle.
+ Bei der Verwendung von [Quellfiltern](CHAP_Tasks.CustomizingTasks.Filters.md), die keine Primärschlüsselspalte enthalten, werden `DELETE`-Operationen nicht erfasst.
+ Wenn Ihre Quelldatenbank auch ein Ziel für ein anderes Replikationssystem eines Drittanbieters ist, werden DDL-Änderungen während CDC möglicherweise nicht migriert. Diese Situation kann das Auslösen des Ereignisauslösers `awsdms_intercept_ddl` verhindern. Ändern Sie diesen Auslöser in der Quelldatenbank wie folgt, um das Problem zu umgehen:

  ```
  alter event trigger awsdms_intercept_ddl enable always;
  ```
+ AWS DMS unterstützt keine Replikation von Änderungen, die an Primärschlüsseldefinitionen in der Quelldatenbank vorgenommen wurden. Wenn die Primärschlüsselstruktur während einer aktiven Replikationsaufgabe geändert wird, werden nachfolgende Änderungen an den betroffenen Tabellen nicht auf das Ziel repliziert.
+ Bei der DDL-Replikation als Teil eines Skripts beträgt die maximale Gesamtzahl der DDL-Befehle pro Skript 8192 und die maximale Gesamtzahl der Zeilen pro Skript 8192 Zeilen.
+ AWS DMS unterstützt keine Materialized Views.
+ Bei Volllast- und CDC-Aufgaben, die eine Read Replica als Quelle verwenden, AWS DMS können keine Replikationsslots auf Read Replicas erstellt werden.

## Quelldatentypen für PostgreSQL
<a name="CHAP_Source-PostgreSQL-DataTypes"></a>

Die folgende Tabelle zeigt die PostgreSQL-Quelldatentypen, die bei der Verwendung unterstützt werden, AWS DMS und die Standardzuweisung zu AWS DMS Datentypen.

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 unter. [Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md)


|  PostgreSQL-Datentypen  |  DMS-Datentypen  | 
| --- | --- | 
|  INTEGER  |  INT4  | 
|  SMALLINT  |  INT2  | 
|  BIGINT  |  INT8  | 
|  NUMERIC (p,s)  |  Wenn die Präzision 0 bis 38 ist, verwenden Sie NUMERIC. Wenn die Präzision 39 oder größer ist, verwenden Sie STRING.  | 
|  DECIMAL(P,S)  |  Wenn die Präzision 0 bis 38 ist, verwenden Sie NUMERIC. Wenn die Präzision 39 oder größer ist, verwenden Sie STRING.  | 
|  REAL  |  REAL4  | 
|  DOUBLE  |  REAL8  | 
|  SMALLSERIAL  |  INT2  | 
|  SERIAL  |  INT4  | 
|  BIGSERIAL  |  INT8  | 
|  MONEY  |  NUMERIC(38,4) Der Datentyp MONEY ist in SQL Server FLOAT zugeordnet.  | 
|  CHAR  |  WSTRING (1)  | 
|  CHAR(N)  |  WSTRING (n)  | 
|  VARCHAR(N)  |  WSTRING (n)  | 
|  TEXT  |  NCLOB  | 
|  ZITATEXT  |  NCLOB  | 
|  BYTEA  |  BLOB  | 
|  TIMESTAMP (ZEITSTEMPEL)  |  DATETIME  | 
|  TIMESTAMP WITH TIME ZONE  |  DATETIME  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIME WITH TIME ZONE  |  TIME  | 
|  INTERVAL  |  STRING (128) – 1 JAHR, 2 MONATE, 3 TAGE, 4 STUNDEN, 5 MINUTEN, 6 SEKUNDEN  | 
|  BOOLEAN  |  CHAR (5) "false" oder "true"  | 
|  ENUM  |  STRING (64)  | 
|  CIDR  |  STRING (50)  | 
|  INET  |  STRING (50)  | 
|  MACADDR  |  STRING (18)  | 
|  BIT (n)  |  STRING (n)  | 
|  BIT VARYING (n)  |  STRING (n)  | 
|  UUID  |  STRING  | 
|  TSVECTOR  |  CLOB  | 
|  TSQUERY  |  CLOB  | 
|  XML  |  CLOB  | 
|  POINT  |  STRING (255) "(x,y)"  | 
|  LINE  |  STRING (255) "(x,y,z)"  | 
|  LSEG  |  STRING (255) "((x1,y1),(x2,y2))"  | 
|  BOX  |  STRING (255) "((x1,y1),(x2,y2))"  | 
|  PATH  |  CLOB "((x1,y1),(xn,yn))"  | 
|  POLYGON  |  CLOB "((x1,y1),(xn,yn))"  | 
|  CIRCLE  |  STRING (255) "(x,y),r"  | 
|  JSON  |  NCLOB  | 
|  JSONB  |  NCLOB  | 
|  ARRAY  |  NCLOB  | 
|  COMPOSITE  |  NCLOB  | 
|  HSTORE  |  NCLOB  | 
|  INT4REICHWEITE  |  STRING (255)  | 
|  INT8REICHWEITE  |  STRING (255)  | 
|  NUMRANGE  |  STRING (255)  | 
|  STRRANGE  |  STRING (255)  | 

### Arbeiten mit LOB-Quelldatentypen für PostgreSQL
<a name="CHAP_Source-PostgreSQL-DataTypes-LOBs"></a>

PostgreSQL-Spaltengrößen wirken sich auf die Konvertierung von PostgreSQL-LOB-Datentypen in AWS DMS -Datentypen aus. Um damit zu arbeiten, führen Sie für die folgenden AWS DMS -Datentypen folgende Schritte aus:
+ BLOB – Legen Sie bei der Aufgabenerstellung für **LOB-Grenze begrenzen auf** den Wert **Maximale LOB-Größe (KB)** fest.
+ CLOB — Bei der Replikation wird jedes Zeichen als ein UTF8 Zeichen behandelt. Suchen Sie daher nach der Länge des längsten Zeichentextes in der Spalte, hier als `max_num_chars_text` gezeigt. Nutzen Sie diese Länge, um den Wert für **LOB-Größe begrenzen auf** anzugeben. Wenn die Daten 4-Byte-Zeichen enthalten, multiplizieren Sie diese mit 2, um den Wert **Limit LOB size to (LOB-Größe begrenzen auf)** festzulegen, da dieser in Bytes angegeben wird. In diesem Fall ist **Limit LOB size to (LOB-Größe begrenzen auf)** gleich `max_num_chars_text`, multipliziert mit 2.
+ NCLOB – Die Replikation verarbeitet jedes Zeichen als Doppelbyte-Zeichen. Suchen Sie daher nach der Länge des längsten Zeichentextes in der Spalte (`max_num_chars_text`) und multiplizieren ihn mit 2. Auf diese Weise geben Sie den Wert für **LOB-Größe begrenzen auf** an. In diesem Fall ist **Limit LOB size to (LOB-Größe begrenzen auf)** gleich `max_num_chars_text`, multipliziert mit 2. Wenn die Daten 4-Byte-Zeichen enthalten, multiplizieren Sie diese erneut mit 2. In diesem Fall ist **Limit LOB size to (LOB-Größe begrenzen auf)** gleich `max_num_chars_text`, multipliziert mit 4.

# Verwendung einer MySQL-kompatiblen Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.MySQL"></a>

Mit dem Database Migration Service können Sie Daten aus jeder MySQL-kompatiblen Datenbank (MySQL, MariaDB oder Amazon Aurora MySQL) migrieren. AWS 

Hinweise zu Versionen von MySQL, die als Quelle AWS DMS unterstützt werden, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md). 

Sie können mit SSL Verbindungen zwischen Ihrem MySQL-kompatiblen Endpunkt und der Replikations-Instance verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem MySQL-kompatiblen Endpunkt finden Sie unter [Verwenden von SSL mit AWS Database Migration Service](CHAP_Security.SSL.md).

In den folgenden Abschnitten bezieht sich der Begriff „selbstverwaltet“ auf Datenbanken, die entweder On-Premises oder in Amazon EC2 installiert sind. Der Begriff „von AWS verwaltet“ bezieht sich auf Datenbanken in Amazon RDS, Amazon Aurora oder Amazon S3.

Weitere Informationen zur Arbeit mit MySQL-kompatiblen Datenbanken und finden Sie in den AWS DMS folgenden Abschnitten.

**Topics**
+ [Migration von MySQL zu MySQL mit AWS DMS](#CHAP_Source.MySQL.Homogeneous)
+ [Verwendung einer beliebigen MySQL-kompatiblen Datenbank als Quelle für AWS DMS](#CHAP_Source.MySQL.Prerequisites)
+ [Verwendung einer selbstverwalteten MySQL-kompatiblen Datenbank als Quelle für AWS DMS](#CHAP_Source.MySQL.CustomerManaged)
+ [Verwendung einer AWS-verwalteten MySQL-kompatiblen Datenbank als Quelle für AWS DMS](#CHAP_Source.MySQL.AmazonManaged)
+ [Einschränkungen bei der Verwendung einer MySQL-Datenbank als Quelle für AWS DMS](#CHAP_Source.MySQL.Limitations)
+ [Unterstützung für XA-Transaktionen](#CHAP_Source.MySQL.XA)
+ [Endpunkteinstellungen bei Verwendung von MySQL als Quelle für AWS DMS](#CHAP_Source.MySQL.ConnectionAttrib)
+ [Quelldatentypen für MySQL](#CHAP_Source.MySQL.DataTypes)

**Anmerkung**  
Bei der Konfiguration von AWS Database Migration Service (AWS DMS) -Zuordnungsregeln ist es wichtig, Platzhalter (%) für Datenbank- oder Schemanamen zu vermeiden. Stattdessen müssen Sie explizit nur die vom Benutzer erstellten Datenbanken angeben, die migriert werden müssen. Die Verwendung eines Platzhalterzeichens schließt alle Datenbanken in den Migrationsprozess ein, einschließlich Systemdatenbanken, die auf der Zielinstanz nicht erforderlich sind. Da der MySQL Amazon RDS-Mastbenutzer nicht über die erforderlichen Berechtigungen verfügt, um Daten in Zielsystemdatenbanken zu importieren, schlägt der Versuch fehl, diese Systemdatenbanken zu migrieren.

## Migration von MySQL zu MySQL mit AWS DMS
<a name="CHAP_Source.MySQL.Homogeneous"></a>

Für eine heterogene Migration, bei der Sie von einer anderen Datenbank-Engine als MySQL zu einer MySQL-Datenbank migrieren, AWS DMS ist dies fast immer das beste Migrationstool. Für eine homogene Migration, bei der Sie von einer MySQL-Datenbank auf eine MySQL-Datenbank migrieren, empfehlen wir jedoch, ein Migrationsprojekt für homogene Datenmigrationen zu verwenden. Bei homogenen Datenmigrationen werden native Datenbanktools verwendet, um im Vergleich zu AWS DMS eine bessere Leistung und Genauigkeit bei der Datenmigration zu erzielen.

## Verwendung einer beliebigen MySQL-kompatiblen Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.MySQL.Prerequisites"></a>

Bevor Sie beginnen, mit einer MySQL-Datenbank als Quelle für zu arbeiten AWS DMS, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen. Diese Voraussetzungen gelten entweder für selbstverwaltete oder für AWS-verwaltete Quellen.

Sie müssen über ein Konto verfügen AWS DMS , das die Rolle des Replikationsadministrators innehat. Die Rolle benötigt die folgenden Berechtigungen:
+ **REPLICATION CLIENT** – Diese Berechtigung ist nur für CDC-Aufgaben erforderlich. Mit anderen Worten, für full-load-only Aufgaben ist dieses Recht nicht erforderlich. 
**Anmerkung**  
Für MariaDB Version 10.5.2\$1 können Sie BINLOG MONITOR verwenden — es ist ein Ersatz für REPLICATION CLIENT.
+ **REPLICATION SLAVE** – Diese Berechtigung ist nur für CDC-Aufgaben erforderlich. Mit anderen Worten, full-load-only Aufgaben benötigen dieses Recht nicht.
+ **SUPER** – Diese Berechtigung ist nur für MySQL-Versionen vor 5.6.6 erforderlich.

Der AWS DMS Benutzer muss außerdem über SELECT-Rechte für die Quelltabellen verfügen, die für die Replikation vorgesehen sind.

Gewähren Sie die folgenden Rechte, wenn Sie MySQL-spezifische Tests vor der Migration verwenden:

```
grant select on mysql.user to <dms_user>;
grant select on mysql.db to <dms_user>;
grant select on mysql.tables_priv to <dms_user>;
grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
grant select on performance_schema.replication_connection_status to <dms_user>;  #Required for primary instance validation - MySQL version 5.7 and higher only
```

Wenn Sie eine RDS-Quelle verwenden und planen, MySQL-spezifische Tests vor der Migration durchzuführen, fügen Sie die folgende Berechtigung hinzu:

```
grant select on mysql.rds_configuration to <dms_user>;  #Required for binary log retention check
```

Wenn der Parameter `BatchEnable` ist, muss `true` er Folgendes gewähren:

```
grant create temporary tables on `<schema>`.* to <dms_user>;
```

## Verwendung einer selbstverwalteten MySQL-kompatiblen Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.MySQL.CustomerManaged"></a>

Sie können die folgenden selbstverwalteten MySQL-kompatiblen Datenbanken als Quellen für AWS DMS verwenden:
+ MySQL Community Edition
+ MySQL Standard Edition
+ MySQL Enterprise Edition
+ MySQL Cluster Carrier Grade Edition
+ MariaDB Community Edition
+ MariaDB Enterprise Edition
+ MariaDB Column Store

Stellen Sie sicher, dass die binäre Protokollierung aktiviert ist, damit Sie CDC verwenden können. Um die binäre Protokollierung zu aktivieren, müssen die folgenden Parameter in der MySQL-Datei `my.ini` (Windows) oder `my.cnf` (UNIX) konfiguriert werden.


| Parameter | Wert | 
| --- | --- | 
| `server_id` | Legen Sie diesen Parameter auf einen Wert von 1 oder größer fest. | 
| `log-bin` | Legen Sie den Pfad zur binären Protokolldatei fest, z. B. `log-bin=E:\MySql_Logs\BinLog`. Schließen Sie nicht die Dateierweiterung ein. | 
| `binlog_format` | Legen Sie diesen Parameter auf `ROW` fest. Wir empfehlen, diese Einstellung während der Replikation zu verwenden, da es in gewissen Fällen zu Inkonsistenzen bei der Replikation von Daten auf das Ziel kommen kann, wenn `binlog_format` auf `STATEMENT` festgelegt ist. Die Datenbank-Engine schreibt auch ähnlich inkonsistente Daten in das Ziel, wenn `binlog_format` auf `MIXED` festgelegt ist, da die Datenbank-Engine automatisch zur `STATEMENT`-basierten Protokollierung wechselt. Dies kann dazu führen, dass inkonsistente Daten in die Zieldatenbank geschrieben werden. | 
| `expire_logs_days` | Legen Sie diesen Parameter auf einen Wert von 1 oder größer fest. Um zu verhindern, dass zu viel Speicherplatz verwendet wird, empfehlen wir, nicht den Standardwert 0 zu verwenden. | 
| `binlog_checksum` | Setzen Sie diesen Parameter `NONE` für DMS-Version 3.4.7 oder früher auf. | 
| `binlog_row_image` | Legen Sie diesen Parameter auf `FULL` fest. | 
| `log_slave_updates` | Setzen Sie diesen Parameter auf `TRUE`, wenn Sie eine Read Replica von MySQL oder MariaDB als Quelle verwenden. | 

Wenn Sie eine MySQL- oder MariaDB-Read-Replica als Quelle für eine DMS-Migrationsaufgabe im Modus **Vorhandene Daten migrieren und laufende Änderungen replizieren** verwenden, besteht die Möglichkeit eines Datenverlusts. Unter den folgenden Bedingungen schreibt DMS weder bei Volllast noch bei CDC eine Transaktion:
+ Die Transaktion wurde vor dem Start der DMS-Aufgabe für die primäre Instanz festgeschrieben.
+ Die Transaktion wurde aufgrund der Verzögerung zwischen der primären Instanz und dem Replikat erst nach dem Start der DMS-Aufgabe für das Replikat festgeschrieben.

Je länger die Verzögerung zwischen der primären Instanz und dem Replikat ist, desto größer ist die Gefahr eines Datenverlusts.

Sofern Ihre Quelle die (geclusterte) NDB-Datenbank-Engine nutzt, müssen die folgenden Parameter konfiguriert werden, um CDC auf Tabellen zu aktivieren, die diese Speicher-Engine verwenden. Fügen Sie diese Änderungen in der MySQL-Datei `my.ini` (Windows) oder `my.cnf` (UNIX) hinzu.


| Parameter | Wert | 
| --- | --- | 
| `ndb_log_bin` | Legen Sie diesen Parameter auf `ON` fest. Dieser Wert stellt sicher, dass Änderungen in geclusterten Tabellen im binären Protokoll protokolliert werden. | 
| `ndb_log_update_as_write` | Legen Sie diesen Parameter auf `OFF` fest. Dieser Wert verhindert das Schreiben von UPDATE-Anweisungen als INSERT-Anweisungen in das Binärprotokoll. | 
| `ndb_log_updated_only` | Legen Sie diesen Parameter auf `OFF` fest. Dieser Wert stellt sicher, dass das Binärprotokoll die gesamte Zeile enthält und nicht nur die geänderten Spalten. | 

## Verwendung einer AWS-verwalteten MySQL-kompatiblen Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.MySQL.AmazonManaged"></a>

Sie können die folgenden AWS verwalteten MySQL-kompatiblen Datenbanken als Quellen für verwenden: AWS DMS
+ MySQL Community Edition
+ MariaDB Community Edition
+ Amazon Aurora MySQL-Compatible Edition

Wenn Sie eine von AWS-managed MySQL-kompatible Datenbank als Quelle für verwenden, stellen Sie sicher AWS DMS, dass Sie die folgenden Voraussetzungen für CDC erfüllen:
+ Aktivieren Sie automatische Backups auf Instance-Ebene, um Binärprotokolle für RDS für MySQL und für RDS für MariaDB zu aktivieren. Ändern Sie die Variable `binlog_format` in der Parametergruppe, um Binärprotokolle für einen Aurora-MySQL-Cluster zu aktivieren.

  Weitere Informationen zum Einrichten von automatischen Backups finden Sie unter [Working with automated backups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html) im *Benutzerhandbuch für Amazon RDS*.

  Weitere Informationen zum Einrichten der Binärprotokollierung für eine Datenbank von Amazon RDS für MySQL finden Sie unter [Setting the binary logging format](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html) im *Benutzerhandbuch für Amazon RDS*. 

  Weitere Informationen zum Einrichten der Binärprotokollierung für einen Aurora-MySQL-Cluster finden Sie unter [Wie aktiviere ich die Binärprotokollierung für meinen Amazon-Aurora-MySQL-kompatiblen Cluster?](https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/). 
+ Wenn Sie CDC verwenden möchten, aktivieren Sie die Binärprotokollierung. Weitere Informationen zum Einrichten der Binärprotokollierung für eine Datenbank von Amazon RDS für MySQL finden Sie unter [Setting the binary logging format](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html) im *Benutzerhandbuch für Amazon RDS*.
+ Stellen Sie sicher, dass die Binärprotokolle für verfügbar sind. AWS DMS Da AWS-managed MySQL-kompatible Datenbanken die Binärprotokolle so schnell wie möglich löschen, sollten Sie die Dauer erhöhen, für die die Protokolle verfügbar bleiben. Um z. B. die Aufbewahrungszeit der Protokolle auf 24 Stunden zu verlängern, führen Sie den folgenden Befehl aus. 

  ```
   call mysql.rds_set_configuration('binlog retention hours', 24);
  ```
+ Stellen Sie den Parameter `binlog_format` auf `"ROW"` ein.
**Anmerkung**  
In MySQL oder MariaDB ist `binlog_format` ein dynamischer Parameter, sodass kein Neustart erforderlich ist, damit der neue Wert wirksam wird. Der neue Wert gilt jedoch nur für neue Sitzungen. Wenn Sie `binlog_format` zu Replikationszwecken in `ROW` ändern, kann Ihre Datenbank weiterhin nachfolgende Binärprotokolle mit dem Format `MIXED` erstellen, sofern diese Sitzungen gestartet wurden, bevor der Wert geändert wurde. Dadurch wird möglicherweise AWS DMS verhindert, dass alle Änderungen in der Quelldatenbank ordnungsgemäß erfasst werden. Wenn Sie die Einstellung `binlog_format` für eine MariaDB- oder MySQL-Datenbank ändern, starten Sie die Datenbank unbedingt neu, um alle vorhandenen Sitzungen zu beenden, oder starten Sie alle Anwendungen neu, die Data Manipulation Language (DML)-Operationen ausführen. Wenn Sie Ihre Datenbank zwingen, alle Sitzungen neu zu starten, nachdem Sie den `binlog_format` Parameter geändert haben, `ROW` wird sichergestellt, dass Ihre Datenbank alle nachfolgenden Änderungen an der Quelldatenbank im richtigen Format schreibt, sodass diese Änderungen ordnungsgemäß erfasst werden AWS DMS können.
+ Stellen Sie den Parameter `binlog_row_image` auf `"Full"` ein. 
+ Setzen Sie den `binlog_checksum` Parameter `"NONE"` für DMS-Version 3.4.7 oder früher auf. Weitere Informationen zum Festlegen von Parametern in Amazon RDS MySQL finden Sie unter [Working with automated backups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html) im *Benutzerhandbuch für Amazon RDS*.
+ Wenn Sie ein Lesereplikat von Amazon RDS MySQL oder Amazon RDS MariaDB als Quelle verwenden, aktivieren Sie für das Lesereplikat Backups und stellen Sie sicher, dass der Parameter `log_slave_updates` auf `TRUE` gesetzt ist.

## Einschränkungen bei der Verwendung einer MySQL-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.MySQL.Limitations"></a>

Wenn Sie eine MySQL-Datenbank als Quelle verwenden, sollten Sie Folgendes beachten:
+  Die Erfassung von Datenänderungen (Change Data Capture, CDC) wird für Amazon RDS MySQL 5.5 oder frühere Versionen nicht unterstützt. Für Amazon RDS MySQL müssen Sie die Version 5.6, 5.7 oder 8.0 verwenden, um CDC zu aktivieren. CDC wird für selbstverwaltete MySQL-5.5-Quellen unterstützt. 
+ Für CDC werden `CREATE TABLE`, `ADD COLUMN` und `DROP COLUMN` zur Änderung des Spaltendatentyps und `renaming a column` unterstützt. `DROP TABLE`, `RENAME TABLE` und Änderungen an anderen Attributen wie beispielsweise Standard-Spaltenwert, Nullfähigkeit für Spalten, Zeichensatz usw. werden jedoch nicht unterstützt.
+  Wenn Sie für partitionierte Tabellen auf der Quelle den **Target-Tabellenvorbereitungsmodus** auf **Tabellen auf Ziel löschen** setzen, AWS DMS wird eine einfache Tabelle ohne Partitionen auf dem MySQL-Ziel erstellt. Wenn Sie partitionierte Tabellen in eine partitionierte Tabelle auf dem Ziel migrieren möchten, erstellen Sie zunächst die partitionierten Tabellen in der MySQL-Zieldatenbank.
+  Die Verwendung einer `ALTER TABLE table_name ADD COLUMN column_name` Anweisung zum Hinzufügen von Spalten am Anfang (FIRST) oder in der Mitte einer Tabelle (AFTER) wird für relationale Ziele nicht unterstützt. Spalten werden stets am Ende der Tabelle hinzugefügt. Wenn das Ziel Amazon S3 oder Amazon Kinesis Data Streams ist, wird das Hinzufügen von Spalten mit FIRST oder AFTER unterstützt.
+ CDC wird nicht unterstützt, wenn ein Tabellenname Groß- und Kleinbuchstaben enthält und die Quell-Engine auf einem Betriebssystem mit Dateinamen ohne Berücksichtigung von Groß-/Kleinschreibung gehostet wird. Ein Beispiel dafür ist Microsoft Windows oder OS X mit HFS\$1.
+ Sie können Aurora MySQL-Compatible Edition Serverless v1 für Volllast verwenden, aber Sie können sie nicht für CDC verwenden. Dies liegt daran, dass Sie die Voraussetzungen für MySQL nicht aktivieren können. Weitere Informationen finden Sie unter [Parameter groups and Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.parameter-groups). 

  Aurora MySQL-Compatible Edition Serverless v2 unterstützt CDC.
+  Das Attribut AUTO\$1INCREMENT auf einer Spalte wird nicht zu einer Spalte in der Zieldatenbank migriert.
+  Das Erfassen von Änderungen, wenn die Binärprotokolle nicht auf Standardblockspeicher gespeichert sind, wird nicht unterstützt. Beispiel: CDC funktioniert nicht, wenn die Binärprotokolle auf Amazon S3 gespeichert werden.
+  AWS DMS erstellt standardmäßig Zieltabellen mit der InnoDB-Speicher-Engine. Falls Sie eine andere Speicher-Engine als InnoDB benötigen, müssen Sie die Tabelle manuell erstellen und dann die Daten mit dem Modus [do nothing](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) migrieren.
+ Sie können Aurora MySQL-Repliken nicht als Quelle verwenden, AWS DMS es sei denn, Ihr DMS-Migrationsaufgabenmodus lautet **Vorhandene Daten migrieren** — nur Volllast.
+  Wenn die MySQL-kompatible Quelle bei Volllast gestoppt wird, wird die AWS DMS Aufgabe nicht mit einem Fehler beendet. Die Aufgabe wird erfolgreich abgeschlossen, aber das Ziel wurde möglicherweise nicht mit der Quelle synchronisiert. Wenn dies geschieht, starten Sie entweder die Aufgabe neu oder Sie laden die betroffenen Tabellen neu.
+  Indizes, die auf einem Teil des Spaltenwerts erstellt wurden, werden nicht migriert. Beispielsweise wird der Index CREATE INDEX first\$1ten\$1chars ON customer (name(10)) nicht auf dem Ziel erstellt.
+ In einigen Fällen ist die Aufgabe so konfiguriert, dass sie nicht repliziert wird LOBs (“ SupportLobs "ist in den Aufgabeneinstellungen falsch oder in der Task-Konsole wurde die **Option LOB-Spalten nicht einbeziehen** ausgewählt). In diesen Fällen migriert AWS DMS keine MEDIUMBLOB-, LONGBLOB-, MEDIUMTEXT- und LONGTEXT-Spalten zum Ziel.

  Spalten des Typs BLOB, TINYBLOB, TEXT und TINYTEXT sind davon nicht betroffen und werden zum Ziel migriert.
+ Temporäre Datentabellen oder systemversionierte Tabellen werden in MariaDB-Quell- und Zieldatenbanken nicht unterstützt.
+ Bei der Migration zwischen zwei Amazon RDS Aurora MySQL-Clustern muss es sich beim RDS Aurora MySQL-Quellendpunkt um eine read/write Instance und nicht um eine Replikat-Instance handeln. 
+ AWS DMS unterstützt derzeit keine Migration von Ansichten für MariaDB.
+ AWS DMS unterstützt keine DDL-Änderungen für partitionierte Tabellen für MySQL. Setzen Sie `skipTableSuspensionForPartitionDdl` auf `true`, um das Sperren von Tabellen bei DDL-Änderungen an Partitionen während CDC zu überspringen.
+ AWS DMS unterstützt nur XA-Transaktionen in Version 3.5.0 und höher. Frühere Versionen unterstützen keine XA-Transaktionen. AWS DMS unterstützt keine XA-Transaktionen in MariaDB Version 10.6 oder höher. Weitere Informationen finden Sie im Folgenden. [Unterstützung für XA-Transaktionen](#CHAP_Source.MySQL.XA)
+ AWS DMS wird nicht GTIDs für die Replikation verwendet, auch wenn die Quelldaten sie enthalten. 
+ AWS DMS unterstützt das erweiterte Binärprotokoll von Aurora MySQL nicht.
+ AWS DMS unterstützt keine Komprimierung von binären Protokolltransaktionen.
+ AWS DMS verbreitet die Ereignisse ON DELETE CASCADE und ON UPDATE CASCADE nicht für MySQL-Datenbanken unter Verwendung der InnoDB-Speicher-Engine. Für diese Ereignisse generiert MySQL keine Binlog-Ereignisse, um die kaskadierten Operationen in den untergeordneten Tabellen widerzuspiegeln. Folglich AWS DMS können die entsprechenden Änderungen nicht in die untergeordneten Tabellen repliziert werden. Weitere Informationen finden Sie unter [Indizes, Fremdschlüssel oder kaskadierende Aktualisierungen oder Löschungen wurden nicht migriert](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.FKsAndIndexes).
+ AWS DMS erfasst keine Änderungen an berechneten (`VIRTUAL`und`GENERATED ALWAYS`) Spalten. Gehen Sie wie folgt vor, um diese Einschränkung zu umgehen:
  + Erstellen Sie die Zieltabelle vorab in der Zieldatenbank und erstellen Sie die AWS DMS -Aufgabe mit der Einstellung `DO_NOTHING` oder `TRUNCATE_BEFORE_LOAD` für Aufgaben mit vollständigem Laden.
  + Fügen Sie eine Transformationsregel hinzu, um die berechnete Spalte aus dem Aufgabenbereich zu entfernen. Informationen zu Transformationsregeln finden Sie unter [Transformationsregeln und Aktionen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md).
+ Aufgrund interner MySQL-Einschränkungen AWS DMS können BINLOGs nicht mehr als 4 GB verarbeitet werden. BINLOGs Eine Größe von mehr als 4 GB kann zu Fehlern bei DMS-Aufgaben oder anderem unvorhersehbarem Verhalten führen. Sie müssen die Größe der Transaktionen reduzieren, um eine Größe von mehr als 4 GB BINLOGs zu vermeiden.
+ AWS DMS unterstützt keine Backticks (```) oder einfache Anführungszeichen (`'`) in Schema-, Tabellen- und Spaltennamen.
+ AWS DMS migriert keine Daten aus unsichtbaren Spalten in Ihrer Quelldatenbank. Um diese Spalten in Ihren Migrationsbereich aufzunehmen, verwenden Sie die ALTER TABLE-Anweisung, um diese Spalten sichtbar zu machen.

## Unterstützung für XA-Transaktionen
<a name="CHAP_Source.MySQL.XA"></a>

Eine Extended Architecture (XA)-Transaktion ist eine Transaktion, die verwendet werden kann, um eine Reihe von Operationen aus mehreren Transaktionsressourcen in einer einzigen, zuverlässigen globalen Transaktion zusammenzufassen. Eine XA-Transaktion verwendet ein zweiphasiges Commit-Protokoll. Im Allgemeinen kann die Erfassung von Änderungen während offener XA-Transaktionen zu Datenverlust führen. Wenn Ihre Datenbank keine XA-Transaktionen verwendet, können Sie diese Berechtigung und die Konfiguration ignorieren, `IgnoreOpenXaTransactionsCheck` indem Sie den Standardwert verwenden. `TRUE` Gehen Sie wie folgt vor, um mit der Replikation aus einer Quelle zu beginnen, die XA-Transaktionen enthält:
+ Stellen Sie sicher, dass der AWS DMS Endpunktbenutzer über die folgenden Rechte verfügt:

  ```
  grant XA_RECOVER_ADMIN on *.* to 'userName'@'%';
  ```
+ Setzen Sie die Endpunkteinstellung `IgnoreOpenXaTransactionsCheck` auf `false`.

**Anmerkung**  
AWS DMS unterstützt keine XA-Transaktionen auf MariaDB Source DB Version 10.6 oder höher.

## Endpunkteinstellungen bei Verwendung von MySQL als Quelle für AWS DMS
<a name="CHAP_Source.MySQL.ConnectionAttrib"></a>

Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer MySQL-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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), mit der `--my-sql-settings '{"EndpointSetting": "value", ...}'` JSON-Syntax erstellen.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit MySQL als Quelle verwenden können.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.MySQL.html)

## Quelldatentypen für MySQL
<a name="CHAP_Source.MySQL.DataTypes"></a>

Die folgende Tabelle zeigt die Quelldatentypen der MySQL-Datenbank, die bei der Verwendung unterstützt werden, AWS DMS sowie die Standardzuweisung von AWS DMS Datentypen.

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

Weitere Hinweise zu AWS DMS Datentypen finden Sie unter[Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  MySQL-Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
|  INT  |  INT4  | 
|  BIGINT  |  INT8  | 
|  MEDIUMINT  |  INT4  | 
|  TINYINT  |  INT1  | 
|  SMALLINT  |  INT2  | 
|  UNSIGNED TINYINT  |  UINT1  | 
|  UNSIGNED SMALLINT  |  UINT2  | 
|  UNSIGNED MEDIUMINT  |  UINT4  | 
|  UNSIGNED INT  |  UINT4  | 
|  UNSIGNED BIGINT  |  UINT8  | 
|  DECIMAL(10)  |  NUMERIC (10,0)  | 
|  BINARY  |  BYTES(1)  | 
|  BIT  |  BOOLEAN  | 
|  BIT(64)  |  BYTES(8)  | 
|  BLOB  |  BYTES(65535)  | 
|  LONGBLOB  |  BLOB  | 
|  MEDIUMBLOB  |  BLOB  | 
|  TINYBLOB  |  BYTES(255)  | 
|  DATE  |  DATE  | 
|  DATETIME  |  DATETIME DATETIME ohne einen Wert in Klammern wird ohne Millisekunden repliziert. DATETIME mit einem Wert zwischen 1 und 5 in Klammern (z. B. `DATETIME(5)`) wird mit Millisekunden repliziert. Bei der Replikation einer DATETIME-Spalte bleibt die Uhrzeit im Ziel gleich. Sie wird nicht in UTC konvertiert.  | 
|  TIME  |  STRING  | 
|  TIMESTAMP (ZEITSTEMPEL)  |  DATETIME Bei der Replikation einer TIMESTAMP-Spalte wird die Uhrzeit im Ziel in UTC konvertiert.  | 
|  JAHR  |  INT2  | 
|  DOUBLE  |  REAL8  | 
|  FLOAT  |  REAL(DOUBLE) Wenn die FLOAT-Werte nicht im folgenden Bereich liegen, verwenden Sie eine Transformation, um FLOAT auf STRING abzubilden. Weitere Informationen zu Umwandlungen finden Sie unter [Transformationsregeln und Aktionen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md). Der unterstützte FLOAT-Bereich ist -1,79E\$1308 bis -2,23E-308, 0 und 2,23E-308 bis 1,79E\$1308.  | 
|  VARCHAR (45)  |  WSTRING (45)  | 
|  VARCHAR (2000)  |  WSTRING (2000)  | 
|  VARCHAR (4000)  |  WSTRING (4000)  | 
|  VARBINARY (4000)  |  BYTES (4000)  | 
|  VARBINARY (2000)  |  BYTES (2000)  | 
|  CHAR  |  WSTRING  | 
|  TEXT  |  WSTRING  | 
|  LONGTEXT  |  NCLOB  | 
|  MEDIUMTEXT  |  NCLOB  | 
|  TINYTEXT  |  WSTRING(255)  | 
|  GEOMETRY  |  BLOB  | 
|  POINT  |  BLOB  | 
|  LINESTRING  |  BLOB  | 
|  POLYGON  |  BLOB  | 
|  MULTIPOINT  |  BLOB  | 
|  MULTILINESTRING  |  BLOB  | 
|  MULTIPOLYGON  |  BLOB  | 
|  GEOMETRYCOLLECTION  |  BLOB  | 
|  ENUM  |  ZEICHENFOLGE () *length* Hier *length* ist die Länge des längsten Werts in der ENUM-Datei.  | 
|  SET  |  ZEICHENFOLGE () *length* Hier *length* ist die Gesamtlänge aller Werte im SET, einschließlich Kommas.  | 
|  JSON  |  CLOB  | 

**Anmerkung**  
In einigen Fällen können Sie die Datentypen DATETIME und TIMESTAMP mit einem „Null“-Wert (d. h. 0000-00-00) angeben. Stellen Sie in diesem Fall sicher, dass die Zieldatenbank in der Replikationsaufgabe „Null“-Werte für die Datentypen DATETIME und TIMESTAMP unterstützt. Andernfalls werden diese Werte als "null" im Ziel erfasst.

# Verwendung einer SAP ASE-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.SAP"></a>

Sie können Daten aus einer SAP Adaptive Server Enterprise (ASE) -Datenbank — früher bekannt als Sybase — migrieren mit. AWS DMS Mit einer SAP ASE-Datenbank als Quelle können Sie Daten in jede der anderen unterstützten Zieldatenbanken migrieren. AWS DMS 

Hinweise zu Versionen von SAP ASE, die als Quelle AWS DMS unterstützt werden, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md).

Weitere Informationen zur Arbeit mit SAP ASE-Datenbanken und AWS DMS finden Sie in den folgenden Abschnitten.

**Topics**
+ [Voraussetzungen für die Verwendung einer SAP ASE-Datenbank als Quelle für AWS DMS](#CHAP_Source.SAP.Prerequisites)
+ [Einschränkungen bei der Verwendung von SAP ASE als Quelle für AWS DMS](#CHAP_Source.SAP.Limitations)
+ [Für die Verwendung von SAP ASE als Quelle sind Berechtigungen erforderlich für AWS DMS](#CHAP_Source.SAP.Security)
+ [Entfernen des Kürzungspunkts](#CHAP_Source.SAP.Truncation)
+ [Endpunkteinstellungen bei Verwendung von SAP ASE als Quelle für AWS DMS](#CHAP_Source.SAP.ConnectionAttrib)
+ [Quelldatentypen für SAP ASE](#CHAP_Source.SAP.DataTypes)

## Voraussetzungen für die Verwendung einer SAP ASE-Datenbank als Quelle für AWS DMS
<a name="CHAP_Source.SAP.Prerequisites"></a>

Gehen Sie wie folgt vor, damit eine SAP ASE-Datenbank als Quelle dienen AWS DMS kann:
+ Aktivieren Sie die SAP ASE-Replikation für Tabellen mit dem Befehl `sp_setreptable`. Weitere Informationen finden Sie unter [Sybase-Infocenter-Archiv]( http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc32410_1501/html/refman/X37830.htm). 
+ Deaktivieren Sie `RepAgent` auf der SAP ASE-Datenbank. Weitere Informationen finden Sie unter [Den RepAgent Thread in der Primärdatenbank beenden und deaktivieren](http://infocenter-archive.sybase.com/help/index.jsp?topic=/com.sybase.dc20096_1260/html/mra126ag/mra126ag65.htm). 
+ Um auf einer Windows EC2-Instance, die für nicht-lateinische Zeichen (z. B. Chinesisch) konfiguriert ist, auf SAP ASE Version 15.7 zu replizieren, installieren Sie SAP ASE 15.7 SP121 auf dem Zielcomputer.

**Anmerkung**  
Für die laufende CDC-Replikation (Change Data Capture, Erfassung von Datenänderungen) führt DMS `dbcc logtransfer` und `dbcc log` aus, um Daten aus dem Transaktionsprotokoll zu lesen.

## Einschränkungen bei der Verwendung von SAP ASE als Quelle für AWS DMS
<a name="CHAP_Source.SAP.Limitations"></a>

Die folgenden Einschränkungen gelten, wenn Sie eine SAP ASE-Datenbank als Quelle für AWS DMS verwenden:
+ Sie können für jede SAP ASE-Datenbank nur eine AWS DMS Aufgabe mit laufender Replikation oder CDC ausführen. Sie können mehrere full-load-only Aufgaben parallel ausführen.
+ Es ist nicht möglich, eine Tabelle umzubenennen. Beispielsweise schlägt der folgende Befehl fehl:

  ```
  sp_rename 'Sales.SalesRegion', 'SalesReg;
  ```
+ Es ist nicht möglich, eine Spalte umzubenennen. Beispielsweise schlägt der folgende Befehl fehl:

  ```
  sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';
  ```
+ Nullwerte am Ende von Zeichenfolgen binären Datentyps werden gekürzt, wenn sie in der Zieldatenbank repliziert werden. Beispielsweise wird `0x0000000000000000000000000100000100000000` in der Quelltabelle zu `0x00000000000000000000000001000001` in der Zieltabelle.
+ Wenn die Datenbankstandardeinstellung so eingestellt ist, dass keine NULL-Werte zulässig sind, AWS DMS wird die Zieltabelle mit Spalten erstellt, die keine NULL-Werte zulassen. Wenn eine Volllast- oder CDC-Replikationsaufgabe leere Werte enthält, wird daher ein AWS DMS Fehler ausgegeben. Sie können diese Fehler verhindern, indem Sie mithilfe der folgenden Befehle NULL-Werte in der Quelldatenbank zulassen.

  ```
  sp_dboption database_name, 'allow nulls by default', 'true'
  go
  use database_name
  CHECKPOINT
  go
  ```
+ Der Indexbefehl `reorg rebuild` wird nicht unterstützt.
+ AWS DMS unterstützt weder Cluster noch die Verwendung von MSA (Multi-Site Availability) /Warm Standby als Quelle.
+ Wenn der Transformations-Header-Ausdruck `AR_H_TIMESTAMP` in Zuordnungsregeln verwendet wird, werden die Millisekunden für eine hinzugefügte Spalte nicht erfasst.
+ Das Ausführen von Zusammenführungsoperationen während CDC resultiert in einem Fehler, der nicht behoben werden kann. Führen Sie einen Volllastvorgang aus, um das Ziel wieder zu synchronisieren.
+ Rollback-Auslöser-Ereignisse werden für Tabellen, die ein Sperrschema für Datenzeilen verwenden, nicht unterstützt.
+ AWS DMS kann eine Replikationsaufgabe nicht fortsetzen, nachdem eine Tabelle innerhalb des Aufgabenbereichs aus einer SAP-Quelldatenbank gelöscht wurde. Wenn die DMS-Replikationsaufgabe angehalten und eine DML-Operation (INSERT, UPDATE, DELETE) ausgeführt und anschließend die Tabelle gelöscht wurde, müssen Sie die Replikationsaufgabe neu starten.

## Für die Verwendung von SAP ASE als Quelle sind Berechtigungen erforderlich für AWS DMS
<a name="CHAP_Source.SAP.Security"></a>

Um eine SAP ASE-Datenbank als Quelle in einer AWS DMS Aufgabe zu verwenden, müssen Sie Berechtigungen erteilen. Erteilen Sie dem in den AWS DMS Datenbankdefinitionen angegebenen Benutzerkonto die folgenden Berechtigungen in der SAP ASE-Datenbank: 
+ sa\$1role
+ replication\$1role
+ sybase\$1ts\$1role
+ Wenn Sie über die Berechtigung zum Ausführen der `sp_setreptable` gespeicherten Prozedur verfügen müssen, ist standardmäßig die SAP ASE-Replikationsoption AWS DMS aktiviert. Wenn Sie eine Tabelle direkt vom Datenbankendpunkt aus und nicht über sie AWS DMS selbst ausführen `sp_setreptable` möchten, können Sie das `enableReplication` zusätzliche Verbindungsattribut verwenden. Weitere Informationen finden Sie unter [Endpunkteinstellungen bei Verwendung von SAP ASE als Quelle für AWS DMS](#CHAP_Source.SAP.ConnectionAttrib).

## Entfernen des Kürzungspunkts
<a name="CHAP_Source.SAP.Truncation"></a>

Wenn eine Aufgabe gestartet AWS DMS wird, wird ein `$replication_truncation_point` Eintrag in der `syslogshold` Systemansicht erstellt, der darauf hinweist, dass ein Replikationsvorgang im Gange ist. Während der Ausführung AWS DMS wird der Abschneidepunkt für die Replikation in regelmäßigen Abständen entsprechend der Datenmenge, die bereits auf das Ziel kopiert wurde, verschoben.

Nachdem der `$replication_truncation_point` Eintrag eingerichtet wurde, sollten Sie die AWS DMS Aufgabe weiterlaufen lassen, um zu verhindern, dass das Datenbankprotokoll zu groß wird. Wenn Sie die AWS DMS Aufgabe dauerhaft beenden möchten, entfernen Sie den Abschneidepunkt für die Replikation, indem Sie den folgenden Befehl ausführen:

```
dbcc settrunc('ltm','ignore')
```

Nachdem der Kürzungspunkt entfernt wurde, können Sie die AWS DMS Aufgabe nicht fortsetzen. Das Protokoll wird weiterhin automatisch an den Checkpoints gekürzt (falls automatische Kürzung eingestellt ist).

## Endpunkteinstellungen bei Verwendung von SAP ASE als Quelle für AWS DMS
<a name="CHAP_Source.SAP.ConnectionAttrib"></a>

Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer SAP-ASE-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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), mit der `--sybase-settings '{"EndpointSetting": "value", ...}'` JSON-Syntax erstellen.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit SAP ASE als Quelle verwenden können.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.SAP.html)

## Quelldatentypen für SAP ASE
<a name="CHAP_Source.SAP.DataTypes"></a>

Eine Liste der SAP ASE-Quelldatentypen, die bei der Verwendung von Datentypen unterstützt werden, AWS DMS sowie die Standardzuordnung von AWS DMS Datentypen finden Sie in der folgenden Tabelle. AWS DMS unterstützt keine SAP ASE-Quelltabellen mit Spalten des Datentyps Benutzerdefinierter Typ (UDT). Replizierte Spalten mit diesem Datentyp werden als NULL erstellt. 

Weitere Informationen zum Anzeigen des Datentyps, der im Ziel zugewiesen ist, finden Sie im Abschnitt [Ziele für die Datenmigration](CHAP_Target.md) für Ihren Zielendpunkt.

Weitere Hinweise zu AWS DMS Datentypen finden Sie unter. [Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md)


|  SAP ASE-Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
| BIGINT | INT8 | 
| UNSIGNED BIGINT | UINT8 | 
| INT | INT4 | 
| UNSIGNED INT | UINT4 | 
| SMALLINT | INT2 | 
| UNSIGNED SMALLINT | UINT2 | 
| TINYINT | UINT1 | 
| DECIMAL | NUMERIC | 
| NUMERIC | NUMERIC | 
| FLOAT | REAL8 | 
| DOUBLE | REAL8 | 
| REAL | REAL4 | 
| MONEY | NUMERIC | 
| SMALLMONEY | NUMERIC | 
| DATETIME | DATETIME | 
| BIGDATETIME | DATETIME(6) | 
| SMALLDATETIME | DATETIME | 
| DATE | DATE | 
| TIME | TIME | 
| BIGTIME | TIME | 
| CHAR | STRING | 
| UNICHAR | WSTRING | 
| NCHAR | WSTRING | 
| VARCHAR | STRING | 
| UNIVARCHAR | WSTRING | 
| NVARCHAR | WSTRING | 
| BINARY | BYTES | 
| VARBINARY | BYTES | 
| BIT | BOOLEAN | 
| TEXT | CLOB | 
| UNITEXT | NCLOB | 
| IMAGE | BLOB | 

# MongoDB als Quelle verwenden für AWS DMS
<a name="CHAP_Source.MongoDB"></a>

 Hinweise zu Versionen von MongoDB, die als Quelle AWS DMS unterstützt werden, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md). 

Beachten Sie Folgendes im Zusammenhang mit der Unterstützung der MongoDB-Versionen:
+ Versionen von AWS DMS 3.4.5 und höher unterstützen die MongoDB-Versionen 4.2 und 4.4. 
+ Versionen von AWS DMS 3.4.5 und höher sowie Versionen von MongoDB 4.2 und höher unterstützen verteilte Transaktionen. Weitere Informationen zu verteilten MongoDB-Transaktionen finden Sie unter [Transactions](https://docs.mongodb.com/manual/core/transactions/) in der [Dokumentation zu MongoDB](https://www.mongodb.com/docs/).
+ Versionen von AWS DMS 3.5.0 und höher unterstützen keine Versionen von MongoDB vor 3.6.
+ Versionen von AWS DMS 3.5.1 und höher unterstützen MongoDB Version 5.0.
+ Versionen von AWS DMS 3.5.2 und höher unterstützen MongoDB Version 6.0.
+ Versionen von AWS DMS 3.5.4 und höher unterstützen MongoDB Version 7.0 und 8.0.



Falls Sie noch keine Erfahrung mit MongoDB haben, beachten Sie die folgenden wichtigen MongoDB-Datenbankkonzepte: 
+ Ein Datensatz in MongoDB ist ein *Dokument*, bei dem es sich um eine Datenstruktur aus Feld-Wert-Paaren handelt. Der Wert eines Felds kann andere Dokumente, Arrays und Dokument-Arrays enthalten. Ein Dokument entspricht etwa einer Zeile in einer relationalen Datenbanktabelle.
+ Eine *Sammlung* ist in MongoDB eine Gruppe von Dokumente und entspricht in etwa einer Tabelle in einer relationalen Datenbank.
+ Eine *Datenbank* in MongoDB ist ein Satz von Sammlungen und entspricht in etwa einem Schema in einer relationalen Datenbank.
+ Intern wird ein MongoDB-Dokument als binäre JSON-Datei (BSON) in einem komprimierten Format gespeichert, das einen Typ für jedes Feld im Dokument enthält. Jedes Dokument hat eine eindeutige ID.

AWS DMS unterstützt zwei Migrationsmodi, wenn MongoDB als Quelle verwendet wird: den *Dokumentmodus oder den* *Tabellenmodus*. Sie geben den zu verwendenden Migrationsmodus während der Erstellung des MongoDB-Endpunkts oder durch Festlegen des Parameters **Metadatenmodus** in der AWS DMS -Konsole an. Optional können Sie eine zweite Spalte mit der Bezeichnung `_id` erstellen, die als Primärschlüssel fungiert, indem Sie im Endpunktkonfigurationsbereich das Häkchen für **\$1id als separate Spalte** setzen. 

Der ausgewählte Migrationsmodus wirkt sich wie nachstehend erläutert auf das resultierende Format der Zieldaten aus. 

**Dokumentmodus**  
Im Dokumentmodus wird das MongoDB-Dokument unverändert migriert. Dies bedeutet, dass die Dokumentdaten in einer einzelnen Spalte mit dem Namen `_doc` in einer Zieltabelle zusammengefasst werden. Der Dokumentmodus ist die Standardeinstellung, wenn Sie MongoDB als Quellendpunkt verwenden.  
Nehmen wir als Beispiel die folgenden Dokumente in einer MongoDB-Sammlung mit dem Namen "myCollection".  

```
 db.myCollection.find()
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 }
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
```
Nach der Migration der Daten in eine relationale Datenbanktabelle mit Dokumentmodus sind die Daten folgendermaßen strukturiert. Die Datenfelder im MongoDB-Dokument sind in der Spalte ` _doc` zusammengefasst.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.MongoDB.html)
Sie können optional den `extractDocID` des zusätzlichen Verbindungsattributs auf *true* einstellen, um eine zweite Spalte mit dem Namen `"_id"` zu erstellen, die als Primärschlüssel fungiert. Sie müssen diesen Parameter auf *true* setzen, wenn Sie CDC verwenden möchten.  
*Wenn Sie CDC mit Quellen verwenden, die [Transaktionen mit mehreren Dokumenten](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction) erzeugen, **muss der `ExtractDocId` Parameter auf true gesetzt werden**.* Wenn dieser Parameter nicht aktiviert ist, schlägt die AWS DMS Aufgabe fehl, wenn sie auf eine Transaktion mit mehreren Dokumenten trifft.  
 AWS DMS Verwaltet im Dokumentmodus die Erstellung und Umbenennung von Sammlungen wie folgt:  
+ Wenn Sie der Quelldatenbank eine neue Sammlung hinzufügen, AWS DMS wird eine neue Zieltabelle für die Sammlung erstellt und alle Dokumente repliziert. 
+ Wenn Sie eine vorhandene Sammlung in der Quelldatenbank umbenennen, benennt AWS DMS die Zieltabelle nicht um. 
Wenn der Zielendpunkt Amazon DocumentDB ist, führen Sie die Migration im **Dokumentmodus** aus.

**Tabellenmodus**  
 AWS DMS Transformiert im Tabellenmodus jedes Feld der obersten Ebene in einem MongoDB-Dokument in eine Spalte in der Zieltabelle. Wenn ein Feld verschachtelt ist, werden die verschachtelten AWS DMS Werte zu einer einzigen Spalte zusammengefasst. AWS DMS fügt dann dem Spaltensatz der Zieltabelle ein Schlüsselfeld und Datentypen hinzu.   
 AWS DMS Fügt für jedes MongoDB-Dokument jeden Schlüssel und Typ zum Spaltensatz der Zieltabelle hinzu. Wenn Sie beispielsweise den Tabellenmodus verwenden, wird das vorherige Beispiel in die folgende Tabelle AWS DMS migriert.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.MongoDB.html)
Verschachtelte Werte werden in einer Spalte mit durch Punkte getrennte Schlüsselnamen auf eine Ebene gebracht. Die Spalte erhält als Name die Namensverkettung der reduzierten Felder, die durch Punkte voneinander getrennt sind. AWS DMS Migriert beispielsweise ein JSON-Dokument mit einem Feld mit verschachtelten Werten, z. B. `{"a" : {"b" : {"c": 1}}}` in eine Spalte mit dem Namen `a.b.c.`  
Um die Zielspalten zu erstellen, AWS DMS scannt eine bestimmte Anzahl von MongoDB-Dokumenten und erstellt einen Satz aller Felder und ihrer Typen. AWS DMS verwendet dann diesen Satz, um die Spalten der Zieltabelle zu erstellen. Wenn Sie Ihren MongoDB-Quellendpunkt mithilfe der Konsole erstellen oder ändern, können Sie die Anzahl der zu scannenden Dokumente angeben. Der Standardwert ist 1000 Dokumente. Wenn Sie das verwenden AWS CLI, können Sie das zusätzliche Verbindungsattribut verwenden`docsToInvestigate`.  
 AWS DMS Verwaltet Dokumente und Sammlungen im Tabellenmodus wie folgt:  
+ Wenn Sie ein Dokument zu einer vorhandenen Sammlung hinzufügen, wird das Dokument repliziert. Wenn es Felder gibt, die am Ziel nicht vorhanden sind, werden diese Felder nicht repliziert.
+ Wenn Sie ein Dokument aktualisieren, wird das aktualisierte Dokument repliziert. Wenn es Felder gibt, die am Ziel nicht vorhanden sind, werden diese Felder nicht repliziert.
+ Das Löschen eines Dokuments wird vollständig unterstützt.
+ Das Hinzufügen einer neuen Sammlung führt nicht zu einer neuen Tabelle in der Zieldatenbank, wenn der Vorgang zeitgleich mit einer CDC-Aufgabe erfolgt.
+ In der CDC-Phase (Change Data Capture) wird das Umbenennen einer Sammlung AWS DMS nicht unterstützt.

**Topics**
+ [Erforderliche Berechtigungen bei der Verwendung von MongoDB als Quelle für AWS DMS](#CHAP_Source.MongoDB.PrerequisitesCDC)
+ [Konfigurieren eines MongoDB-Replikatsatzes für CDC](#CHAP_Source.MongoDB.PrerequisitesCDC.ReplicaSet)
+ [Sicherheitsanforderungen bei der Verwendung von MongoDB als Quelle für AWS DMS](#CHAP_Source.MongoDB.Security)
+ [Segmentieren von MongoDB-Sammlungen und parallele Migration](#CHAP_Source.MongoDB.ParallelLoad)
+ [Migration mehrerer Datenbanken bei Verwendung von MongoDB als Quelle für AWS DMS](#CHAP_Source.MongoDB.Multidatabase)
+ [Einschränkungen bei der Verwendung von MongoDB als Quelle für AWS DMS](#CHAP_Source.MongoDB.Limitations)
+ [Endpunktkonfigurationseinstellungen bei Verwendung von MongoDB als Quelle für AWS DMS](#CHAP_Source.MongoDB.Configuration)
+ [Quelldatentypen für MongoDB](#CHAP_Source.MongoDB.DataTypes)

## Erforderliche Berechtigungen bei der Verwendung von MongoDB als Quelle für AWS DMS
<a name="CHAP_Source.MongoDB.PrerequisitesCDC"></a>

Für eine AWS DMS Migration mit einer MongoDB-Quelle können Sie entweder ein Benutzerkonto mit Root-Rechten oder einen Benutzer mit Berechtigungen nur für die zu migrierende Datenbank erstellen. 

Der folgende Code erstellt einen Benutzer als Stammkonto.

```
use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  }
)
```

Für eine MongoDB-3.x-Quelle wird mit dem folgenden Code ein Benutzer mit minimalen Berechtigungen für die zu migrierende Datenbank erstellt.

```
use database_to_migrate
db.createUser( 
{ 
    user: "dms-user",
    pwd: "password",
    roles: [ { role: "read", db: "local" }, "read"] 
})
```

Für eine MongoDB-4.x-Quelle wird mit dem folgenden Code ein Benutzer mit minimalen Berechtigungen erstellt.

```
{ resource: { db: "", collection: "" }, actions: [ "find", "changeStream" ] }
```

Erstellen Sie beispielsweise die folgende Rolle in der Datenbank „admin“.

```
use admin
db.createRole(
{
role: "changestreamrole",
privileges: [
{ resource: { db: "", collection: "" }, actions: [ "find","changeStream" ] }
],
roles: []
}
)
```

Nachdem die Rolle erstellt wurde, erstellen Sie einen Benutzer in der zu migrierenden Datenbank.

```
 use test
> db.createUser( 
{ 
user: "dms-user12345",
pwd: "password",
roles: [ { role: "changestreamrole", db: "admin" }, "read"] 
})
```

## Konfigurieren eines MongoDB-Replikatsatzes für CDC
<a name="CHAP_Source.MongoDB.PrerequisitesCDC.ReplicaSet"></a>

Um die fortlaufende Replikation oder CDC mit MongoDB zu verwenden, AWS DMS ist Zugriff auf das MongoDB-Betriebsprotokoll (oplog) erforderlich. Zum Erstellen des Protokolls "oplog" müssen Sie einen Replikatsatz bereitstellen, sofern keiner vorhanden ist. Weitere Informationen finden Sie in der [MongoDB-Dokumentation](https://docs.mongodb.com/manual/tutorial/deploy-replica-set/).

Sie können CDC mit dem primären oder sekundären Knoten eines MongoDB-Replikatsatzes als Quellendpunkt verwenden.

**So wandeln Sie eine eigenständige Instance in einen Replikatsatz um**

1. Stellen Sie über die Befehlszeile eine Verbindung mit `mongo` her.

   ```
   mongo localhost
   ```

1. Stoppen Sie den Service `mongod`.

   ```
   service mongod stop
   ```

1. Starten Sie `mongod` mit dem folgenden Befehl neu:

   ```
   mongod --replSet "rs0" --auth -port port_number
   ```

1. Testen Sie die Verbindung zum Replikatsatz mithilfe der folgenden Befehle:

   ```
   mongo -u root -p password --host rs0/localhost:port_number 
     --authenticationDatabase "admin"
   ```

Wenn Sie eine Migration im Dokumentmodus durchführen möchten, wählen Sie beim Erstellen des MongoDB-Endpunkts die Option `_id as a separate column` aus. Bei Auswahl dieser Option wird eine zweite Spalte namens `_id` erstellt, die als Primärschlüssel fungiert. Diese zweite Spalte ist erforderlich, AWS DMS um DML-Operationen (Data Manipulation Language) zu unterstützen.

**Anmerkung**  
AWS DMS verwendet das Betriebsprotokoll (Oplog), um Änderungen während der laufenden Replikation aufzuzeichnen. Wenn MongoDB die Datensätze aus dem Oplog löscht, bevor sie AWS DMS gelesen werden, schlagen Ihre Aufgaben fehl. Wir empfehlen, die Oplog-Größe so zu ändern, dass die Änderungen mindestens 24 Stunden lang beibehalten werden. 

## Sicherheitsanforderungen bei der Verwendung von MongoDB als Quelle für AWS DMS
<a name="CHAP_Source.MongoDB.Security"></a>

AWS DMS unterstützt zwei Authentifizierungsmethoden für MongoDB. Die beiden Authentifizierungsmethoden werden verwendet, um das Passwort zu verschlüsseln, daher werden sie nur verwendet, wenn der Parameter `authType` auf *PASSWORD* festgelegt ist.

Die MongoDB-Authentifizierungsmethoden sind:
+ **MONGODB-CR** – für die Abwärtskompatibilität
+ **SCRAM-SHA-1** – die Standardeinstellung bei Verwendung von MongoDB-Version 3.x und 4.0

Wenn keine Authentifizierungsmethode angegeben ist, verwendet AWS DMS die Standardmethode für die Version der MongoDB-Quelle.

## Segmentieren von MongoDB-Sammlungen und parallele Migration
<a name="CHAP_Source.MongoDB.ParallelLoad"></a>

Um die Leistung einer Migrationsaufgabe zu verbessern, unterstützen MongoDB-Quellendpunkte zwei Optionen für paralleles vollständiges Laden bei der Tabellenzuordnung. 

Anders ausgedrückt: Sie können eine Sammlung parallel migrieren, indem Sie entweder die automatische Segmentierung oder die Bereichssegmentierung mit der Tabellenzuordnung für paralleles vollständiges Laden in den JSON-Einstellungen verwenden. Mit der automatischen Segmentierung können Sie die Kriterien für die automatische Segmentierung Ihrer Quelle für AWS DMS die Migration in jedem Thread angeben. Mit der Bereichssegmentierung können Sie AWS DMS den spezifischen Bereich jedes Segments angeben, das DMS in jedem Thread migrieren soll. Weitere Informationen zu diesen Einstellungen finden Sie unter [Regeln und Operationen für Tabellen- und Sammlungseinstellungen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md).

### Parallele Migration einer MongoDB-Datenbank mithilfe von Bereichen für die automatische Segmentierung
<a name="CHAP_Source.MongoDB.ParallelLoad.AutoPartitioned"></a>

Sie können Ihre Dokumente parallel migrieren, indem Sie die Kriterien angeben, nach denen AWS DMS Ihre Daten für jeden Thread automatisch partitionieren (segmentieren) soll. Insbesondere geben Sie die Anzahl an Dokumenten an, die pro Thread migriert werden sollen. Mit diesem Ansatz wird AWS DMS versucht, die Segmentgrenzen zu optimieren, um eine maximale Leistung pro Thread zu erzielen.

Sie können die Segmentierungskriterien mithilfe der folgenden Tabelleneinstellungsoptionen in der Tabellenzuordnung angeben.


|  Tabelleneinstellungsoption  |  Description  | 
| --- | --- | 
|  `"type"`  |  (Erforderlich) Setzen Sie dies für MongoDB als Quelle auf `"partitions-auto"`.  | 
|  `"number-of-partitions"`  |  (Optional) Gesamtzahl der für die Migration verwendeten Partitionen (Segmente). Der Standardwert ist 16.  | 
|  `"collection-count-from-metadata"`  |  (Optional) Wenn diese Option auf `true` gesetzt ist, verwendet AWS DMS eine geschätzte Sammlungsanzahl, um die Anzahl von Partitionen zu bestimmen. Wenn diese Option auf gesetzt ist`false`, wird die tatsächliche Anzahl der Sammlungen AWS DMS verwendet. Der Standardwert ist `true`.  | 
|  `"max-records-skip-per-page"`  |  (Optional) Die Anzahl der Datensätze, die bei der Festlegung der Grenzen für jede Partition gleichzeitig übersprungen werden sollen. AWS DMS verwendet einen Ansatz zum Überspringen von Seiten, um die Mindestgrenze für eine Partition zu bestimmen. Der Standardwert ist 10 000.  Das Festlegen eines relativ großen Werts kann zu Cursor-Timeouts und Aufgabenfehlern führen. Das Festlegen eines relativ niedrigen Werts führt zu mehr Operationen pro Seite und zu einem langsameren vollständigen Laden.   | 
|  `"batch-size"`  |  (Optional) Begrenzt die Anzahl der in einem Stapel zurückgegebenen Dokumente. Für jeden Stapel ist ein Round-Trip zum Server erforderlich. Wenn die Stapelgröße Null (0) ist, verwendet der Cursor die vom Server definierte maximale Stapelgröße. Der Standardwert ist 0.  | 

Das folgende Beispiel zeigt eine Tabellenzuordnung für die automatische Segmentierung.

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "table-settings",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "parallel-load": {
                "type": "partitions-auto",
                "number-of-partitions": 5,
                "collection-count-from-metadata": "true",
                "max-records-skip-per-page": 1000000,
                "batch-size": 50000
            }
        }
    ]
}
```

Für die automatische Segmentierung gelten die folgenden Einschränkungen. Bei der Migration für die einzelnen Segmente werden die Sammlungsanzahl und der `_id`-Mindestwert für die Sammlung separat abgerufen. Anschließend wird die Mindestgrenze für dieses Segment anhand eines seitenweisen Überspringens berechnet. 

Stellen Sie daher sicher, dass der `_id`-Mindestwert für jede Sammlung konstant bleibt, bis alle Segmentgrenzen in der Sammlung berechnet wurden. Wenn Sie den `_id`-Mindestwert für eine Sammlung während der Berechnung der Segmentgrenze ändern, kann dies zu Datenverlust oder zu Fehlern aufgrund von doppelten Zeilen führen.

### Parallele Migration einer MongoDB-Datenbank mithilfe der Bereichssegmentierung
<a name="CHAP_Source.MongoDB.ParallelLoad.Ranges"></a>

Sie können Ihre Dokumente parallel migrieren, indem Sie die Bereiche für jedes Segment in einem Thread angeben. Bei diesem Ansatz weisen Sie AWS DMS die spezifischen Dokumente an, die in jedem Thread migriert werden sollen, und zwar entsprechend den von Ihnen ausgewählten Dokumentbereichen pro Thread.

Die folgende Abbildung zeigt eine MongoDB-Sammlung mit sieben Elementen und `_id` als Primärschlüssel.

![\[MongoDB-Sammlung mit sieben Elementen\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/images/datarep-docdb-collection.png)


Um die Sammlung in drei spezifische Segmente für die parallel Migration AWS DMS aufzuteilen, können Sie Ihrer Migrationsaufgabe Regeln für die Tabellenzuweisung hinzufügen. Dieses Verfahren wird im folgenden JSON-Beispiel veranschaulicht.

```
{ // Task table mappings:
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "rule-action": "include"
    }, // "selection" :"rule-type"
    {
      "rule-type": "table-settings",
      "rule-id": "2",
      "rule-name": "2",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "parallel-load": {
        "type": "ranges",
        "columns": [
           "_id",
           "num"
        ],
        "boundaries": [
          // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79
          // and num less-than-or-equal-to 2.
          [
             "5f805c97873173399a278d79",
             "2"
          ],
          // Second segment selects documents with _id > 5f805c97873173399a278d79 and
          // _id less-than-or-equal-to 5f805cc5873173399a278d7c and
          // num > 2 and num less-than-or-equal-to 5.
          [
             "5f805cc5873173399a278d7c",
             "5"
          ]                                   
          // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c.
        ] // :"boundaries"
      } // :"parallel-load"
    } // "table-settings" :"rule-type"
  ] // :"rules"
} // :Task table mappings
```

Mit dieser Definition für die Tabellenzuordnung wird die Quellsammlung in drei Segmente aufgeteilt, die parallel migriert werden. Im Folgenden sind die Segmentierungsgrenzen aufgeführt.

```
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records)
Data with _id > "5f805c97873173399a278d79" and num > 2 and _id  less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 (3 records)
Data with _id > "5f805cc5873173399a278d7c" and num > 5 (2 records)
```

Nach Abschluss der Migrationsaufgabe können Sie anhand der Aufgabenprotokolle überprüfen, ob die Tabellen parallel geladen wurden, wie im folgenden Beispiel gezeigt. Sie können auch die zum Entladen der einzelnen Segmente aus der Quelltabelle verwendete MongoDB-Klausel `find` überprüfen.

```
[TASK_MANAGER    ] I:  Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86  (replicationtask_util.c:752)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is initialized.   (mongodb_unload.c:157)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } }  (mongodb_unload.c:328)

[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TASK_MANAGER    ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
 
[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) 

[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
 
[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TARGET_LOAD     ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480.

[TASK_MANAGER    ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
```

 AWS DMS Unterstützt derzeit die folgenden MongoDB-Datentypen als Segmentschlüsselspalte:
+ Double
+ Zeichenfolge
+ ObjectId
+ 32-Bit-Ganzzahl
+ 64-Bit-Ganzzahl

## Migration mehrerer Datenbanken bei Verwendung von MongoDB als Quelle für AWS DMS
<a name="CHAP_Source.MongoDB.Multidatabase"></a>

AWS DMS Versionen 3.4.5 und höher unterstützen die Migration mehrerer Datenbanken in einer einzigen Aufgabe für alle unterstützten MongoDB-Versionen. Gehen Sie wie folgt vor, um mehrere Datenbanken zu migrieren:

1. Wenn Sie den MongoDB-Quellendpunkt erstellen, führen Sie eine der folgenden Aktionen aus:
   + Stellen Sie sicher, dass das Feld **Datenbankname** unter **Endpunktkonfiguration** auf der Seite **Endpunkt erstellen** der DMS-Konsole leer ist.
   + Weisen Sie dem AWS CLI `CreateEndpoint` Parameter in mithilfe des Befehls einen leeren Zeichenkettenwert zu. `DatabaseName` `MongoDBSettings`

1. Geben Sie für jede Datenbank, die Sie aus einer MongoDB-Quelle migrieren möchten, den Datenbanknamen als Schemanamen in der Tabellenzuordnung für die Aufgabe an. Sie können dies entweder mithilfe der geführten Eingabe in der Konsole oder direkt in JSON vornehmen. Weitere Informationen zur geführten Eingabe finden Sie unter [Festlegen der Tabellenauswahl und der Transformationsregeln über die Konsole](CHAP_Tasks.CustomizingTasks.TableMapping.Console.md). Weitere Informationen zu JSON finden Sie unter [Auswahlregeln und Aktionen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.md).

Sie können beispielsweise die folgende JSON-Struktur angeben, um drei MongoDB-Datenbanken zu migrieren.

**Example Migrieren aller Tabellen in einem Schema**  
Die folgende JSON-Struktur migriert alle Tabellen aus den Datenbanken `Customers`, `Orders` und `Suppliers` im Quellendpunkt zum Zielendpunkt.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Customers",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "selection",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "Orders",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "selection",
            "rule-id": "3",
            "rule-name": "3",
            "object-locator": {
                "schema-name": "Inventory",
                "table-name": "%"
            },
            "rule-action": "include",
            "filters": []
        }
    ]
}
```

## Einschränkungen bei der Verwendung von MongoDB als Quelle für AWS DMS
<a name="CHAP_Source.MongoDB.Limitations"></a>

Die folgenden Einschränkungen gelten bei der Verwendung von MongoDB als Quelle für AWS DMS:
+ Im Tabellenmodus müssen die Dokumente in einer Sammlung hinsichtlich des Datentyps, den sie für den Wert im gleichen Feld verwenden, konsistent sein. Wenn ein Dokument in einer Sammlung beispielsweise `'{ a:{ b:value ... }'` enthält, müssen alle Dokumente in der Sammlung, die auf den `value` des Felds `a.b` verweisen, denselben Datentyp für `value` verwenden, wo immer er in der Sammlung vorkommt.
+ Wenn die Option `_id` als separate Spalte gesetzt ist, darf der ID-String 200 Zeichen nicht überschreiten.
+ Objekt-ID und Array-Schlüssel werden in Spalten konvertiert, die mit dem Präfix `oid` und `array` im Tabellenmodus versehen sind.

  Intern wird auf diese Spalten mit den mit Präfix versehenen Namen verwiesen. Wenn Sie Transformationsregeln verwenden AWS DMS , die auf diese Spalten verweisen, stellen Sie sicher, dass Sie die Spalte mit dem Präfix angeben. Sie geben z. B. `${oid__id}` statt `${_id}` oder `${array__addresses}` und nicht `${_addresses}` an. 
+  Namen von Sammlungen und Schlüsseln dürfen das Dollarzeichen (\$1) nicht enthalten. 
+ AWS DMS unterstützt im Tabellenmodus mit einem RDBMS-Ziel keine Sammlungen, die dasselbe Feld mit unterschiedlicher Groß- und Kleinschreibung enthalten. Unterstützt beispielsweise AWS DMS nicht, zwei Sammlungen mit dem Namen `Field1` und zu verwenden. `field1` 
+ Der Tabellenmodus und der Dokumentmodus haben die oben beschriebenen Einschränkungen.
+ Für die parallele Migration mithilfe der automatischen Segmentierung gelten die oben beschriebenen Einschränkungen.
+ Quellfilter werden für MongoDB nicht unterstützt.
+ AWS DMS unterstützt keine Dokumente, bei denen die Verschachtelungsebene höher als 97 ist.
+ AWS DMS erfordert UTF-8-kodierte Quelldaten für die Migration zu Nicht-DocumentDB-Zielen. Für Quellen mit Nicht-UTF-8-Zeichen konvertieren Sie sie vor der Migration in UTF-8 oder migrieren Sie stattdessen zu Amazon DocumentDB.
+ AWS DMS unterstützt die folgenden Funktionen von MongoDB Version 5.0 nicht:
  + Live-Resharding
  + Clientseitige Verschlüsselung auf Feldebene (Client-Side Field Level Encryption, CSFLE)
  + Migration von Zeitreihen-Sammlungen
**Anmerkung**  
Eine in der Phase des vollständigen Ladens migrierte Zeitreihen-Sammlung wird in Amazon DocumentDB in eine normale Sammlung konvertiert, da DocumentDB keine Zeitreihen-Sammlungen unterstützt.

## Endpunktkonfigurationseinstellungen bei Verwendung von MongoDB als Quelle für AWS DMS
<a name="CHAP_Source.MongoDB.Configuration"></a>

Wenn Sie Ihren MongoDB-Quellendpunkt einrichten, können Sie mithilfe der AWS DMS Konsole mehrere Endpunktkonfigurationseinstellungen angeben. 

In der folgenden Tabelle werden die Konfigurationseinstellungen beschrieben, die bei der Verwendung von MongoDB-Datenbanken als AWS DMS Quelle verfügbar sind. 


| Einstellung (Attribut) | Zulässige Werte | Standardwert und Beschreibung | 
| --- | --- | --- | 
|  **Authentifizierungsmodus**  |  `"none"` `"password"`  |  Der Wert `"password"` fordert zur Eingabe eines Benutzernamens und eines Passworts auf. Wenn `"none"` angegeben ist, werden die Parameter Benutzername und Passwort nicht verwendet.  | 
|  **Authentifizierungsquelle**  |  Ein gültiger MongoDB-Datenbankname.  |  Der Name der MongoDB-Datenbank, die Sie verwenden möchten, um Ihre Anmeldeinformationen für die Authentifizierung zu überprüfen. Der Standardwert ist `"admin"`.   | 
|  **Authentifizierungsmechanismus**  |  `"default"` `"mongodb_cr"` `"scram_sha_1"`  |  Der Authentifizierungsmechanismus. Der Wert von ` "default"` ist `"scram_sha_1"`. Diese Einstellung wird nicht verwendet, wenn `authType` auf `"no"` festgelegt ist.  | 
|  **Metadatenmodus**  |  Dokument und Tabelle  |  Zur Auswahl von Dokument- oder Tabellenmodus   | 
|  **Anzahl der zu scannenden Dokumente** (`docsToInvestigate`)  |  Eine positive Ganzzahl größer als `0`.  |  Verwenden Sie diese Option nur im Tabellenmodus, um die Zieltabellendefinition zu definieren.  | 
|  **\$1id als separate Spalte**  |  Häkchen im Kästchen  |  Optionales Auswahlfeld, mit dem eine zweite Spalte mit der Bezeichnung `_id` erstellt wird, die als Primärschlüssel fungiert.  | 
|   `ExtractDocID`   |  `true` `false`  |  `false` – Verwenden Sie dieses Attribut, wenn `NestingLevel` auf `"none"` gesetzt ist.  Wenn Sie CDC mit Quellen verwenden, die [Transaktionen mit mehreren Dokumenten](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction) erzeugen, **muss der `ExtractDocId` Parameter auf gesetzt werden**. `true` Wenn dieser Parameter nicht aktiviert ist, schlägt die AWS DMS Aufgabe fehl, wenn sie auf eine Transaktion mit mehreren Dokumenten trifft.  | 
|  `socketTimeoutMS`  |  Eine Ganzzahl größer oder gleich 0. Nur zusätzliches Verbindungsattribut (Extra Connection Attribute, ECA)  |  Diese Einstellung wird in Millisekunden angegeben und konfiguriert das Verbindungs-Timeout für MongoDB-Clients. Wenn der Wert kleiner oder gleich Null ist, wird der Standardwert des MongoDB-Clients verwendet.  | 
|   `UseUpdateLookUp`   |  `true` `false`  |  Wenn der Wert true ist, wird bei CDC-Aktualisierungsereignissen das gesamte aktualisierte Dokument auf das Ziel AWS DMS kopiert. Wenn auf false gesetzt, AWS DMS wird der MongoDB-Aktualisierungsbefehl verwendet, um nur geänderte Felder im Dokument auf dem Ziel zu aktualisieren.  | 
|   `ReplicateShardCollections`   |  `true` `false`  |  Wenn der Wert wahr ist, werden Daten in Shard-Sammlungen AWS DMS repliziert. AWS DMS verwendet diese Einstellung nur, wenn der Zielendpunkt ein elastischer DocumentDB-Cluster ist. Wenn Sie für diese Einstellung true festlegen, beachten Sie Folgendes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.MongoDB.html)  | 
|  `useTransactionVerification`  |  `true` `false`  |  Wenn`false`, deaktiviert die Überprüfung zwischen dem Change-Stream und den Logs.   Sie können Operationen verpassen, wenn Diskrepanzen zwischen Change-Streams und Oplog-Einträgen auftreten, da das DMS-Standardverhalten darin besteht, dass die Aufgabe in solchen Szenarien fehlschlägt. Standard: `true`.   | 
|  `useOplog`  |  `true` `false`  |  Wenn`true`, ermöglicht es der DMS-Aufgabe, direkt aus dem 'Oplog' zu lesen, anstatt den Änderungsstream zu verwenden. Standard: `false`.  | 

Wenn Sie **Dokument** als **Metadatenmodus** auswählen, sind verschiedene Optionen verfügbar. 

Wenn der Zielendpunkt DocumentDB ist, führen Sie die Migration unbedingt im **Dokumentmodus** aus. Ändern Sie außerdem Ihren Quellendpunkt und wählen Sie die Option **\$1id als separate Spalte** aus. Dies ist eine zwingende Voraussetzung, wenn Ihr MongoDB-Quell-Workload Transaktionen beinhaltet.

## Quelldatentypen für MongoDB
<a name="CHAP_Source.MongoDB.DataTypes"></a>

Datenmigration, die MongoDB als Quelle verwendet, AWS DMS unterstützt die meisten MongoDB-Datentypen. In der folgenden Tabelle finden Sie die MongoDB-Quelldatentypen, die bei der Verwendung unterstützt werden, AWS DMS und die Standardzuweisung von AWS DMS Datentypen. Weitere Informationen zu MongoDB-Datentypen finden Sie unter [ BSON-Typen](https://docs.mongodb.com/manual/reference/bson-types) in der MongoDB-Dokumentation.

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 unter[Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  MongoDB-Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
| Boolesch | Bool | 
| Binär | BLOB | 
| Date | Date | 
| Zeitstempel | Date | 
| Int | INT4 | 
| Long | INT8 | 
| Double | REAL8 | 
| String (UTF-8) | CLOB | 
| Array | CLOB | 
| OID | Zeichenfolge | 
| REGEX | CLOB | 
| CODE | CLOB | 

# Verwendung von Amazon DocumentDB (mit MongoDB-Kompatibilität) als Quelle für AWS DMS
<a name="CHAP_Source.DocumentDB"></a>

Informationen zu den Versionen von Amazon DocumentDB (mit MongoDB-Kompatibilität), die AWS DMS als Quelle unterstützt, finden Sie unter [Quellen für AWS DMS](CHAP_Introduction.Sources.md).

 Wenn Sie Amazon DocumentDB als Quelle verwenden, können Sie Daten von einem Amazon-DocumentDB-Cluster zu einem anderen migrieren. Sie können auch Daten von einem Amazon DocumentDB-Cluster zu einem der anderen Zielendpunkte migrieren, die von unterstützt werden. AWS DMS

Wenn Sie noch keine Erfahrung mit Amazon DocumentDB haben, sollten Sie die folgenden wichtigen Konzepte für Amazon-DocumentDB-Datenbanken beachten:
+ Ein Datensatz in Amazon DocumentDB ist ein *Dokument*, bei dem es sich um eine Datenstruktur aus Feld-Wert-Paaren handelt. Der Wert eines Felds kann andere Dokumente, Arrays und Dokument-Arrays enthalten. Ein Dokument entspricht etwa einer Zeile in einer relationalen Datenbanktabelle.
+ Eine *Sammlung* in Amazon DocumentDB ist eine Gruppe von Dokumenten und entspricht in etwa einer Tabelle in einer relationalen Datenbank.
+ Eine *Datenbank* in Amazon DocumentDB ist ein Satz von Sammlungen und entspricht in etwa einem Schema in einer relationalen Datenbank.

AWS DMS unterstützt zwei Migrationsmodi, wenn Amazon DocumentDB als Quelle verwendet wird: den Dokumentmodus und den Tabellenmodus. Sie geben den Migrationsmodus an, wenn Sie den Amazon DocumentDB DocumentDB-Quellendpunkt in der AWS DMS Konsole erstellen, indem Sie entweder die Option **Metadatenmodus** oder das zusätzliche Verbindungsattribut `nestingLevel` verwenden. Im Folgenden wird erläutert, wie sich der ausgewählte Migrationsmodus auf das resultierende Format der Zieldaten auswirkt.

**Dokumentmodus**  
Im *Dokumentmodus* wird das JSON-Dokument unverändert migriert. Das bedeutet, dass die Dokumentdaten in einem von zwei Elementen zusammengefasst werden. Wenn Sie eine relationale Datenbank als Ziel verwenden, handelt es sich bei den Daten um eine einzelne Spalte mit der Bezeichnung `_doc` in einer Zieltabelle. Wenn Sie eine nicht relationale Datenbank als Ziel verwenden, handelt es sich bei den Daten um ein einzelnes JSON-Dokument. Der Dokumentmodus ist der Standardmodus, den wir für die Migration zu einem Amazon-DocumentDB-Ziel empfehlen.  
Nehmen wir als Beispiel die folgenden Dokumente in einer Amazon-DocumentDB-Sammlung mit dem Namen `myCollection`.  

```
 db.myCollection.find()
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe0"), "a" : 1, "b" : 2, "c" : 3 }
{ "_id" : ObjectId("5a94815f40bd44d1b02bdfe1"), "a" : 4, "b" : 5, "c" : 6 }
```
Nach der Migration der Daten in eine relationale Datenbanktabelle mit Dokumentmodus sind die Daten folgendermaßen strukturiert. Die Datenfelder im Dokument sind in der Spalte ` _doc` zusammengefasst.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.DocumentDB.html)
Sie können optional das zusätzliche Verbindungsattribut `extractDocID` auf `true` setzen, um eine zweite Spalte mit der Bezeichnung `"_id"` zu erstellen, die als Primärschlüssel fungiert. Wenn Sie die Erfassung von Datenänderungen (Change Data Capture, CDC) verwenden möchten, setzen Sie diesen Parameter auf `true`, es sei denn, Sie verwenden Amazon DocumentDB als Ziel.  
Wenn Sie CDC mit Quellen verwenden, die [Transaktionen mit mehreren Dokumenten](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction) erstellen, **muss der `ExtractDocId` Parameter auf gesetzt werden**. `true` Wenn dieser Parameter nicht aktiviert ist, schlägt die AWS DMS Aufgabe fehl, wenn sie auf eine Transaktion mit mehreren Dokumenten trifft.  
Wenn Sie der Quelldatenbank eine neue Sammlung hinzufügen, AWS DMS wird eine neue Zieltabelle für die Sammlung erstellt und alle Dokumente repliziert. 

**Tabellenmodus**  
Im *Tabellenmodus* wandelt AWS DMS jedes Feld der obersten Ebene in einem Amazon-DocumentDB-Dokument in eine Spalte in der Zieltabelle um. Wenn ein Feld verschachtelt ist, werden die AWS DMS verschachtelten Werte zu einer einzigen Spalte zusammengefasst. AWS DMS fügt dann dem Spaltensatz der Zieltabelle ein Schlüsselfeld und Datentypen hinzu.   
 AWS DMS Fügt für jedes Amazon DocumentDB DocumentDB-Dokument jeden Schlüssel und Typ zum Spaltensatz der Zieltabelle hinzu. Wenn Sie beispielsweise den Tabellenmodus verwenden, wird das vorherige Beispiel in die folgende Tabelle AWS DMS migriert.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.DocumentDB.html)
Verschachtelte Werte werden in einer Spalte mit durch Punkte getrennte Schlüsselnamen auf eine Ebene gebracht. Die Spalte erhält als Namen die Aneinanderreihung der reduzierten Feldnamen, die durch Punkte voneinander getrennt werden. AWS DMS Migriert beispielsweise ein JSON-Dokument mit einem Feld mit verschachtelten Werten, z. B. `{"a" : {"b" : {"c": 1}}}` in eine Spalte mit dem Namen `a.b.c.`  
Um die Zielspalten zu erstellen, AWS DMS scannt eine bestimmte Anzahl von Amazon DocumentDB DocumentDB-Dokumenten und erstellt einen Satz aller Felder und ihrer Typen. AWS DMS verwendet dann diesen Satz, um die Spalten der Zieltabelle zu erstellen. Wenn Sie Ihren Amazon-DocumentDB-Quellendpunkt mithilfe der Konsole erstellen oder ändern, können Sie die Anzahl der zu scannenden Dokumente angeben. Der Standardwert beträgt 1 000 Dokumente. Wenn Sie das verwenden AWS CLI, können Sie das zusätzliche Verbindungsattribut verwenden`docsToInvestigate`.  
 AWS DMS Verwaltet Dokumente und Sammlungen im Tabellenmodus wie folgt:  
+ Wenn Sie ein Dokument zu einer vorhandenen Sammlung hinzufügen, wird das Dokument repliziert. Wenn es Felder gibt, die am Ziel nicht vorhanden sind, werden diese Felder nicht repliziert.
+ Wenn Sie ein Dokument aktualisieren, wird das aktualisierte Dokument repliziert. Wenn es Felder gibt, die am Ziel nicht vorhanden sind, werden diese Felder nicht repliziert.
+ Das Löschen eines Dokuments wird vollständig unterstützt.
+ Das Hinzufügen einer neuen Sammlung führt nicht zu einer neuen Tabelle in der Zieldatenbank, wenn der Vorgang zeitgleich mit einer CDC-Aufgabe erfolgt.
+ In der CDC-Phase (Change Data Capture) wird das Umbenennen einer Sammlung AWS DMS nicht unterstützt.

**Topics**
+ [Festlegen von Berechtigungen zur Verwendung von Amazon DocumentDB als Quelle](#CHAP_Source.DocumentDB.Permissions)
+ [Konfigurieren von CDC für einen Amazon-DocumentDB-Cluster](#CHAP_Source.DocumentDB.ConfigureCDC)
+ [Herstellen einer Verbindung mit Amazon DocumentDB über TLS](#CHAP_Source.DocumentDB.TLS)
+ [Erstellen eines Amazon-DocumentDB-Quellendpunkts](#CHAP_Source.DocumentDB.ConfigureEndpoint)
+ [Segmentieren von Amazon-DocumentDB-Sammlungen und parallele Migration](#CHAP_Source.DocumentDB.ParallelLoad)
+ [Migration mehrerer Datenbanken bei Verwendung von Amazon DocumentDB als Quelle für AWS DMS](#CHAP_Source.DocumentDB.Multidatabase)
+ [Einschränkungen bei der Verwendung von Amazon DocumentDB als Quelle für AWS DMS](#CHAP_Source.DocumentDB.Limitations)
+ [Verwenden von Endpunkteinstellungen mit Amazon DocumentDB als Quelle](#CHAP_Source.DocumentDB.ECAs)
+ [Quelldatentypen für Amazon DocumentDB](#CHAP_Source.DocumentDB.DataTypes)

## Festlegen von Berechtigungen zur Verwendung von Amazon DocumentDB als Quelle
<a name="CHAP_Source.DocumentDB.Permissions"></a>

Wenn Sie die Amazon DocumentDB DocumentDB-Quelle für eine AWS DMS Migration verwenden, können Sie ein Benutzerkonto mit Root-Rechten erstellen. Alternativ können Sie einen Benutzer erstellen, der ausschließlich über Berechtigungen für die zu migrierende Datenbank verfügt. 

Mit dem folgenden Code wird ein Benutzer als Root-Konto erstellt.

```
use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  })
```

Für Amazon DocumentDB 3.6 wird mit dem folgenden Code ein Benutzer mit minimalen Berechtigungen für die zu migrierende Datenbank erstellt.

```
use db_name
db.createUser( 
    {
        user: "dms-user",
        pwd: "password",
        roles: [{ role: "read", db: "db_name" }]
    }
)
```

 AWS DMS Verwendet für Amazon DocumentDB 4.0 und höher einen bereitstellungsweiten Change-Stream. Hier wird mit dem folgenden Code ein Benutzer mit minimalen Berechtigungen erstellt.

```
db.createUser( 
{ 
    user: "dms-user",
    pwd: "password",
    roles: [ { role: "readAnyDatabase", db: "admin" }] 
})
```

## Konfigurieren von CDC für einen Amazon-DocumentDB-Cluster
<a name="CHAP_Source.DocumentDB.ConfigureCDC"></a>

Um die fortlaufende Replikation oder CDC mit Amazon DocumentDB zu verwenden, ist Zugriff auf die Change-Streams des Amazon DocumentDB-Clusters AWS DMS erforderlich. Eine Beschreibung der zeitlich geordneten Reihenfolge von Aktualisierungsereignissen in den Sammlungen und Datenbanken Ihres Clusters finden Sie unter [Using Change Streams](https://docs.aws.amazon.com/documentdb/latest/developerguide/change_streams.html) im *Entwicklerhandbuch für Amazon DocumentDB*. 

Authentifizieren Sie sich mit der MongoDB-Shell bei Ihrem Amazon-DocumentDB-Cluster. Führen Sie anschließend den folgenden Befehl aus, um Änderungsstreams zu aktivieren.

```
db.adminCommand({modifyChangeStreams: 1,
    database: "DB_NAME",
    collection: "", 
    enable: true});
```

Damit wird der Änderungsstream für alle Sammlungen in Ihrer Datenbank aktiviert. Nachdem Change-Streams aktiviert wurden, können Sie eine Migrationsaufgabe erstellen, die bestehende Daten migriert und gleichzeitig laufende Änderungen repliziert. AWS DMS erfasst weiterhin Änderungen und wendet sie an, auch nachdem die Massendaten geladen wurden. Schließlich werden die Quell- und Zieldatenbank synchronisiert, sodass die Ausfallzeit für eine Migration minimiert wird.

**Anmerkung**  
AWS DMS verwendet das Betriebsprotokoll (Oplog), um Änderungen während der laufenden Replikation aufzuzeichnen. Wenn Amazon DocumentDB die Datensätze aus dem Oplog löscht, bevor sie AWS DMS gelesen werden, schlagen Ihre Aufgaben fehl. Wir empfehlen, die Oplog-Größe so zu ändern, dass die Änderungen mindestens 24 Stunden lang beibehalten werden.

## Herstellen einer Verbindung mit Amazon DocumentDB über TLS
<a name="CHAP_Source.DocumentDB.TLS"></a>

Standardmäßig akzeptiert ein neu erstellter Amazon-DocumentDB-Cluster sichere Verbindungen nur mit Transport Layer Security (TLS). Wenn TLS aktiviert ist, erfordert jede Verbindung mit Amazon DocumentDB einen öffentlichen Schlüssel.

Sie können den öffentlichen Schlüssel für Amazon DocumentDB abrufen, indem Sie die Datei `rds-combined-ca-bundle.pem` aus einem AWS-gehosteten Amazon S3 S3-Bucket herunterladen. Weitere Informationen zum Herunterladen dieser Datei finden Sie unter [Encrypting connections using TLS](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html) im *Entwicklerhandbuch für Amazon DocumentDB*. 

Nachdem Sie die `rds-combined-ca-bundle.pem` Datei heruntergeladen haben, können Sie den darin enthaltenen öffentlichen Schlüssel importieren. AWS DMS Das entsprechende Verfahren wird im Folgenden beschrieben.

**Um Ihren öffentlichen Schlüssel mit der AWS DMS Konsole zu importieren**

1. Melden Sie sich bei der an AWS-Managementkonsole und wählen Sie AWS DMS.

1. Wählen Sie im Navigationsbereich **Certificates** aus.

1. Wählen Sie **Import certificate (Zertifikat importieren)**. Die Seite **Importieren eines CA-Zertifikats** wird angezeigt.

1. Führen Sie im Abschnitt **Zertifikatkonfiguration** eine der folgenden Aktionen aus:
   + Geben Sie in **Zertifikat-ID** einen eindeutigen Namen für das Zertifikat ein, z. B. `docdb-cert`.
   + Wählen Sie **Datei auswählen**, navigieren Sie zum Speicherort der Datei `rds-combined-ca-bundle.pem` und wählen Sie diese aus.

1. Klicken Sie auf **Add new CA certificate (Neues CA-Zertifikat hinzufügen)**.

Im AWS CLI folgenden Beispiel wird der AWS DMS `import-certificate` Befehl verwendet, um die `rds-combined-ca-bundle.pem` Datei mit dem öffentlichen Schlüssel zu importieren.

```
aws dms import-certificate \
    --certificate-identifier docdb-cert \
    --certificate-pem file://./rds-combined-ca-bundle.pem
```

## Erstellen eines Amazon-DocumentDB-Quellendpunkts
<a name="CHAP_Source.DocumentDB.ConfigureEndpoint"></a>

Sie können einen Amazon-DocumentDB-Quellendpunkt mithilfe der Konsole oder der AWS CLI erstellen. Gehen Sie bei Verwendung der Konsole folgendermaßen vor.

**So konfigurieren Sie einen Amazon DocumentDB DocumentDB-Quellendpunkt mit der Konsole AWS DMS**

1. Melden Sie sich bei an AWS-Managementkonsole und wählen Sie AWS DMS.

1. Wählen Sie im Navigationsbereich **Endpunkte** und anschließend **Endpunkt erstellen** aus.

1. Geben Sie für **Endpunkt-Kennung** einen Namen ein, anhand dessen Sie ihn leicht identifizieren können, z. B. `docdb-source`.

1. Wählen Sie für **Quellen-Engine** die Option **Amazon DocumentDB (mit MongoDB-Kompatibilität)** aus.

1. Geben Sie für **Servername** den Namen des Servers ein, auf dem sich der Amazon-DocumentDB-Datenbankendpunkt befindet. Sie könnten beispielsweise den öffentlichen DNS-Namen Ihrer Amazon-EC2-Instance eingeben, z. B. `democluster.cluster-cjf6q8nxfefi.us-east-2.docdb.amazonaws.com`.

1. Geben Sie für **Port** 27017 ein.

1. Für **SSL mode (SSL-Modus)** wählen Sie **verify-full** aus. Wenn Sie SSL in Ihrem Amazon-DocumentDB-Cluster deaktiviert haben, können Sie diesen Schritt überspringen.

1. Wählen Sie für **CA-Zertifikat** das Amazon-DocumentDB-Zertifikat `rds-combined-ca-bundle.pem` aus. Anweisungen zum Hinzufügen dieses Zertifikats finden Sie unter [Herstellen einer Verbindung mit Amazon DocumentDB über TLS](#CHAP_Source.DocumentDB.TLS).

1. Geben Sie für **Datenbankname** den Namen Ihrer Datenbank ein.

Gehen Sie bei Verwendung der CLI folgendermaßen vor.

**Um einen Amazon DocumentDB DocumentDB-Quellendpunkt mit dem zu konfigurieren AWS CLI**
+ Führen Sie den folgenden AWS DMS `create-endpoint` Befehl aus, um einen Amazon DocumentDB DocumentDB-Quellendpunkt zu konfigurieren und Platzhalter durch Ihre eigenen Werte zu ersetzen.

  ```
  aws dms create-endpoint \
             --endpoint-identifier a_memorable_name \
             --endpoint-type source \
             --engine-name docdb \
             --username value \
             --password value \
             --server-name servername_where_database_endpoint_resides \
             --port 27017 \
             --database-name name_of_endpoint_database
  ```

## Segmentieren von Amazon-DocumentDB-Sammlungen und parallele Migration
<a name="CHAP_Source.DocumentDB.ParallelLoad"></a>

Um die Leistung einer Migrationsaufgabe zu verbessern, unterstützen Amazon-DocumentDB-Quellendpunkte zwei Optionen des Features für paralleles vollständiges Laden bei der Tabellenzuordnung. Anders ausgedrückt: Sie können eine Sammlung parallel migrieren, indem Sie entweder die Optionen für die automatische Segmentierung oder für die Bereichssegmentierung der Tabellenzuordnung für paralleles vollständiges Laden in den JSON-Einstellungen verwenden. Mit den Optionen für die automatische Segmentierung können Sie die Kriterien für AWS DMS die automatische Segmentierung Ihrer Migrationsquelle in jedem Thread angeben. Mit den Optionen für die Bereichssegmentierung können Sie AWS DMS den spezifischen Bereich jedes Segments angeben, das DMS in jedem Thread migrieren soll. Weitere Informationen zu diesen Einstellungen finden Sie unter [Regeln und Operationen für Tabellen- und Sammlungseinstellungen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Tablesettings.md).

### Parallele Migration einer Amazon-DocumentDB-Datenbank mithilfe von Bereichen für die automatische Segmentierung
<a name="CHAP_Source.DocumentDB.ParallelLoad.AutoPartitioned"></a>

Sie können Ihre Dokumente parallel migrieren, indem Sie die Kriterien für AWS DMS die automatische Partitionierung (Segmentierung) Ihrer Daten für jeden Thread angeben, insbesondere die Anzahl der Dokumente, die pro Thread migriert werden sollen. Bei diesem Verfahren versucht AWS DMS , die Segmentgrenzen zu optimieren, um eine maximale Leistung pro Thread zu erzielen.

Sie können die Segmentierungskriterien mithilfe der folgenden Tabelleneinstellungsoptionen in der Tabellenzuordnung angeben:


|  Tabelleneinstellungsoption  |  Description  | 
| --- | --- | 
|  `"type"`  |  (Erforderlich) Setzen Sie dies für Amazon DocumentDB als Quelle auf `"partitions-auto"`.  | 
|  `"number-of-partitions"`  |  (Optional) Gesamtzahl der für die Migration verwendeten Partitionen (Segmente). Der Standardwert ist 16.  | 
|  `"collection-count-from-metadata"`  |  (Optional) Wenn diese Option auf gesetzt ist`true`, wird eine geschätzte Anzahl von Datensammlungen AWS DMS verwendet, um die Anzahl der Partitionen zu bestimmen. Wenn auf gesetzt`false`, AWS DMS wird die tatsächliche Anzahl der Sammlungen verwendet. Der Standardwert ist `true`.  | 
|  `"max-records-skip-per-page"`  |  (Optional) Die Anzahl der Datensätze, die bei der Festlegung der Grenzen für jede Partition gleichzeitig übersprungen werden sollen. AWS DMS verwendet einen Ansatz zum Überspringen von Seiten, um die Mindestgrenze für eine Partition zu bestimmen. Der Standardwert ist 10 000. Das Festlegen eines relativ großen Werts kann zu Cursor-Timeouts und Aufgabenfehlern führen. Das Festlegen eines relativ niedrigen Werts führt zu mehr Operationen pro Seite und zu einem langsameren vollständigen Laden.   | 
|  `"batch-size"`  |  (Optional) Begrenzt die Anzahl der in einem Stapel zurückgegebenen Dokumente. Für jeden Stapel ist ein Round-Trip zum Server erforderlich. Wenn die Stapelgröße Null (0) ist, verwendet der Cursor die vom Server definierte maximale Stapelgröße. Der Standardwert ist 0.  | 

Das folgende Beispiel zeigt eine Tabellenzuordnung für die automatische Segmentierung.

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "rule-action": "include",
            "filters": []
        },
        {
            "rule-type": "table-settings",
            "rule-id": "2",
            "rule-name": "2",
            "object-locator": {
                "schema-name": "admin",
                "table-name": "departments"
            },
            "parallel-load": {
                "type": "partitions-auto",
                "number-of-partitions": 5,
                "collection-count-from-metadata": "true",
                "max-records-skip-per-page": 1000000,
                "batch-size": 50000
            }
        }
    ]
}
```

Für die automatische Segmentierung gelten die folgenden Einschränkungen. Bei der Migration für die einzelnen Segmente werden die Sammlungsanzahl und der `_id`-Mindestwert für die Sammlung separat abgerufen. Anschließend wird die Mindestgrenze für dieses Segment anhand eines seitenweisen Überspringens berechnet. Stellen Sie daher sicher, dass der `_id`-Mindestwert für jede Sammlung konstant bleibt, bis alle Segmentgrenzen in der Sammlung berechnet wurden. Wenn Sie den `_id`-Mindestwert für eine Sammlung während der Berechnung der Segmentgrenze ändern, kann dies zu Datenverlust oder zu Fehlern aufgrund von doppelten Zeilen führen.

### Parallele Migration einer Amazon-DocumentDB-Datenbank mithilfe von spezifischen Segmentbereichen
<a name="CHAP_Source.DocumentDB.ParallelLoad.Ranges"></a>

Das folgende Beispiel zeigt eine Amazon-DocumentDB-Sammlung mit sieben Elementen und `_id` als Primärschlüssel.

![\[Amazon-DocumentDB-Sammlung mit sieben Elementen\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/images/datarep-docdb-collection.png)


Um die Sammlung in drei Segmente aufzuteilen und parallel zu migrieren, können Sie Ihrer Migrationsaufgabe Regeln für die Tabellenzuordnung hinzufügen, wie im folgenden JSON-Beispiel gezeigt.

```
{ // Task table mappings:
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "rule-action": "include"
    }, // "selection" :"rule-type"
    {
      "rule-type": "table-settings",
      "rule-id": "2",
      "rule-name": "2",
      "object-locator": {
        "schema-name": "testdatabase",
        "table-name": "testtable"
      },
      "parallel-load": {
        "type": "ranges",
        "columns": [
           "_id",
           "num"
        ],
        "boundaries": [
          // First segment selects documents with _id less-than-or-equal-to 5f805c97873173399a278d79
          // and num less-than-or-equal-to 2.
          [
             "5f805c97873173399a278d79",
             "2"
          ],
          // Second segment selects documents with _id > 5f805c97873173399a278d79 and
          // _id less-than-or-equal-to 5f805cc5873173399a278d7c and
          // num > 2 and num less-than-or-equal-to 5.
          [
             "5f805cc5873173399a278d7c",
             "5"
          ]                                   
          // Third segment is implied and selects documents with _id > 5f805cc5873173399a278d7c.
        ] // :"boundaries"
      } // :"parallel-load"
    } // "table-settings" :"rule-type"
  ] // :"rules"
} // :Task table mappings
```

Mit dieser Definition für die Tabellenzuordnung wird die Quellsammlung in drei Segmente aufgeteilt, die parallel migriert werden. Im Folgenden sind die Segmentierungsgrenzen aufgeführt.

```
Data with _id less-than-or-equal-to "5f805c97873173399a278d79" and num less-than-or-equal-to 2 (2 records)
Data with _id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5 and not in (_id less-than-or-equal-to  "5f805c97873173399a278d79" and num less-than-or-equal-to 2) (3 records)
Data not in (_id less-than-or-equal-to "5f805cc5873173399a278d7c" and num less-than-or-equal-to 5) (2 records)
```

Nach Abschluss der Migrationsaufgabe können Sie anhand der Aufgabenprotokolle überprüfen, ob die Tabellen parallel geladen wurden, wie im folgenden Beispiel gezeigt. Sie können auch die zum Entladen der einzelnen Segmente aus der Quelltabelle verwendete Amazon-DocumentDB-Klausel `find` überprüfen.

```
[TASK_MANAGER    ] I:  Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86  (replicationtask_util.c:752)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is initialized.   (mongodb_unload.c:157)

[SOURCE_UNLOAD   ] I:  Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } }  (mongodb_unload.c:328)

[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TASK_MANAGER    ] I: Start loading segment #1 of 3 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. Start load timestamp 0005B191D638FE86 (replicationtask_util.c:752)
 
[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is initialized. (mongodb_unload.c:157) 

[SOURCE_UNLOAD   ] I: Range Segmentation filter for Segment #0 is: { "_id" : { "$lte" : { "$oid" : "5f805c97873173399a278d79" } }, "num" : { "$lte" : { "$numberInt" : "2" } } } (mongodb_unload.c:328)
 
[SOURCE_UNLOAD   ] I: Unload finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 2 rows sent.

[TARGET_LOAD     ] I: Load finished for segment #1 of segmented table 'testdatabase'.'testtable' (Id = 1). 1 rows received. 0 rows skipped. Volume transfered 480.

[TASK_MANAGER    ] I: Load finished for segment #1 of table 'testdatabase'.'testtable' (Id = 1) by subtask 1. 2 records transferred.
```

 AWS DMS Unterstützt derzeit die folgenden Amazon DocumentDB DocumentDB-Datentypen als Segmentschlüsselspalte:
+ Double
+ Zeichenfolge
+ ObjectId
+ 32-Bit-Ganzzahl
+ 64-Bit-Ganzzahl

## Migration mehrerer Datenbanken bei Verwendung von Amazon DocumentDB als Quelle für AWS DMS
<a name="CHAP_Source.DocumentDB.Multidatabase"></a>

AWS DMS Versionen 3.4.5 und höher unterstützen die Migration mehrerer Datenbanken in einer einzigen Aufgabe nur für Amazon DocumentDB DocumentDB-Versionen 4.0 und höher. Gehen Sie folgendermaßen vor, um mehrere Datenbanken zu migrieren:

1. Wenn Sie den Amazon-DocumentDB-Quellendpunkt erstellen:
   + Lassen Sie im AWS-Managementkonsole Feld „**Datenbankname“ unter **Endpunktkonfiguration auf der Seite „Endpoint** **erstellen**“ das Feld Datenbankname** leer. AWS DMS
   + Weisen Sie im Feld AWS Command Line Interface (AWS CLI) dem **DatabaseName**Parameter im **Dokument**, den Sie für die **CreateEndpoint**Aktion angebenDBSettings, einen leeren Zeichenkettenwert zu.

1. Geben Sie für jede Datenbank, die Sie von diesem Amazon-DocumentDB-Quellendpunkt migrieren möchten, den Namen jeder Datenbank als Namen eines Schemas in der Tabellenzuordnung für die Aufgabe an, entweder mithilfe der geführten Eingabe in der Konsole oder direkt in JSON. Weitere Informationen zur geführten Eingabe finden Sie in der Beschreibung zu [Festlegen der Tabellenauswahl und der Transformationsregeln über die Konsole](CHAP_Tasks.CustomizingTasks.TableMapping.Console.md). Weitere Informationen zu JSON finden Sie unter [Auswahlregeln und Aktionen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Selections.md).

Sie können beispielsweise die folgende JSON-Struktur angeben, um drei Amazon-DocumentDB-Datenbanken zu migrieren.

**Example Migrieren aller Tabellen in einem Schema**  
Die folgende JSON-Struktur migriert alle Tabellen aus den Datenbanken `Customers`, `Orders` und `Suppliers` im Quellendpunkt zum Zielendpunkt.  

```
{
    "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "Customers",
                "table-name": "%"
            },
            "object-locator": {
                "schema-name": "Orders",
                "table-name": "%"
            },
            "object-locator": {
                "schema-name": "Inventory",
                "table-name": "%"
            },
            "rule-action": "include"
        }
    ]
}
```

## Einschränkungen bei der Verwendung von Amazon DocumentDB als Quelle für AWS DMS
<a name="CHAP_Source.DocumentDB.Limitations"></a>

Die folgenden Einschränkungen gelten bei der Verwendung von Amazon DocumentDB als Quelle für AWS DMS:
+ Wenn die Option `_id` als separate Spalte gesetzt ist, darf der ID-String 200 Zeichen nicht überschreiten.
+ Objekt-ID und Array-Schlüssel werden in Spalten konvertiert, die mit dem Präfix `oid` und `array` im Tabellenmodus versehen sind.

  Intern wird auf diese Spalten mit den mit Präfix versehenen Namen verwiesen. Wenn Sie Transformationsregeln verwenden AWS DMS , die auf diese Spalten verweisen, stellen Sie sicher, dass Sie die Spalte mit dem Präfix angeben. Geben Sie beispielsweise `${oid__id}` anstatt `${_id}` oder `${array__addresses}` anstatt `${_addresses}` an. 
+  Namen von Sammlungen und Schlüsseln dürfen das Dollarzeichen (\$1) nicht enthalten. 
+ Der Tabellenmodus und der Dokumentmodus haben die oben genannten Einschränkungen.
+ Für die parallele Migration mithilfe der automatischen Segmentierung gelten die oben beschriebenen Einschränkungen.
+ Eine Amazon-DocumentDB-Quelle (MongoDB-kompatibel) unterstützt die Verwendung eines spezifischen Zeitstempels als Startposition für CDC nicht. Eine laufende Replikationsaufgabe beginnt unabhängig vom Zeitstempel mit der Erfassung von Änderungen.
+ AWS DMS unterstützt keine Dokumente, bei denen die Verschachtelungsebene höher als 97 für AWS DMS Versionen unter 3.5.2 ist.
+ Quellfilter werden für DocumentDB nicht unterstützt.
+ AWS DMS unterstützt keine CDC-Replikation (Change Data Capture) für DocumentDB als Quelle im Elastic Cluster-Modus.

## Verwenden von Endpunkteinstellungen mit Amazon DocumentDB als Quelle
<a name="CHAP_Source.DocumentDB.ECAs"></a>

Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer Amazon-DocumentDB-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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), mit der `--doc-db-settings '{"EndpointSetting": "value", ...}'` JSON-Syntax erstellen.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit Amazon DocumentDB als Quelle verwenden können.


| Attributname | Zulässige Werte | Standardwert und Beschreibung | 
| --- | --- | --- | 
|   `NestingLevel`   |  `"none"` `"one"`  |  `"none"` – Geben Sie `"none"` an, um den Dokumentmodus zu verwenden. Geben Sie `"one"` an, um den Tabellenmodus zu verwenden.  | 
|   `ExtractDocID`   |  `true` `false`  |  `false` – Verwenden Sie dieses Attribut, wenn `NestingLevel` auf `"none"` gesetzt ist.  Wenn Sie CDC mit Quellen verwenden, die [Transaktionen mit mehreren Dokumenten](https://www.mongodb.com/docs/manual/reference/method/Session.startTransaction/#mongodb-method-Session.startTransaction) erzeugen, **muss der `ExtractDocId` Parameter auf gesetzt werden**. `true` Wenn dieser Parameter nicht aktiviert ist, schlägt die AWS DMS Aufgabe fehl, wenn sie auf eine Transaktion mit mehreren Dokumenten trifft.  | 
|   `DocsToInvestigate`   |  Eine positive Ganzzahl größer als `0`.  |  `1000` – Verwenden Sie dieses Attribut, wenn `NestingLevel` auf `"one"` gesetzt ist.   | 
|   `ReplicateShardCollections `   |  `true` `false`  |  Wenn der Wert true ist, werden Daten in Shard-Sammlungen AWS DMS repliziert. AWS DMS verwendet diese Einstellung nur, wenn der Zielendpunkt ein elastischer DocumentDB-Cluster ist. Wenn Sie für diese Einstellung true festlegen, beachten Sie Folgendes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.DocumentDB.html)  | 

## Quelldatentypen für Amazon DocumentDB
<a name="CHAP_Source.DocumentDB.DataTypes"></a>

Die folgende Tabelle enthält die Amazon-DocumentDB-Quelldatentypen, die bei Verwendung von AWS DMS unterstützt werden. In dieser Tabelle finden Sie auch die Standardzuordnungen von AWS DMS Datentypen. Weitere Informationen zu den Datentypen finden Sie unter [BSON types](https://docs.mongodb.com/manual/reference/bson-types) in der Dokumentation zu MongoDB.

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 unter[Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  Amazon-DocumentDB-Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
| Boolesch | Bool | 
| Binär | BLOB | 
| Date | Date | 
| Zeitstempel | Date | 
| Int | INT4 | 
| Long | INT8 | 
| Double | REAL8 | 
| String (UTF-8) | CLOB | 
| Array | CLOB | 
| OID | Zeichenfolge | 

# Verwendung von Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3"></a>

Sie können Daten aus einem Amazon S3 S3-Bucket migrieren mit AWS DMS. Erteilen Sie dazu Zugriff auf einen Amazon-S3-Bucket, der eine oder mehrere Datendateien enthält. Fügen Sie diesem S3-Bucket eine JSON-Datei hinzu, die die Zuweisung zwischen den Daten und den Datenbanktabellen der Daten in diesen Dateien beschreibt.

Die Quelldatendateien müssen im Amazon-S3-Bucket enthalten sein, bevor die Volllastaufgabe beginnt. Geben Sie den Bucket-Namen mit dem `bucketName`-Parameter an. 

Die Quelldatendateien können in den folgenden Formaten vorliegen:
+ Durch Kommas getrennter Wert (.csv)
+ Parquet (DMS-Version 3.5.3 und höher). Hinweise zur Verwendung von Dateien im Parquet-Format finden Sie unter. [Verwenden von Dateien im Parquet-Format in Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.Parquet)

Verwenden Sie für Quelldatendateien im Format mit kommagetrennten Werten (.csv) die folgende Benennungskonvention. In dieser Konvention ist *`schemaName`* das Quellschema und *`tableName`* ist der Name einer Tabelle in diesem Schema.

```
/schemaName/tableName/LOAD001.csv
/schemaName/tableName/LOAD002.csv
/schemaName/tableName/LOAD003.csv
...
```

 Angenommen, Ihre Datendateien befinden sich in `amzn-s3-demo-bucket` im folgenden Amazon-S3-Pfad.

```
s3://amzn-s3-demo-bucket/hr/employee
```

Beim Laden AWS DMS wird davon ausgegangen, dass der Name des Quellschemas lautet `hr` und dass der Name der Quelltabelle lautet. `employee`

Zusätzlich zu `bucketName` (was erforderlich ist) können Sie optional einen `bucketFolder` Parameter angeben, um anzugeben, wo im Amazon S3 S3-Bucket nach Datendateien gesucht werden AWS DMS soll. Wenn Sie das vorherige Beispiel fortsetzen und `bucketFolder` auf einstellen`sourcedata`, werden die Datendateien im folgenden Pfad AWS DMS gelesen.

```
s3://amzn-s3-demo-bucket/sourcedata/hr/employee
```

Sie können mithilfe der zusätzlichen Verbindungsattribute die Trennzeichen für die Spalte und die Zeile sowie den Nullwertindikator und andere Parameter festlegen. Weitere Informationen finden Sie unter [Endpunkteinstellungen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.Configuring).

Sie können einen Bucket-Eigentümer angeben und Sniping verhindern, wenn Sie die Amazon-S3-Endpunkteinstellung `ExpectedBucketOwner` verwenden, wie im Folgenden gezeigt. Wenn Sie dann eine Anforderung stellen, um eine Verbindung zu testen oder eine Migration durchzuführen, gleicht S3 die Konto-ID des Bucket-Eigentümers mit dem angegebenen Parameter ab.

```
--s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'
```

**Topics**
+ [Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.ExternalTableDef)
+ [Verwenden von CDC mit Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.CDC)
+ [Voraussetzungen für die Verwendung von Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.Prerequisites)
+ [Einschränkungen bei der Verwendung von Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.Limitations)
+ [Endpunkteinstellungen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.Configuring)
+ [Quelldatentypen für Amazon S3](#CHAP_Source.S3.DataTypes)
+ [Verwenden von Dateien im Parquet-Format in Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.Parquet)

## Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3.ExternalTableDef"></a>

Zusätzlich zu den Datendateien müssen Sie auch eine externe Tabellendefinition bereitstellen. Eine *externe Tabellendefinition* ist ein JSON-Dokument, das beschreibt, AWS DMS wie die Daten aus Amazon S3 zu interpretieren sind. Die maximale Größe dieses Dokuments ist 2 MB. Wenn Sie mit der AWS DMS Management Console einen Quellendpunkt erstellen, können Sie den JSON-Code direkt in das Feld für die Tabellenzuweisung eingeben. Wenn Sie die AWS Command Line Interface (AWS CLI) oder die AWS DMS API verwenden, um Migrationen durchzuführen, können Sie eine JSON-Datei erstellen, um die Definition der externen Tabelle anzugeben.

Angenommen, Sie haben eine Datei mit den folgenden Daten.

```
101,Smith,Bob,2014-06-04,New York
102,Smith,Bob,2015-10-08,Los Angeles
103,Smith,Bob,2017-03-13,Dallas
104,Smith,Bob,2017-03-13,Dallas
```

Im Folgenden sehen Sie ein Beispiel für eine externe Tabellendefinition für diese Daten.

```
{
    "TableCount": "1",
    "Tables": [
        {
            "TableName": "employee",
            "TablePath": "hr/employee/",
            "TableOwner": "hr",
            "TableColumns": [
                {
                    "ColumnName": "Id",
                    "ColumnType": "INT8",
                    "ColumnNullable": "false",
                    "ColumnIsPk": "true"
                },
                {
                    "ColumnName": "LastName",
                    "ColumnType": "STRING",
                    "ColumnLength": "20"
                },
                {
                    "ColumnName": "FirstName",
                    "ColumnType": "STRING",
                    "ColumnLength": "30"
                },
                {
                    "ColumnName": "HireDate",
                    "ColumnType": "DATETIME"
                },
                {
                    "ColumnName": "OfficeLocation",
                    "ColumnType": "STRING",
                    "ColumnLength": "20"
                }
            ],
            "TableColumnsTotal": "5"
        }
    ]
}
```

In diesem JSON-Dokument sind folgende Elemente enthalten:

`TableCount` – die Anzahl der Quelltabellen. In diesem Beispiel es nur eine Tabelle.

`Tables` – ein Array bestehend aus einer JSON-Zuweisung je Quelltabelle. In diesem Beispiel es nur eine Zuweisung. Jede Zuweisung umfasst die folgenden Schlüsselelemente:
+ `TableName` – der Name der Quelltabelle.
+ `TablePath` – der Pfad in Ihrem Amazon-S3-Bucket, in dem AWS DMS die Datei mit den Daten für die Volllastaufgabe finden kann. Wenn ein `bucketFolder`-Wert angegeben ist, wird dieser Wert dem Pfad vorangestellt.
+ `TableOwner` – der Name des Schemas für diese Tabelle.
+ `TableColumns` – ein Array einer oder mehrerer Zuweisungen, die jeweils eine Spalte in der Quelltabelle beschreiben:
  + `ColumnName` – der Name einer Spalte in der Quelltabelle.
  + `ColumnType` – der Datentyp für die Spalte. Die zulässigen Datentypen finden Sie unter [Quelldatentypen für Amazon S3](#CHAP_Source.S3.DataTypes).
  + `ColumnLength` – die Anzahl an Bytes in dieser Spalte. Die maximale Spaltenlänge ist auf 2147483647 Byte (2.047 MegaBytes) begrenzt, da eine S3-Quelle den FULL LOB-Modus nicht unterstützt. `ColumnLength`ist für die folgenden Datentypen gültig:
    + BYTE
    + STRING
  + `ColumnNullable` – ein boolescher Wert, der `true` lautet, wenn diese Spalte NULL-Werte enthalten darf (Standard = `false`).
  + `ColumnIsPk` – ein boolescher Wert, der `true` lautet, wenn diese Spalte Teil des Primärschlüssels ist (Standard = `false`).
  + `ColumnDateFormat` – das Eingabedatumsformat für eine Spalte mit den Typen DATE, TIME und DATETIME, das verwendet wird, um eine Datenzeichenfolge in ein Datumsobjekt zu analysieren. Mögliche Werte sind:

    ```
    - YYYY-MM-dd HH:mm:ss
    - YYYY-MM-dd HH:mm:ss.F
    - YYYY/MM/dd HH:mm:ss
    - YYYY/MM/dd HH:mm:ss.F
    - MM/dd/YYYY HH:mm:ss
    - MM/dd/YYYY HH:mm:ss.F
    - YYYYMMdd HH:mm:ss
    - YYYYMMdd HH:mm:ss.F
    ```
+ `TableColumnsTotal` – die Gesamtanzahl der Spalten. Diese Anzahl muss der Anzahl der Elemente im `TableColumns`-Array entsprechen.

Wenn Sie nichts anderes angeben, wird AWS DMS davon ausgegangen, dass der Wert Null `ColumnLength` ist.

**Anmerkung**  
In unterstützten Versionen von AWS DMS können die S3-Quelldaten auch eine optionale Operationsspalte als erste Spalte vor dem `TableName` Spaltenwert enthalten. Diese Operationsspalte identifiziert die Operation (`INSERT`), die verwendet wird, um die Daten während eines vollständigen Ladevorgangs zu einem S3-Zielendpunkt zu migrieren.   
Falls vorhanden, ist der Wert dieser Spalte das erste Zeichen des `INSERT`-Schlüsselworts der Operation (`I`). Sofern vorhanden, gibt diese Spalte in der Regel an, dass die S3-Quelle während einer früheren Migration durch DMS als S3-Ziel erstellt wurde.   
In früheren DMS-Versionen als 3.4.2 war diese Spalte in S3-Quelldaten, die aus einer früheren DMS-Volllastaufgabe erstellt wurden, nicht vorhanden. Durch das Hinzufügen dieser Spalte zu den S3-Zieldaten werden alle Zeilen in einem konsistenten Format zum S3-Ziel geschrieben. Dies geschieht unabhängig davon, ob die Daten während eines vollständigen oder während eines CDC-Ladevorgangs geschrieben werden. Weitere Informationen zu den Optionen zum Formatieren von S3-Zieldaten finden Sie unter [Angabe von Quelldatenbankoperationen in migrierten S3-Daten](CHAP_Target.S3.md#CHAP_Target.S3.Configuring.InsertOps).

Für eine Spalte des Typs NUMERIC müssen Sie die Genauigkeit und Skalierung festlegen. *Genauigkeit* ist die Gesamtanzahl der Stellen in einer Zahl und *Skalierung* die Anzahl der Dezimalstellen. Dafür verwenden Sie die Elemente `ColumnPrecision` und `ColumnScale`, wie im Folgenden dargestellt.

```
...
    {
        "ColumnName": "HourlyRate",
        "ColumnType": "NUMERIC",
        "ColumnPrecision": "5"
        "ColumnScale": "2"
    }
...
```

Geben Sie für eine Spalte vom Typ DATETIME mit Daten, die Sekundenbruchteile enthalten, die Skalierung an. *Skalierung* ist die Anzahl der Dezimalstellen für die Sekundenbruchteile. Diese kann zwischen 0 und 9 liegen. Verwenden Sie dafür das Element `ColumnScale`, wie im Folgenden dargestellt.

```
...
{
      "ColumnName": "HireDate",
      "ColumnType": "DATETIME",
      "ColumnScale": "3"
}
...
```

Wenn Sie nichts anderes angeben, `ColumnScale` wird von Null AWS DMS ausgegangen und die Sekundenbruchteile werden gekürzt.

## Verwenden von CDC mit Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3.CDC"></a>

Nach AWS DMS dem vollständigen Laden der Daten können Datenänderungen optional auf den Zielendpunkt repliziert werden. Dazu laden Sie Change Data Capture-Dateien (CDC-Dateien) in Ihren Amazon S3 S3-Bucket hoch. AWS DMS liest diese CDC-Dateien, wenn Sie sie hochladen, und wendet die Änderungen dann am Zielendpunkt an. 

Die CDC-Dateien werden wie folgt benannt:

```
CDC00001.csv
CDC00002.csv
CDC00003.csv
...
```

**Anmerkung**  
Um CDC-Dateien im Änderungsdatenordner zu replizieren, laden Sie sie erfolgreich in lexikalischer (sequenzieller) Reihenfolge hoch. Laden Sie beispielsweise die Datei CDC00002 .csv vor der Datei CDC00003 .csv hoch. Andernfalls wird die CDC00002 CSV-Datei übersprungen und nicht repliziert, wenn Sie sie nach der Datei „.csv“ laden. CDC00003 Die Datei CDC00004 .csv wird jedoch erfolgreich repliziert, wenn sie nach der Datei .csv geladen wird. CDC00003

Geben Sie den Parameter an, um anzugeben, wo die Dateien zu AWS DMS finden sind. `cdcPath` Wenn Sie im vorherigen Beispiel `cdcPath` auf `changedata` setzen, liest AWS DMS die CDC-Dateien im folgenden Pfad.

```
s3://amzn-s3-demo-bucket/changedata
```

Wenn Sie `cdcPath` auf `changedata` und `bucketFolder` auf `myFolder` setzen, liest AWS DMS die CDC-Dateien im folgenden Pfad.

```
s3://amzn-s3-demo-bucket/myFolder/changedata
```

Die Datensätze in einer CDC-Datei werden wie folgt formatiert:
+ Operation – die Änderungsoperation, die ausgeführt werden soll: `INSERT` oder `I`, `UPDATE` oder `U` oder `DELETE` oder `D`. Diese Schlüsselwort- und Zeichenwerte unterscheiden zwischen Groß- und Kleinschreibung.
**Anmerkung**  
 AWS DMS Kann in unterstützten AWS DMS Versionen den Vorgang, der für jeden Ladedatensatz ausgeführt werden soll, auf zwei Arten identifizieren. AWS DMS kann dies anhand des Schlüsselwortwerts des Datensatzes (z. B.`INSERT`) oder anhand des Anfangszeichens des Schlüsselworts (z. B.`I`) tun. In früheren Versionen AWS DMS wurde der Ladevorgang nur anhand des vollständigen Schlüsselwortwerts erkannt.   
In früheren Versionen von wurde der vollständige Schlüsselwortwert geschrieben AWS DMS, um die CDC-Daten zu protokollieren. Vorherige Versionen schrieben den Operationswert darüber hinaus nur mit dem Anfangszeichen des Schlüsselworts in S3-Ziele.   
Durch die Erkennung beider Formate kann AWS DMS der Vorgang unabhängig davon ausgeführt werden, wie die Operationsspalte zur Erstellung der S3-Quelldaten geschrieben wurde. Dieser Ansatz unterstützt die Verwendung von S3-Zieldaten als Quelle für eine spätere Migration. Dank dieses Ansatzes müssen Sie nicht länger das Format des Anfangszeichens eines Schlüsselworts ändern, das in der Operationsspalte der späteren S3-Quelle erscheint
+ Tabellenname – der Name der Quelltabelle.
+ Schemaname – der Name des Quellschemas.
+ Daten – eine oder mehrere Spalten, die die zu ändernden Daten darstellen.

Im Folgenden sehen Sie ein Beispiel einer CDC-Datei für eine Tabelle mit dem Namen `employee`.

```
INSERT,employee,hr,101,Smith,Bob,2014-06-04,New York
UPDATE,employee,hr,101,Smith,Bob,2015-10-08,Los Angeles
UPDATE,employee,hr,101,Smith,Bob,2017-03-13,Dallas
DELETE,employee,hr,101,Smith,Bob,2017-03-13,Dallas
```

## Voraussetzungen für die Verwendung von Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3.Prerequisites"></a>

Um Amazon S3 als Quelle für verwenden zu können AWS DMS, muss sich Ihr S3-Quell-Bucket in derselben AWS Region befinden wie die DMS-Replikationsinstanz, die Ihre Daten migriert. Darüber hinaus muss das AWS -Konto, das Sie für die Migration verwenden, über Lesezugriff auf den Quell-Bucket verfügen. Für AWS DMS Version 3.4.7 und höher muss DMS über einen VPC-Endpunkt oder eine öffentliche Route auf den Quell-Bucket zugreifen. Informationen zu VPC-Endpunkten finden Sie unter. [Konfiguration von VPC-Endpunkten für AWS DMS](CHAP_VPC_Endpoints.md)

Die AWS Identity and Access Management (IAM-) Rolle, die dem Benutzerkonto zugewiesen ist, mit dem die Migrationsaufgabe erstellt wurde, muss über die folgenden Berechtigungen verfügen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*"
            ]
        }
    ]
}
```

------

Die AWS Identity and Access Management (IAM-) Rolle, die dem Benutzerkonto zugewiesen wurde, das zur Erstellung der Migrationsaufgabe verwendet wurde, muss über die folgenden Berechtigungen verfügen, wenn die Versionierung im Amazon S3 S3-Bucket aktiviert ist.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
       {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*"
            ]
        }
    ]
}
```

------

## Einschränkungen bei der Verwendung von Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3.Limitations"></a>

Die folgenden Einschränkungen gelten bei Verwendung von Amazon S3 als Quelle:
+ Aktivieren Sie die Versionsverwaltung für S3 nicht. Wenn Sie die Versionsverwaltung für S3 benötigen, verwenden Sie Lebenszyklusrichtlinien, um alte Versionen aktiv zu löschen. Andernfalls kann es aufgrund eines Timeouts eines `list-object`-Aufrufs in S3 zu Verbindungsfehlern beim Endpunkttest kommen. Informationen zum Erstellen einer Lebenszyklusrichtlinie für einen S3-Bucket finden Sie unter [Verwalten Ihres Speicher-Lebenszyklus](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html). Informationen zum Löschen einer Version eines S3-Objekts finden Sie unter [Löschen von Objekten aus einem versionsverwaltungsfähigen Bucket](https://docs.aws.amazon.com/AmazonS3/latest/dev/DeletingObjectVersions.html).
+ Ein VPC-fähiger S3-Bucket (Gateway-VPC) wird in den Versionen 3.4.7 und höher unterstützt.
+ MySQL konvertiert den `time` Datentyp in. `string` Um `time` Datentypwerte in MySQL zu sehen, definieren Sie die Spalte in der Zieltabelle als `string` und setzen Sie die Einstellung **Zieltabellenvorbereitungsmodus** der Aufgabe auf **Kürzen.**
+ AWS DMS verwendet den `BYTE` Datentyp intern für Daten in beiden `BYTE` `BYTES` Datentypen.
+ S3-Quellendpunkte unterstützen die Funktion zum erneuten Laden von DMS-Tabellen nicht.
+ AWS DMS unterstützt den vollständigen LOB-Modus mit Amazon S3 als Quelle nicht.

Bei der Verwendung von Dateien im Parquet-Format in Amazon S3 als Quelle gelten die folgenden Einschränkungen:
+ Datumsangaben`MMYYYYDD`, die in der Funktion zur Datumspartitionierung von S3 Parquet Source enthalten `DDMMYYYY` sind oder von ihr nicht unterstützt werden.

## Endpunkteinstellungen für Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3.Configuring"></a>

Sie können Endpunkteinstellungen, ähnlich wie zusätzliche Verbindungsattribute, zum Konfigurieren Ihrer Amazon-S3-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](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), mit der `--s3-settings '{"EndpointSetting": "value", ...}'` JSON-Syntax erstellen.

**Anmerkung**  
AWS DMS verwendet standardmäßig eine sichere Verbindung zum Amazon S3 S3-Endpunkt, ohne dass der SSL-Modus oder das Zertifikat angegeben werden müssen.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit Amazon S3 als Quelle verwenden können.


| **Option** | **Beschreibung** | 
| --- | --- | 
| BucketFolder |  (Optional) Ein Ordnername im S3-Bucket. Wenn dieses Attribut angegeben ist, werden die Quelldatendateien und CDC-Dateien im Pfad `s3://amzn-s3-demo-bucket/bucketFolder/schemaName/tableName/` bzw. `s3://amzn-s3-demo-bucket/bucketFolder/` gelesen. Wenn dieses Attribut nicht angegeben ist, wird der Pfad `schemaName/tableName/` verwendet.  `'{"BucketFolder": "sourceData"}'`  | 
| BucketName |  Der Name des S3-Buckets. `'{"BucketName": "amzn-s3-demo-bucket"}'`  | 
| CdcPath | Der Speicherort von CDC-Dateien. Dieses Attribut ist erforderlich, wenn eine Aufgabe Änderungsdaten erfasst. Andernfalls ist es optional. Wenn CdcPath vorhanden, AWS DMS liest es CDC-Dateien aus diesem Pfad und repliziert die Datenänderungen auf den Zielendpunkt. Weitere Informationen finden Sie unter [Verwenden von CDC mit Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.CDC). `'{"CdcPath": "changeData"}'`  | 
| CsvDelimiter |  Das Trennzeichen, das zum Trennen von Spalten in den Quelldateien dient. Standardmäßig wird ein Komma verwendet. Ein Beispiel folgt. `'{"CsvDelimiter": ","}'`  | 
| CsvNullValue |  Eine benutzerdefinierte Zeichenfolge, die beim Lesen aus der Quelle als Null AWS DMS behandelt wird. Der Standardwert ist eine leere Zeichenfolge. Wenn Sie diesen Parameter nicht festlegen, wird eine leere Zeichenfolge als Nullwert AWS DMS behandelt. Wenn Sie diesen Parameter auf eine Zeichenfolge wie „\$1 N“ setzen, AWS DMS wird diese Zeichenfolge als Nullwert und leere Zeichenketten als leerer Zeichenkettenwert behandelt.  | 
| CsvRowDelimiter |  Das Trennzeichen, das zum Trennen von Zeilen in den Quelldateien dient. Standardmäßig wird ein Zeilenumbruch (`\n`) verwendet. `'{"CsvRowDelimiter": "\n"}'`  | 
| DataFormat |  Setzen Sie diesen Wert auf, `Parquet` um Daten im Parquet-Format zu lesen. `'{"DataFormat": "Parquet"}'`  | 
| IgnoreHeaderRows |  Wenn dieser Wert auf 1 gesetzt ist, wird die Kopfzeile der ersten Zeile in einer CSV-Datei AWS DMS ignoriert. Mit dem Wert 1 wird die Funktion aktiviert, mit 0 deaktiviert. Der Standardwert ist 0. `'{"IgnoreHeaderRows": 1}'`  | 
| Rfc4180 |  Wenn dieser Wert auf `true` oder `y` gesetzt ist, muss auf jedes führende doppelte Anführungszeichen ein endendes doppeltes Anführungszeichen folgen. Diese Formatierung entspricht RFC 4180. Wenn dieser Parameter auf `false` oder `n` gesetzt ist, werden Zeichenfolgen-Literale wie vorhanden in das Ziel kopiert. In diesem Fall signalisiert ein Trennzeichen (Zeile oder Spalte) das Ende des Feldes. Daher können Sie keine Trennzeichen als Teil der Zeichenfolge verwenden, da diese das Ende des Werts bezeichnen. Der Standardwert ist `true`. Zulässige Werte: `true`, `false`, `y`, `n` `'{"Rfc4180": false}'`  | 

## Quelldatentypen für Amazon S3
<a name="CHAP_Source.S3.DataTypes"></a>

Datenmigration, die Amazon S3 als Quelle für AWS DMS Anforderungen verwendet, um Daten aus Amazon S3 AWS DMS Datentypen zuzuordnen. Weitere Informationen finden Sie unter [Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.ExternalTableDef).

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 unter[Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md).

Die folgenden AWS DMS Datentypen werden mit Amazon S3 als Quelle verwendet:
+ BYTE – erfordert `ColumnLength`. Weitere Informationen finden Sie unter [Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ DATE
+ TIME
+ DATETIME – weitere Informationen finden Sie im Beispiel für den Typ DATETIME unter [Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ INT1
+ INT2
+ INT4
+ INT8
+ NUMERIC — Erfordert `ColumnPrecision` und`ColumnScale`. AWS DMS unterstützt die folgenden Höchstwerte:
  + **ColumnPrecision: 38**
  + **ColumnScale: 31**

  Weitere Informationen finden Sie im Beispiel für den Typ NUMERIC unter [Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ REAL4
+ REAL8
+ STRING – erfordert `ColumnLength`. Weitere Informationen finden Sie unter [Definition externer Tabellen für Amazon S3 als Quelle für AWS DMS](#CHAP_Source.S3.ExternalTableDef).
+ UINT1
+ UINT2
+ UINT4
+ UINT8
+ BLOB
+ CLOB
+ BOOLEAN

## Verwenden von Dateien im Parquet-Format in Amazon S3 als Quelle für AWS DMS
<a name="CHAP_Source.S3.Parquet"></a>

In AWS DMS Version 3.5.3 und höher können Sie Dateien im Parquet-Format in einem S3-Bucket als Quelle für die Full-Load- oder CDC-Replikation verwenden. 

DMS unterstützt nur Dateien im Parquet-Format als Quelle, die DMS durch die Migration von Daten auf einen S3-Zielendpunkt generiert. Dateinamen müssen im unterstützten Format vorliegen, andernfalls nimmt DMS sie nicht in die Migration auf.

Quelldatendateien im Parquet-Format müssen sich im folgenden Ordner und in der folgenden Benennungskonvention befinden.

```
schema/table1/LOAD00001.parquet
schema/table2/LOAD00002.parquet
schema/table2/LOAD00003.parquet
```

Verwenden Sie für Quelldatendateien für CDC-Daten im Parquet-Format die folgenden Ordner- und Benennungsregeln, um sie zu benennen und zu speichern.

```
schema/table/20230405-094615814.parquet
schema/table/20230405-094615853.parquet
schema/table/20230405-094615922.parquet
```

Um auf Dateien im Parquet-Format zuzugreifen, legen Sie die folgenden Endpunkteinstellungen fest:
+ Setzen Sie `DataFormat` auf `Parquet`. 
+ Legen Sie die `cdcPath` Einstellung nicht fest. Stellen Sie sicher, dass Sie Ihre Dateien im Parquet-Format in den angegebenen Schema-/Tabellenordnern erstellen. 

[https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html](https://docs.aws.amazon.com/dms/latest/APIReference/API_S3Settings.html)

### Unterstützte Datentypen für Dateien im Parquet-Format
<a name="CHAP_Source.S3.Parquet.Datatypes"></a>

AWS DMS unterstützt die folgenden Quell- und Zieldatentypen bei der Migration von Daten aus Dateien im Parquet-Format. Stellen Sie vor der Migration sicher, dass Ihre Zieltabelle Spalten mit den richtigen Datentypen enthält.


| Quelldatentyp | Zieldatentyp | 
| --- | --- | 
| BYTE | BINARY | 
| DATE | DATE32 | 
| TIME | TIME32 | 
| DATETIME | TIMESTAMP | 
| INT1 | INT8 | 
| INT2 | INT16 | 
| INT4 | INT32 | 
| INT8 | INT64 | 
| NUMERIC | DECIMAL | 
| REAL4 | FLOAT | 
| REAL8 | DOUBLE | 
| STRING | STRING | 
| UINT1 | UINT8 | 
| UINT2 | UINT16 | 
| UINT4 | UINT32 | 
| UINT8 | UINT | 
| WSTRING | STRING | 
| BLOB | BINARY | 
| NCLOB | STRING | 
| CLOB | STRING | 
| BOOLEAN | BOOL | 

# Verwendung der IBM Db2 für Linux-, Unix-, Windows- und Amazon RDS-Datenbank (Db2 LUW) als Quelle für AWS DMS
<a name="CHAP_Source.DB2"></a>

Mit AWS Database Migration Service () können Sie Daten von einer IBM Db2 for Linux-, Unix-, Windows- und Amazon RDS-Datenbank (Db2 LUW) in jede unterstützte Zieldatenbank migrieren.AWS DMS

Informationen zu Versionen von Db2 unter Linux, Unix, Windows und RDS, die als Quelle AWS DMS unterstützt werden, finden Sie unter. [Quellen für AWS DMS](CHAP_Introduction.Sources.md) 

Sie können Secure Sockets Layer (SSL) verwenden, um Verbindungen zwischen Ihrem Db2 LUW-Endpunkt und der Replikations-Instance zu verschlüsseln. Weitere Informationen zur Verwendung von SSL mit einem Db2 LUW-Endpunkt finden Sie unter [Verwenden von SSL mit AWS Database Migration Service](CHAP_Security.SSL.md).

Beim AWS DMS Lesen von Daten aus einer IBM Db2-Quelldatenbank wird die Standard-Isolationsstufe CURSOR STABILITY (CS) für Db2-Version 9.7 und höher verwendet. Weitere Informationen finden Sie in der Dokumentation zu [IBM Db2 für Linux, UNIX und Windows](https://www.ibm.com/docs/en/db2/12.1.0).

## Voraussetzungen für die Verwendung von Db2 LUW als Quelle für AWS DMS
<a name="CHAP_Source.DB2.Prerequisites"></a>

Die folgenden Voraussetzungen müssen erfüllt sein, damit Sie eine Db2 LUW-Datenbank als Quelle verwenden können.

Zum Aktivieren einer fortlaufenden Replikation, auch als Change Data Capture (CDC) bezeichnet, gehen Sie wie folgt vor:
+ Stellen Sie die Datenbank so ein, dass sie wiederherstellbar ist. AWS DMS Dazu müssen Änderungen erfasst werden. Eine Datenbank ist wiederherstellbar, wenn einer oder beide der Datenbank-Konfigurationsparameter `LOGARCHMETH1` und `LOGARCHMETH2` auf `ON` gesetzt sind.

  Wenn Ihre Datenbank wiederherstellbar ist, AWS DMS können Sie bei Bedarf auf Db2 zugreifen. `ARCHIVE LOG`
+ Stellen Sie sicher, dass die DB2 Transaktionsprotokolle verfügbar sind und über einen ausreichenden Aufbewahrungszeitraum verfügen, bis zu dem sie verarbeitet werden können. AWS DMS
+ DB2 erfordert eine `SYSADM` `DBADM` Autorisierung zum Extrahieren von Transaktionsprotokolldatensätzen. Erteilen Sie dem Benutzerkonto die folgenden Berechtigungen:
  + `SYSADM` oder `DBADM`
  + `DATAACCESS`
**Anmerkung**  
Für reine Volllast-Aufgaben benötigt das DMS-Benutzerkonto die Berechtigung DATAACCESS.
+ Wenn Sie IBM DB2 für LUW Version 9.7 als Quelle verwenden, legen Sie das zusätzliche Verbindungsattribut (ECA) `CurrentLsn` wie folgt fest:

  `CurrentLsn=LSN`, wobei `LSN` eine Protokoll-Sequenznummer (Log Sequence Number, LSN) angibt, bei der die Replikation beginnen soll. Oder `CurrentLsn=scan`.
+ Wenn Sie Amazon RDS for Db2 LUW als Quelle verwenden, stellen Sie sicher, dass die Archivprotokolle für verfügbar sind. AWS DMS Da AWS-managed Db2-Datenbanken die Archivprotokolle so schnell wie möglich löschen, sollten Sie den Zeitraum, für den die Protokolle verfügbar bleiben, verlängern. Um beispielsweise die Aufbewahrung von Protokollen auf 24 Stunden zu erhöhen, führen Sie den folgenden Befehl aus:

  ```
  db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"
  ```

  Weitere Informationen zu den LUW-Prozeduren von Amazon RDS for Db2 finden Sie in der [Referenz zu gespeicherten Prozeduren von Amazon RDS for Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-stored-procedures.html) im *Amazon Relational Database* Service User Guide.
+ Gewähren Sie die folgenden Rechte, wenn Sie spezielle Tests vor der Migration verwenden DB2 :

  ```
  GRANT CONNECT ON DATABASE TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBM.SYSDUMMY1 TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.ENV_INST_INFO TO USER <DMS_USER>;
  GRANT SELECT ON SYSIBMADM.DBCFG TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.SCHEMATA TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.COLUMNS TO USER <DMS_USER>;
  GRANT SELECT ON SYSCAT.TABLES TO USER <DMS_USER>;
  GRANT EXECUTE ON FUNCTION SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID TO <DMS_USER>;
  GRANT EXECUTE ON PACKAGE NULLID.SYSSH200 TO USER <DMS_USER>;
  ```

## Einschränkungen bei der Verwendung von Db2 LUW als Quelle für AWS DMS
<a name="CHAP_Source.DB2.Limitations"></a>

AWS DMS unterstützt keine geclusterten Datenbanken. Sie können jedoch für jeden der Endpunkte eines Clusters eine separate Db2 LUW definieren. Sie können beispielsweise eine Volllast-Migrationsaufgabe mit einem beliebigen Knoten im Cluster erstellen und dann für jeden Knoten separate Aufgaben erstellen.

AWS DMS unterstützt den `BOOLEAN` Datentyp in Ihrer Db2-LUW-Quelldatenbank nicht.

Bei der Verwendung der fortlaufenden Replikation (CDC) gelten die folgenden Einschränkungen:
+ Wenn eine Tabelle mit mehreren Partitionen gekürzt wird, entspricht die Anzahl der in der AWS DMS Konsole angezeigten DDL-Ereignisse der Anzahl der Partitionen. Der Grund hierfür ist, dass Db2 LUW eine separate DDL für jede Partition aufzeichnet.
+ Die folgenden DDL-Aktionen werden für partitionierte Tabellen nicht unterstützt:
  + ALTER TABLE ADD PARTITION
  + ALTER TABLE DETACH PARTITION
  + ALTER TABLE ATTACH PARTITION
+ AWS DMS unterstützt keine laufende Replikationsmigration von einer HADR-Standby-Instanz ( DB2High Availability Disaster Recovery). Auf die Standby-Instance kann nicht zugegriffen werden.
+ Der Datentyp DECFLOAT wird nicht unterstützt. Folglich werden Änderungen an DECFLOAT-Spalten während der fortlaufenden Replikation ignoriert.
+ Die Anweisung RENAME COLUMN wird nicht unterstützt.
+ Bei Aktualisierungen von MDC-Tabellen (Multi-Dimensional Clustering) wird jedes Update in der AWS DMS Konsole als INSERT \$1 DELETE angezeigt.
+ Wenn die Aufgabeneinstellung **Include LOB columns in replication (LOB-Spalten in Replikation einschließen)** nicht aktiviert ist, werden alle Tabellen mit LOB-Spalten während der fortlaufenden Replikation gesperrt.
+ Bei Db2 LUW-Versionen 10.5 und höher werden Zeichenkettenspalten variabler Länge mit gespeicherten Daten ignoriert. out-of-row Diese Einschränkung gilt nur für Tabellen, die mit erweiterter Zeilengröße für Spalten mit Datentypen wie VARCHAR und VARGRAPHIC erstellt wurden. Verschieben Sie die Tabelle in einen Tabellenbereich mit einer höheren Seitengröße, um diese Einschränkung zu umgehen. Weitere Informationen finden Sie unter [Was kann ich tun, wenn ich die Seitengröße von Tablespaces ändern möchte]( https://www.ibm.com/support/pages/what-can-i-do-if-i-want-change-pagesize-db2-tablespaces )? DB2 
+ Bei laufender Replikation unterstützt DMS nicht die Migration von Daten, die auf Seitenebene mit dem LOAD-Hilfsprogramm geladen wurden. DB2 Verwenden Sie stattdessen das IMPORT-Hilfsprogramm, das SQL-Inserts nutzt. Weitere Informationen finden Sie unter [Differences between the import and load utilities]( https://www.ibm.com/docs/en/db2/11.1?topic=utilities-differences-between-import-load-utility). 
+ Während eine Replikationsaufgabe ausgeführt wird, erfasst DMS CREATE TABLE DDLs nur, wenn die Tabellen mit dem DATA CAPTURE CHANGE-Attribut erstellt wurden.
+ Bei der Verwendung des Db2-Datenbankpartitionsfeatures (DPF) gelten für DMS die folgenden Einschränkungen:
  + DMS kann in einer DPF-Umgebung keine Transaktionen zwischen Db2-Knoten koordinieren. Dies ist auf Einschränkungen innerhalb der IBM DB2 READLOG API-Schnittstelle zurückzuführen. In DPF können sich Transaktionen über mehrere Db2-Knoten erstrecken, je nachdem, wie die Daten DB2 partitioniert werden. Daher muss Ihre DMS-Lösung Transaktionen von jedem Db2-Knoten unabhängig voneinander erfassen.
  + DMS kann lokale Transaktionen von jedem Db2-Knoten im DPF-Cluster erfassen, indem die Einstellung `1` auf mehrere DMS-Quellendpunkte `connectNode` gesetzt wird. Diese Konfiguration entspricht den logischen Knotennummern, die in der Serverkonfigurationsdatei definiert sind. DB2 `db2nodes.cfg`
  + Lokale Transaktionen auf einzelnen Db2-Knoten können Teil einer größeren, globalen Transaktion sein. DMS wendet jede lokale Transaktion unabhängig auf dem Ziel an, ohne dass dies mit Transaktionen auf anderen Db2-Knoten koordiniert wird. Diese unabhängige Verarbeitung kann zu Komplikationen führen, insbesondere wenn Zeilen zwischen Partitionen verschoben werden.
  + Wenn DMS von mehreren Db2-Knoten aus repliziert, gibt es keine Garantie für die korrekte Reihenfolge der Operationen auf dem Ziel, da DMS Operationen unabhängig für jeden Db2-Knoten anwendet. Sie müssen sicherstellen, dass die Erfassung lokaler Transaktionen unabhängig von jedem Db2-Knoten für Ihren speziellen Anwendungsfall funktioniert.
  + Bei der Migration aus einer DPF-Umgebung empfehlen wir, zuerst eine Volllastaufgabe ohne zwischengespeicherte Ereignisse auszuführen und dann ausschließlich CDC-Aufgaben auszuführen. Es wird empfohlen, eine Aufgabe pro DB2-Knoten auszuführen, beginnend mit dem Full Load-Startzeitstempel oder LRI (Log Record Identifier), den Sie mit dem zusätzlichen Verbindungsattribut Endpoint festgelegt haben. `StartFromContext` Informationen zur Bestimmung Ihres Replikationsstartpunkts [finden Sie in der *IBM Support-Dokumentation* unter Den LSN- oder LRI-Wert für den Replikationsstart](https://www.ibm.com/support/pages/db2-finding-lsn-or-lri-value-replication-start) ermitteln. 
+ Wenn Sie bei laufender Replikation (CDC) die Replikation ab einem bestimmten Zeitstempel starten möchten, müssen Sie das `StartFromContext` zusätzliche Verbindungsattribut auf den erforderlichen Zeitstempel setzen.
+ Derzeit unterstützt DMS das Db2 PureScale Feature nicht, eine DB2 LUW-Erweiterung, mit der Sie Ihre Datenbanklösung skalieren können.
+ Die `DATA CAPTURE CHANGES` Tabellenoption ist eine entscheidende Voraussetzung für Datenreplikationsprozesse. DB2 Wenn diese Option beim Erstellen von Tabellen nicht aktiviert wird, kann dies zu fehlenden Daten führen, insbesondere bei Replikationsaufgaben, die nur CDC (Change Data Capture) betreffen, die von einem früheren Startpunkt aus initiiert wurden. AWS DMS aktiviert dieses Attribut standardmäßig, wenn eine CDC- oder FULL\$1CDC-Aufgabe neu gestartet wird. Es kann jedoch sein, dass alle Änderungen, die vor dem Neustart der Aufgabe an der Quelldatenbank vorgenommen wurden, übersehen werden.

  ```
  ALTER TABLE TABLE_SCHEMA.TABLE_NAME DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;
  ```

## Endpunkteinstellungen bei Verwendung von Db2 LUW als Quelle für AWS DMS
<a name="CHAP_Source.DB2.ConnectionSettings"></a>

Sie können die Einstellungen angeben, wenn Sie den Quellendpunkt mithilfe der AWS DMS Konsole erstellen, oder indem Sie den `create-endpoint` Befehl in [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html), mit dem

`--ibm-db2-settings '{"EndpointSetting1": "value1","EndpointSetting2": "value2"}'`

JSON-Syntax.

Die folgende Tabelle zeigt die Endpunkteinstellungen, die Sie mit Db2 LUW als Quelle verwenden können.


| Name der Einstellung | Description | 
| --- | --- | 
|  `CurrentLsn`  |  Verwenden Sie für die laufende Replikation (CDC) `CurrentLsn`, um eine Protokoll-Sequenznummer (Log Sequence Number, LSN) anzugeben, ab der die Replikation beginnen soll.   | 
|  `MaxKBytesPerRead`  |  Maximale Anzahl von Bytes pro Lesezugriff als NUMBER-Wert. Der Standardwert ist 64 KB.  | 
|  `SetDataCaptureChanges`  |  Aktiviert die fortlaufende Replikation (CDC) als BOOLEAN-Wert. Der Standardwert ist true.  | 

## Zusätzliche Verbindungsattribute (ECAs) bei Verwendung von Db2 LUW als Quelle für AWS DMS
<a name="CHAP_Source.DB2.ConnectionAttrib"></a>

Sie können die zusätzlichen Verbindungsattribute (ECAs) angeben, wenn Sie den Quellendpunkt mit der AWS DMS Konsole erstellen, oder indem Sie den `create-endpoint` Befehl in [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/create-endpoint.html), mit dem

`--extra-connection-attributes 'ECAname1=value1;ECAname2=value2;'`

In der folgenden Tabelle sind ECAs die aufgeführt, die Sie mit Db2 LUW als Quelle verwenden können.


| Attributname | Description | 
| --- | --- | 
|  `ConnectionTimeout`  |  Verwenden Sie diesen ECA, um das Zeitlimit für die Endpunktverbindung für den Db2-LUW-Endpunkt in Sekunden festzulegen. Der Standardwert liegt bei 10 Sekunden. Beispiel: `ConnectionTimeout=30;`  | 
|  `executeTimeout`  |  Zusätzliches Verbindungsattribut, das das Zeitlimit für Anweisungen (Abfragen) für den DB2 LUW-Endpunkt in Sekunden festlegt. Der Standardwert liegt bei 60 Sekunden. Beispiel: `executeTimeout=120;`  | 
|  `StartFromContext`  |  Verwenden Sie `StartFromContext` für die laufende Replikation (CDC), um die Untergrenze eines Protokolls anzugeben, bei der die Replikation beginnen soll. `StartFromContext` akzeptiert verschiedene Formen von Werten. Gültige Werte sind: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.DB2.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.DB2.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/dms/latest/userguide/CHAP_Source.DB2.html) Um den LRI/LSN Bereich einer Protokolldatei zu ermitteln, führen Sie den `db2flsn` Befehl wie im folgenden Beispiel gezeigt aus. <pre>db2flsn -db SAMPLE -lrirange 2</pre> Die Ausgabe sieht bei diesem Beispiel in etwa wie folgt aus.  <pre><br />S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to <br />000000000000000100000000000022CC000000000004FB13</pre> In dieser Ausgabe ist die Protokolldatei S0000002.LOG und der **StartFromContext**LRI-Wert entspricht den 34 Byte am Ende des Bereichs. <pre>0100000000000022CC000000000004FB13</pre>  | 

## Quelldatentypen für IBM Db2 LUW
<a name="CHAP_Source.DB2.DataTypes"></a>

Datenmigration, die Db2 LUW als Quelle verwendet, AWS DMS unterstützt die meisten Db2 LUW-Datentypen. Die folgende Tabelle zeigt die Db2-LUW-Quelldatentypen, die bei der Verwendung unterstützt werden, AWS DMS sowie die Standardzuweisung von Datentypen. AWS DMS Weitere Informationen über die Db2 LUW-Datentypen finden Sie in der [Db2 LUW-Dokumentation](https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008483.html).

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 unter. [Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md)


|  Db2 LUW-Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
|  INTEGER  |  INT4  | 
|  SMALLINT  |  INT2  | 
|  BIGINT  |  INT8  | 
|  DECIMAL (p,s)  |  NUMERIC (p,s)  | 
|  FLOAT  |  REAL8  | 
|  DOUBLE  |  REAL8  | 
|  REAL  |  REAL4  | 
|  DECFLOAT (p)  |  Wenn die Genauigkeit 16 ist, dann REAL8; wenn die Genauigkeit 34 ist, dann STRING  | 
|  GRAPHIC (n)  |  WSTRING für grafische Zeichenfolgen mit fester Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 127  | 
|  VARGRAPHIC (n)  |  WSTRING für grafische Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 16.352  | 
|  LONG VARGRAPHIC (n)  |  CLOB für grafische Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 16.352  | 
|  CHARACTER (n)  |  STRING für Zeichenfolgen mit fester Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 255  | 
|  VARCHAR (n)  |  STRING für Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 32.704  | 
|  LONG VARCHAR (n)  |  CLOB für Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 32.704  | 
|  CHAR (n) FOR BIT DATA  |  BYTES  | 
|  VARCHAR (n) FOR BIT DATA  |  BYTES  | 
|  LONG VARCHAR FOR BIT DATA  |  BYTES  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP (ZEITSTEMPEL)  |  DATETIME  | 
|  BLOB (n)  |  BLOB Die maximale Länge beträgt 2.147.483.647 Byte.  | 
|  CLOB (n)  |  CLOB Die maximale Länge beträgt 2.147.483.647 Byte.  | 
|  DBCLOB (n)  |  CLOB Die maximale Länge beträgt 1.073.741.824 Doppelbyte-Zeichen.  | 
|  XML  |  CLOB  | 

# Verwendung von IBM Db2 for z/OS Databases als Quelle für AWS DMS
<a name="CHAP_Source.DB2zOS"></a>

Mit AWS Database Migration Service (AWS DMS) können Sie Daten von einer IBM for z/OS Datenbank in jede unterstützte Zieldatenbank migrieren. 

Hinweise zu Versionen von Db2 für z/OS , die als Quelle AWS DMS unterstützt werden, finden Sie unter[Quellen für AWS DMS](CHAP_Introduction.Sources.md).

## Voraussetzungen für die Verwendung von Db2 for z/OS als Quelle für AWS DMS
<a name="CHAP_Source.DB2zOS.Prerequisites"></a>

Um eine IBM Db2 for z/OS Datenbank als Quelle in zu verwenden AWS DMS, gewähren Sie dem z/OS Benutzer Db2 for, der in den Verbindungseinstellungen für den Quellendpunkt angegeben ist, die folgenden Rechte.

```
GRANT SELECT ON SYSIBM.SYSTABLES TO Db2USER;
GRANT SELECT ON SYSIBM.SYSTABLESPACE TO Db2USER;
GRANT SELECT ON SYSIBM.SYSTABLEPART TO Db2USER;                    
GRANT SELECT ON SYSIBM.SYSCOLUMNS TO Db2USER;
GRANT SELECT ON SYSIBM.SYSDATABASE TO Db2USER;
GRANT SELECT ON SYSIBM.SYSDUMMY1 TO Db2USER
```

Gewähren Sie außerdem SELECT ON `user defined`-Quelltabellen.

Ein AWS DMS IBM Db2 for z/OS Source-Endpunkt benötigt den IBM Data Server Driver for ODBC, um auf Daten zuzugreifen. Der Datenbankserver muss über eine gültige IBM-ODBC-Connect-Lizenz für DMS verfügen, um eine Verbindung zu diesem Endpunkt herstellen zu können.

## Einschränkungen bei der Verwendung von Db2 for z/OS als Quelle für AWS DMS
<a name="CHAP_Source.DB2zOS.Limitations"></a>

Die folgenden Einschränkungen gelten, wenn Sie eine IBM Db2 for z/OS -Datenbank als Quelle für verwenden: AWS DMS
+ Es werden nur Replikationsaufgaben mit Volllast unterstützt. Change Data Capture (CDC) wird nicht unterstützt.
+ Paralleles Laden wird nicht unterstützt.
+ Die Datenvalidierung von Ansichten wird nicht unterstützt.
+ Schema-, Tabellen- und Spaltennamen müssen in Tabellenzuordnungen für Ebenentransformationen und Auswahlfilter auf Column/table Zeilenebene in GROSSBUCHSTABEN angegeben werden.

## Quelldatentypen für IBM Db2 für z/OS
<a name="CHAP_Source.DB2zOS.DataTypes"></a>

Datenmigrationen, bei denen Db2 for z/OS als Quelle für verwendet wird, AWS DMS unterstützen die meisten Db2-Datentypen. z/OS In der folgenden Tabelle sind die Db2-Datentypen für z/OS Quellen aufgeführt, die bei der Verwendung unterstützt werden AWS DMS, sowie die Standardzuweisung von Datentypen. AWS DMS 

Weitere Informationen zu Db2 für z/OS Datentypen finden Sie in der Dokumentation zu [IBM Db2](https://www.ibm.com/docs/en/db2-for-zos/12?topic=elements-data-types). z/OS 

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 unter. [Datentypen für den AWS Database Migration Service](CHAP_Reference.DataTypes.md)


|  Db2 für z/OS Datentypen  |  AWS DMS Datentypen  | 
| --- | --- | 
|  INTEGER  |  INT4  | 
|  SMALLINT  |  INT2  | 
|  BIGINT  |  INT8  | 
|  DECIMAL (p,s)  |  NUMERIC (p,s) Wenn ein Dezimalpunkt in der DB2 Konfiguration auf ein Komma (,) gesetzt ist, konfigurieren Sie Replicate so, dass die Einstellung unterstützt wird DB2 .   | 
|  FLOAT  |  REAL8  | 
|  DOUBLE  |  REAL8  | 
|  REAL  |  REAL4  | 
|  DECFLOAT (p)  |  Wenn die Genauigkeit 16 ist, dann REAL8; wenn die Genauigkeit 34 ist, dann STRING  | 
|  GRAPHIC (n)  |  Wenn n>=127, dann WSTRING für grafische Zeichenfolgen mit fester Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 127  | 
|  VARGRAPHIC (n)  |  WSTRING für grafische Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 16.352  | 
|  LONG VARGRAPHIC (n)  |  CLOB für grafische Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 16.352  | 
|  CHARACTER (n)  |  STRING für Zeichenfolgen mit fester Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 255  | 
|  VARCHAR (n)  |  STRING für Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 32.704  | 
|  LONG VARCHAR (n)  |  CLOB für Zeichenfolgen mit variabler Länge und dem Typ Doppelbyte-Zeichen mit einer Länge größer 0 und kleiner oder gleich 32.704  | 
|  CHAR (n) FOR BIT DATA  |  BYTES  | 
|  VARCHAR (n) FOR BIT DATA  |  BYTES  | 
|  LONG VARCHAR FOR BIT DATA  |  BYTES  | 
|  DATE  |  DATE  | 
|  TIME  |  TIME  | 
|  TIMESTAMP (ZEITSTEMPEL)  |  DATETIME  | 
|  BLOB (n)  |  BLOB Die maximale Länge beträgt 2.147.483.647 Byte.  | 
|  CLOB (n)  |  CLOB Die maximale Länge beträgt 2.147.483.647 Byte.  | 
|  DBCLOB (n)  |  CLOB Die maximale Länge beträgt 1.073.741.824 Doppelbyte-Zeichen.  | 
|  XML  |  CLOB  | 
|  BINARY  |  BYTES  | 
|  VARBINARY  |  BYTES  | 
|  ROWID  |  BYTES. Weitere Informationen zum Arbeiten mit ROWID finden Sie in den folgenden Abschnitten:   | 
|  TIMESTAMP WITH TIME ZONE  |  Nicht unterstützt  | 

ROWID-Spalten werden standardmäßig migriert, wenn der Zieltabellen-Vorbereitungsmodus für die Aufgabe auf DROP\$1AND\$1CREATE (Standard) gesetzt ist. Bei der Datenüberprüfung werden diese Spalten ignoriert, da die Zeilen außerhalb der spezifischen Datenbank und Tabelle bedeutungslos sind. Sie können einen der folgenden Schritte ausführen, um die Migration dieser Spalten zu deaktivieren: 
+ Erstellen Sie die Zieltabelle ohne diese Spalten vorab. Setzen Sie dann den Zieltabellen-Vorbereitungsmodus der Aufgabe entweder auf DO\$1NOTHING oder TRUNCATE\$1BEFORE\$1LOAD. Sie können AWS Schema Conversion Tool (AWS SCT) verwenden, um die Zieltabelle ohne die Spalten vorab zu erstellen.
+ Fügen Sie einer Aufgabe eine Tabellenzuordnungsregel hinzu, die diese Spalten herausfiltert, sodass sie ignoriert werden. Weitere Informationen finden Sie unter [Transformationsregeln und Aktionen](CHAP_Tasks.CustomizingTasks.TableMapping.SelectionTransformation.Transformations.md).

## EBCDIC-Sortierungen im Service PostgreSQL für Mainframe-Modernisierung AWS
<a name="CHAP_Source.DB2zOS.EBCDIC"></a>

AWS Das Mainframe-Modernisierungsprogramm unterstützt Sie bei der Modernisierung Ihrer Mainframe-Anwendungen auf verwaltete Laufzeitumgebungen. AWS Es stellt Tools und Ressourcen bereit, die Sie bei der Planung und Implementierung von Migrations- und Modernisierungsprojekten unterstützen. [Weitere Informationen zur Mainframe-Modernisierung und -Migration finden Sie unter Mainframe-Modernisierung mit. AWS](https://aws.amazon.com/mainframe/)

Einige IBM Db2 for z/OS -Datensätze sind im Zeichensatz Extended Binary Coded Decimal Interchange (EBCDIC) codiert. Dieser Zeichensatz wurde entwickelt, bevor ASCII (American Standard Code for Information Interchange) allgemein verwendet wurde. Eine *Codepage* ordnet jedes Textzeichen den Zeichen in einem Zeichensatz zu. Eine herkömmliche Codepage enthält die Zuordnungsinformationen zwischen einem Codepoint und einer Zeichen-ID. Eine *Zeichen-ID* ist eine 8-Byte-Datenzeichenfolge. Ein *Codepoint* ist eine 8-Bit-Binärzahl, die ein Zeichen darstellt. Codepoints werden in der Regel als hexadezimale Abbildungen ihrer Binärwerte angezeigt.

Wenn Sie derzeit entweder Micro Focus oder eine BluAge Komponente des Mainframe Modernization Service verwenden, müssen Sie angeben, dass bestimmte Codepunkte *verschoben* (übersetzt) werden AWS DMS sollen. Sie können die AWS DMS Aufgabeneinstellungen verwenden, um die Schichten durchzuführen. Das folgende Beispiel zeigt, wie Sie die AWS DMS `CharacterSetSettings` Operation verwenden, um die Schichten in einer DMS-Aufgabeneinstellung abzubilden.

```
"CharacterSetSettings": {
        "CharacterSetSupport": null,
        "CharacterReplacements": [
{"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
            }
        ]
    }
```

Es gibt bereits einige EBCDIC-Sortierungen für PostgreSQL, die die erforderlichen Änderungen erfassen. Es werden verschiedene Codepages unterstützt. Die folgenden Abschnitte enthalten JSON-Beispiele dafür, was Sie für alle unterstützten Codepages ändern müssen. Sie können einfach copy-and-past das notwendige JSON verwenden, das Sie für Ihre DMS-Aufgabe benötigen.

### Spezifische EBCDIC-Sortierungen für Micro Focus
<a name="CHAP_Source.DB2zOS.EBCDIC.MicroFocus"></a>

Ändern Sie bei Micro Focus eine Teilmenge von Zeichen wie erforderlich für die folgenden Sortierungen.

```
 da-DK-cp1142m-x-icu
 de-DE-cp1141m-x-icu
 en-GB-cp1146m-x-icu
 en-US-cp1140m-x-icu
 es-ES-cp1145m-x-icu
 fi-FI-cp1143m-x-icu
 fr-FR-cp1147m-x-icu
 it-IT-cp1144m-x-icu
 nl-BE-cp1148m-x-icu
```

**Example Datenänderungen pro Sortierung bei Micro Focus:**  
**en\$1us\$1cp1140m**  
Codeänderung:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1141m**  
Codeänderung:  

```
0000    0180
00B8    0160
00BC    0161
00BD    017D
00BE    017E
00A8    0152
00B4    0153
00A6    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1142m**  
Codeänderung:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1143m**  
Codeänderung:  

```
0000    0180
00B8    0160
00BC    0161
00BD    017D
00BE    017E
00A8    0152
00B4    0153
00A6    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1144m**  
Codeänderung:  

```
0000    0180
00B8    0160
00BC    0161
00BD    017D
00BE    017E
00A8    0152
00B4    0153
00A6    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1145m**  
Codeänderung:  

```
0000    0180
00A6    0160
00B8    0161
00A8    017D
00BC    017E
00BD    0152
00BE    0153
00B4    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1146m**  
Codeänderung:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1147m**  
Codeänderung:  

```
0000    0180
00B8    0160
00A8    0161
00BC    017D
00BD    017E
00BE    0152
00B4    0153
00A6    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0178"}
```
**en\$1us\$1cp1148m**  
Codeänderung:  

```
0000    0180
00A6    0160
00B8    0161
00BC    017D
00BD    017E
00BE    0152
00A8    0153
00B4    0178
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0000","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "00A6","TargetCharacterCodePoint": "0160"}
,{"SourceCharacterCodePoint": "00B8","TargetCharacterCodePoint": "0161"}
,{"SourceCharacterCodePoint": "00BC","TargetCharacterCodePoint": "017D"}
,{"SourceCharacterCodePoint": "00BD","TargetCharacterCodePoint": "017E"}
,{"SourceCharacterCodePoint": "00BE","TargetCharacterCodePoint": "0152"}
,{"SourceCharacterCodePoint": "00A8","TargetCharacterCodePoint": "0153"}
,{"SourceCharacterCodePoint": "00B4","TargetCharacterCodePoint": "0178"}
```

### BluAge spezifische EBCDIC-Kollationen
<a name="CHAP_Source.DB2zOS.EBCDIC.BluAge"></a>

Verschieben Sie für BluAge alle folgenden *niedrigen und *hohen Werte** nach Bedarf. Diese Sortierungen sollten nur zur Unterstützung des BluAge Mainframe-Migrationsdienstes verwendet werden.

```
da-DK-cp1142b-x-icu
 da-DK-cp277b-x-icu
 de-DE-cp1141b-x-icu
 de-DE-cp273b-x-icu
 en-GB-cp1146b-x-icu
 en-GB-cp285b-x-icu
 en-US-cp037b-x-icu
 en-US-cp1140b-x-icu
 es-ES-cp1145b-x-icu
 es-ES-cp284b-x-icu
 fi-FI-cp1143b-x-icu
 fi-FI-cp278b-x-icu 
 fr-FR-cp1147b-x-icu
 fr-FR-cp297b-x-icu
 it-IT-cp1144b-x-icu
 it-IT-cp280b-x-icu
 nl-BE-cp1148b-x-icu
 nl-BE-cp500b-x-icu
```

**Example BluAge Datenverschiebungen:**  
**da-DK-cp277b** und **da-DK-cp1142b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**de-DE-273b** und **de-DE-1141b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**en-GB-285b** und **en-GB-1146b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
{"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**en-us-037b** und **en-us-1140b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
{"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**es-ES-284b** und **es-ES-1145b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**fi\$1FI-278b** und **fi-FI-1143b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**fr-FR-297b** und **fr-FR-1147b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
{"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**it-IT-280b** und **it-IT-1144b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```
**nl-BE-500b** und **nl-BE-1148b**  
Codeänderung:  

```
0180    0180
0001    0181
0002    0182
0003    0183
009C    0184
0009    0185
0086    0186
007F    0187
0097    0188
008D    0189
008E    018A
000B    018B
000C    018C
000D    018D
000E    018E
000F    018F
0010    0190
0011    0191
0012    0192
0013    0193
009D    0194
0085    0195
0008    0196
0087    0197
0018    0198
0019    0199
0092    019A
008F    019B
001C    019C
001D    019D
001E    019E
001F    019F
0080    01A0
0081    01A1
0082    01A2
0083    01A3
0084    01A4
000A    01A5
0017    01A6
001B    01A7
0088    01A8
0089    01A9
008A    01AA
008B    01AB
008C    01AC
0005    01AD
0006    01AE
0007    01AF
0090    01B0
0091    01B1
0016    01B2
0093    01B3
0094    01B4
0095    01B5
0096    01B6
0004    01B7
0098    01B8
0099    01B9
009A    01BA
009B    01BB
0014    01BC
0015    01BD
009E    01BE
001A    01BF
009F    027F
```
Entsprechendes Eingabe-Mapping für eine AWS DMS Aufgabe:  

```
 {"SourceCharacterCodePoint": "0180","TargetCharacterCodePoint": "0180"}
,{"SourceCharacterCodePoint": "0001","TargetCharacterCodePoint": "0181"}
,{"SourceCharacterCodePoint": "0002","TargetCharacterCodePoint": "0182"}
,{"SourceCharacterCodePoint": "0003","TargetCharacterCodePoint": "0183"}
,{"SourceCharacterCodePoint": "009C","TargetCharacterCodePoint": "0184"}
,{"SourceCharacterCodePoint": "0009","TargetCharacterCodePoint": "0185"}
,{"SourceCharacterCodePoint": "0086","TargetCharacterCodePoint": "0186"}
,{"SourceCharacterCodePoint": "007F","TargetCharacterCodePoint": "0187"}
,{"SourceCharacterCodePoint": "0097","TargetCharacterCodePoint": "0188"}
,{"SourceCharacterCodePoint": "008D","TargetCharacterCodePoint": "0189"}
,{"SourceCharacterCodePoint": "008E","TargetCharacterCodePoint": "018A"}
,{"SourceCharacterCodePoint": "000B","TargetCharacterCodePoint": "018B"}
,{"SourceCharacterCodePoint": "000C","TargetCharacterCodePoint": "018C"}
,{"SourceCharacterCodePoint": "000D","TargetCharacterCodePoint": "018D"}
,{"SourceCharacterCodePoint": "000E","TargetCharacterCodePoint": "018E"}
,{"SourceCharacterCodePoint": "000F","TargetCharacterCodePoint": "018F"}
,{"SourceCharacterCodePoint": "0010","TargetCharacterCodePoint": "0190"}
,{"SourceCharacterCodePoint": "0011","TargetCharacterCodePoint": "0191"}
,{"SourceCharacterCodePoint": "0012","TargetCharacterCodePoint": "0192"}
,{"SourceCharacterCodePoint": "0013","TargetCharacterCodePoint": "0193"}
,{"SourceCharacterCodePoint": "009D","TargetCharacterCodePoint": "0194"}
,{"SourceCharacterCodePoint": "0085","TargetCharacterCodePoint": "0195"}
,{"SourceCharacterCodePoint": "0008","TargetCharacterCodePoint": "0196"}
,{"SourceCharacterCodePoint": "0087","TargetCharacterCodePoint": "0197"}
,{"SourceCharacterCodePoint": "0018","TargetCharacterCodePoint": "0198"}
,{"SourceCharacterCodePoint": "0019","TargetCharacterCodePoint": "0199"}
,{"SourceCharacterCodePoint": "0092","TargetCharacterCodePoint": "019A"}
,{"SourceCharacterCodePoint": "008F","TargetCharacterCodePoint": "019B"}
,{"SourceCharacterCodePoint": "001C","TargetCharacterCodePoint": "019C"}
,{"SourceCharacterCodePoint": "001D","TargetCharacterCodePoint": "019D"}
,{"SourceCharacterCodePoint": "001E","TargetCharacterCodePoint": "019E"}
,{"SourceCharacterCodePoint": "001F","TargetCharacterCodePoint": "019F"}
,{"SourceCharacterCodePoint": "0080","TargetCharacterCodePoint": "01A0"}
,{"SourceCharacterCodePoint": "0081","TargetCharacterCodePoint": "01A1"}
,{"SourceCharacterCodePoint": "0082","TargetCharacterCodePoint": "01A2"}
,{"SourceCharacterCodePoint": "0083","TargetCharacterCodePoint": "01A3"}
,{"SourceCharacterCodePoint": "0084","TargetCharacterCodePoint": "01A4"}
,{"SourceCharacterCodePoint": "000A","TargetCharacterCodePoint": "01A5"}
,{"SourceCharacterCodePoint": "0017","TargetCharacterCodePoint": "01A6"}
,{"SourceCharacterCodePoint": "001B","TargetCharacterCodePoint": "01A7"}
,{"SourceCharacterCodePoint": "0088","TargetCharacterCodePoint": "01A8"}
,{"SourceCharacterCodePoint": "0089","TargetCharacterCodePoint": "01A9"}
,{"SourceCharacterCodePoint": "008A","TargetCharacterCodePoint": "01AA"}
,{"SourceCharacterCodePoint": "008B","TargetCharacterCodePoint": "01AB"}
,{"SourceCharacterCodePoint": "008C","TargetCharacterCodePoint": "01AC"}
,{"SourceCharacterCodePoint": "0005","TargetCharacterCodePoint": "01AD"}
,{"SourceCharacterCodePoint": "0006","TargetCharacterCodePoint": "01AE"}
,{"SourceCharacterCodePoint": "0007","TargetCharacterCodePoint": "01AF"}
,{"SourceCharacterCodePoint": "0090","TargetCharacterCodePoint": "01B0"}
,{"SourceCharacterCodePoint": "0091","TargetCharacterCodePoint": "01B1"}
,{"SourceCharacterCodePoint": "0016","TargetCharacterCodePoint": "01B2"}
,{"SourceCharacterCodePoint": "0093","TargetCharacterCodePoint": "01B3"}
,{"SourceCharacterCodePoint": "0094","TargetCharacterCodePoint": "01B4"}
,{"SourceCharacterCodePoint": "0095","TargetCharacterCodePoint": "01B5"}
,{"SourceCharacterCodePoint": "0096","TargetCharacterCodePoint": "01B6"}
,{"SourceCharacterCodePoint": "0004","TargetCharacterCodePoint": "01B7"}
,{"SourceCharacterCodePoint": "0098","TargetCharacterCodePoint": "01B8"}
,{"SourceCharacterCodePoint": "0099","TargetCharacterCodePoint": "01B9"}
,{"SourceCharacterCodePoint": "009A","TargetCharacterCodePoint": "01BA"}
,{"SourceCharacterCodePoint": "009B","TargetCharacterCodePoint": "01BB"}
,{"SourceCharacterCodePoint": "0014","TargetCharacterCodePoint": "01BC"}
,{"SourceCharacterCodePoint": "0015","TargetCharacterCodePoint": "01BD"}
,{"SourceCharacterCodePoint": "009E","TargetCharacterCodePoint": "01BE"}
,{"SourceCharacterCodePoint": "001A","TargetCharacterCodePoint": "01BF"}
,{"SourceCharacterCodePoint": "009F","TargetCharacterCodePoint": "027F"}
```