AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Wie behebe ich inkonsistente Daten, wenn ich einen Amazon-S3-Bucket als Ziel für die AWS-DMS-Migration verwende?
Ich möchte inkonsistente Daten beheben, wenn ich Amazon Simple Storage Service (Amazon S3) als Ziel für die Migration mit dem AWS Database Migration Service (AWS DMS) verwende.
Kurzbeschreibung
Wenn du Daten von einer Quelldatenbank in einen S3-Bucket migrierst, können nach den Schemaänderungen fehlende Daten, doppelte Daten oder fehlende Spalten auftreten. Dies liegt daran, dass Amazon S3 keine Primärschlüssel, Updates oder referenzielle Integrität unterstützt.
Führe die Lösung für das Problem aus, um inkonsistente Daten zu beheben.
Lösung
Fehlende oder entfernte Daten im S3-Ziel
Wenn in der Quelldatenbank TRUNCATE TABLE- oder DROP TABLE-Operationen auftreten, repliziert AWS DMS diese Operationen auf Amazon S3. Diese Replikation kann zu fehlenden Daten führen.
Um zu verhindern, dass Daten durch TRUNCATE- oder DROP TABLE-Operationen fehlen oder entfernt werden, überprüfe und passe die Einstellungen für die Verarbeitung der Data Definition Language (DDL) an. Führe die folgenden Schritte aus:
-
Öffne die AWS-DMS-Konsole.
-
Wähle im Navigationsbereich unter Migrieren oder replizieren die Option Aufgaben aus.
-
Wähle die Aufgabe aus.
-
Überprüfe, ob der Aufgabenstatus Gestoppt ist.
-
Wähle Ändern aus.
-
Wähle Aufgabeneinstellungen aus.
-
Wähle JSON-Editor aus.
-
Suche den Parameterabschnitt ChangeProcessingDdlHandlingPolicy. Setze dann die Parameter HandleSourceTableTruncated und HandleSourceTableDropped auf False. Beispielkonfiguration:
"ChangeProcessingDdlHandlingPolicy": { "HandleSourceTableDropped": false, "HandleSourceTableTruncated": false } -
Wähle Speichern aus.
-
Wähle Aktionen und dann Fortsetzen aus.
Amazon S3 spiegelt keine Schemaänderungen wider
Wenn du einer Tabelle in der Quelle neue Spalten hinzufügst, aber die Schemaentwicklung nicht aktivierst, erfasst AWS DMS die Änderungen möglicherweise nicht.
Führe die folgenden Schritte aus, um fehlende Schemaänderungen zu beheben:
-
Öffne die AWS-DMS-Konsole.
-
Wähle im Navigationsbereich unter Migrieren oder replizieren die Option Aufgaben aus.
-
Wähle die Aufgabe aus.
-
Überprüfe, ob der Aufgabenstatus Gestoppt ist.
-
Wähle Ändern aus.
-
Wähle Aufgabeneinstellungen aus.
-
Wähle JSON-Editor aus.
-
Suche den Parameterabschnitt ChangeProcessingDdlHandlingPolicy. Setze dann den Parameter HandleSourceTableAltered auf True. Beispielkonfiguration:
"ChangeProcessingDdlHandlingPolicy": { "HandleSourceTableAltered": true } -
Wähle Speichern aus.
-
Wähle Aktionen und dann Fortsetzen aus.
-
Um die neuen Spalten in deine Amazon-S3-Daten aufzunehmen, lade die Tabelle neu.
Mehrere Aufgaben schreiben in denselben Amazon-S3-Pfad und verursachen doppelte oder inkonsistente Daten
Wenn mehrere AWS-DMS-Aufgaben in denselben S3-Pfad schreiben, kommt es zu doppelten Daten, da Amazon S3 alle eingehenden Objekte speichert.
Gehe wie folgt vor, um dieses Problem zu beheben:
- Öffne die AWS-DMS-Konsole.
- Wähle im Navigationsbereich unter Migrieren oder replizieren die Option Aufgaben aus.
- Wähle die Aufgabe aus.
- Überprüfe, ob der Aufgabenstatus Gestoppt ist.
Hinweis: Stelle sicher, dass du ungenutzte Aufgaben oder Testaufgaben stoppst, die immer noch Daten schreiben. - Wähle im Navigationsbereich Endpunkte aus.
- Wähle den Zielendpunkt aus.
- Wähle Ändern aus.
- Weise einen eindeutigen Wert für BucketFolder zu.
- Wähle Speichern aus.
Hinweis: AWS DMS testet automatisch die Verbindung vom Ziel zur Replikations-Instance. Stelle sicher, dass der Verbindungstest erfolgreich abgeschlossen wird. - Wähle im Navigationsbereich unter Migrieren oder replizieren die Option Aufgaben aus.
- Wähle die Aufgabe aus und wähle dann Aktionen aus. Wähle Neu starten aus.
- Wiederhole die Schritte 2 bis 11 für jede Aufgabe, die von derselben Quelle repliziert wird.
TargetTablePrepMode ist auf DO_NOTHING eingestellt und verursacht doppelte Datensätze
Wenn du für deine Aufgabe den TargetTablePrepMode auf DO_NOTHING setzt und sie während der Volllastphase stoppt, schreibt die Aufgabe die Volllastdateien beim Neustart erneut. Dies führt zu doppelten Volllastdaten, da Amazon S3 keine automatischen Updates oder Bereinigungen unterstützt.
Gehe wie folgt vor, um dieses Problem zu beheben:
- Öffne die AWS-DMS-Konsole.
- Wähle im Navigationsbereich unter Migrieren oder replizieren die Option Aufgaben aus.
- Wähle die Aufgabe aus.
- Überprüfe, ob der Aufgabenstatus Gestoppt ist.
- Wähle Ändern aus.
- Wähle Aufgabeneinstellungen aus.
- Wähle JSON-Editor aus.
- Suche den Parameterabschnitt FullLoadSettings. Setze den Parameter TargetTablePrepMode auf TRUNCATE_BEFORE_LOAD. Beispielkonfiguration:
Hinweis: Um Duplikate zu vermeiden, wenn TargetTablePrepMode auf DO_NOTHING gesetzt ist, stoppe Aufgaben erst nach Abschluss der Volllastphase."FullLoadSettings": { "TargetTablePrepMode": "TRUNCATE_BEFORE_LOAD" } - Bevor du die Aufgabe neu startest, lösche die zuvor geschriebenen Volllastdateien manuell aus deinem S3-Bucket.
Weitere Informationen
Endpunkteinstellungen bei der Verwendung von Amazon S3 als Ziel für AWS DMS
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 3 Jahren
AWS OFFICIALAktualisiert vor 5 Jahren