AWS DMS Resynchronisierung von Daten - AWS Database Migration Service

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

AWS DMS Resynchronisierung von Daten

AWS Database Migration Service (AWS DMS) Die Resynchronisierung von Daten behebt automatisch Dateninkonsistenzen, die bei der Datenvalidierung zwischen Ihren Quell- und Zieldatenbanken festgestellt wurden. Diese Funktion funktioniert als Teil Ihrer bestehenden DMS-Migrationsaufgaben und stellt sicher, dass die richtigen Aktualisierungen auf der Grundlage Ihrer Aufgabenkonfigurationen, Verbindungseinstellungen, Tabellenzuordnungen und Transformationen durchgeführt werden.

Die Funktion zur erneuten Synchronisierung von Daten liest Validierungsfehler aus einer Steuertabelle in der Zieldatenbank und führt die entsprechenden Korrekturvorgänge aus. Wenn eine Nichtübereinstimmung festgestellt wird, werden die aktuellen Daten mithilfe des im Fehlerdatensatz gespeicherten Primärschlüssels aus der Quelle abgerufen und auf das Ziel angewendet, wobei alle konfigurierten Transformationen berücksichtigt werden. Weitere Informationen finden Sie unter awsdms_validation_failures_v2Steuertabelle.

Das Verhalten hängt von Ihrem Migrationstyp ab. Bei full-load-only Aufgaben wird die Datenresynchronisierung einmal ausgeführt, nachdem das erste Laden und die Validierung abgeschlossen sind. Bei Aufgaben mit Change Data Capture (CDC) erfolgt die Resynchronisierung von Daten nach einem konfigurierten Zeitplan, wobei die Replikation und Validierung vorübergehend unterbrochen werden, während Korrekturen angewendet werden.

Während der CDC-Resynchronisierung:

  • Replikation und Validierung werden vorübergehend unterbrochen.

  • Bei der erneuten Datensynchronisierung werden bestehende Validierungsfehler verarbeitet.

  • Die normale Replikation und Validierung werden fortgesetzt.

  • Der Vorgang wird auf der Grundlage Ihres konfigurierten Zeitplans wiederholt.

Bei der erneuten Synchronisierung von Daten wird automatisch der Status jedes Reparaturvorgangs verfolgt und detaillierte Messwerte in Form von Tabellenstatistiken bereitgestellt.

Voraussetzungen:

Für die Funktion zum erneuten Synchronisieren von Daten sind folgende Voraussetzungen erforderlich:

  • Sie müssen über die AWS DMS Engine-Version 3.6.1 oder höher verfügen.

  • Sie müssen die Einstellungen für Zeitplan und Zeitdauer für Aufgaben konfigurieren, für die eine fortlaufende Replikation erforderlich ist. Für Aufgaben, die nur Volllast ausführen, sind diese Einstellungen nicht erforderlich.

Einschränkungen

Für die Funktion zur erneuten Synchronisierung von Daten gelten folgende Einschränkungen:

  • Die Datenresynchronisierung unterstützt nur Oracle und SQL Server als Quelldatenbank.

  • Data Resync unterstützt PostgreSQL und die Amazon Aurora PostgreSQL-kompatible Engine als Zieldatenbank.

  • Alle Tabellen in Ihrer Quell- und Zieldatenbank müssen Primärschlüssel haben. Die Validierung unterstützt keine Tabellen ohne Primärschlüssel oder eindeutigen Schlüssel. Alle Tabellen, die keinen gültigen Primärschlüssel oder eindeutigen Schlüssel haben, werden von der Überprüfung ausgeschlossen, und es werden keine Validierungsfehler gemeldet.

  • Beim Ausführen von Full-load-only Aufgaben muss die Datenvalidierung aktiviert sein.

  • Die Resynchronisierung von Daten kann nicht für die Aufgabe „Nur Validierung“ aktiviert werden, da dabei keine Daten repliziert werden. Sie können die Resynchronisierung für die übergeordnete Replikationsaufgabe aktivieren, indem Sie nur die Validierung angeben. taskID Weitere Informationen finden Sie unter Nur Validierungsaufgaben.

  • Wenn für die Aufgabe Nur Überprüfung eine ControlSchema Parametereinstellung in den Aufgabeneinstellungen konfiguriert ist, muss auch die Replikationstask dieselbe Parameterkonfiguration für die Datenresynchronisierung haben, um die richtigen Überprüfungsfehler zu finden.

  • Sie müssen die Einstellungen für Zeitplan und Zeitdauer für CDC-Aufgaben konfigurieren.

  • Während des Neusynchronisierungsfensters kann sich die Neusynchronisierung von Daten auf die Replikationslatenz in DMS auswirken.

Weitere Informationen zur Fehlerbehebung bei Validierungen AWS DMS während der Datenresynchronisierung finden Sie im Abschnitt Problembehandlung unter Datenüberprüfung.AWS DMS

Planung und Zeitplanung

Für Aufgaben mit CDC müssen Sie konfigurieren, wann und wie lange die Datenresynchronisierung ausgeführt wird. Dies trägt dazu bei, Auswirkungen auf Ihre normalen Replikationsvorgänge zu vermeiden. Sie geben an:

  • Ein Zeitplan, der das Cron-Format verwendet, um zu definieren, wann Resynchronisierungsvorgänge ausgeführt werden können.

  • Eine maximale Dauer, um sicherzustellen, dass sich die Neusynchronisierungsvorgänge nicht auf Spitzenzeiten erstrecken.

Es wird empfohlen, Neusynchronisierungsvorgänge außerhalb der Spitzenzeiten oder für einen Zeitraum zu planen, in dem nur minimale bis keine Änderungen an der Quelldatenbank vorgenommen werden.

Anmerkung

Die geplante Zeit beinhaltet das Warten, bis der Ziel-Aply-Stream leer ist, da die Resynchronisierung von Daten und die normale Replikation nicht gleichzeitig ausgeführt werden können.

Anwendungsfälle

Mit der Funktion zur erneuten Synchronisierung von Daten können Benutzer Dateninkonsistenzen zwischen Quell- und Zielsystemen abgleichen. Es identifiziert nicht übereinstimmende Datensätze und synchronisiert sie, um die Datenkonsistenz in verteilten Umgebungen aufrechtzuerhalten. Die folgenden Anwendungsfälle zeigen typische Szenarien, in denen die Funktion zur erneuten Synchronisierung von Daten Probleme mit der Datenkonsistenz löst:

Szenario 1: Volllade-Task — Führen Sie die Resynchronisierung mit derselben DMS-Aufgabe aus

In Ihrer bestehenden DMS-Volllast-Migrationsaufgabe können Sie Folgendes tun:

  • Validierung aktivieren:. Validation with data migration = true

  • Resynchronisierung aktivieren: Data resync = true

Szenario 2: Volllast und CDC, nur CDC — Führen Sie die Resynchronisierung mit derselben DMS-Aufgabe aus

In Ihrer bestehenden DMS-CDC-Migrationsaufgabe können Sie Folgendes tun:

  • Validierung aktivieren:. Validation with data migration = true

  • Resynchronisierung aktivieren: Data resync = true

  • Geben Sie den Zeitplan für die Resynchronisierung an:. "ResyncSchedule": "0 0,2,4,6 * * *"

  • Geben Sie die Resynchronisierungszeit an: MaxResyncTime": 60

Szenario 3: Volllast und CDC- oder reine CDC-Aufgabe für Replikation und Resynchronisierung in Kombination mit einer reinen Validierungsaufgabe

Um den Vorgang „Nur Validierung“ in einer anderen DMS-Aufgabe auszuführen, wenn Sie die Resynchronisierung verwenden, können Sie wie folgt vorgehen:

  • Erstellen Sie eine DMS-CDC-Aufgabe, die nur für die Validierung bestimmt ist.

    Anmerkung

    Sie müssen sich die ID dieser Aufgabe bei der erneuten Datensynchronisierung notieren und angeben.

  • Deaktivieren Sie in Ihrer primären CDC-Aufgabe die Validierung:. Data validation = false

  • Resynchronisierung aktivieren: Data resync = true

  • Geben Sie den Zeitplan für die Resynchronisierung an:. "ResyncSchedule": "0 0,2,4,6 * * *"

  • Geben Sie die Zeit für die Resynchronisierung an:. MaxResyncTime": 60

  • Geben Sie die ID der DMS-CDC-Aufgabe an, die nur zur Überprüfung dient. Die Aufgaben-ID nur für die Validierung wird am Ende des ARN angehängt. Beispiel ARN: arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI und Aufgaben-ID für Beispielvalidierung:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI.

Bewährte Methoden

Sie können die Funktion zur erneuten Synchronisierung von Daten nutzen AWS Database Migration Service , um die Haltbarkeit Ihrer Replikationsaufgaben zu verbessern und Konsistenz zu erreichen. Einige der bewährten Methoden für die Verwendung der Funktion zum erneuten Synchronisieren von Daten sind:

  • Im Rahmen der Resynchronisierung von Daten werden Datensätze, die nicht übereinstimmen, behoben, indem sie aus der Quelle abgerufen und auf die Zieldatenbank angewendet werden. Wenn die Quelldatenbank während des Resynchronisierungsfensters aktualisiert wird, liest Resync den neuesten Datensatzwert und wendet ihn auf das Ziel an. Dies kann dazu führen, dass CDC-Anwendungsereignisse fehlschlagen und zu vorübergehenden Inkonsistenzen in der Zieldatenbank führen. Um dies zu vermeiden, müssen Sie das Resynchronisierungsfenster außerhalb der Geschäftszeiten oder in Zeiten, in denen die Änderungen an der Quelldatenbank nicht oder nur minimal sind, einplanen.

  • Legen Sie das Neusynchronisierungsfenster für Zeiten mit minimaler Quelldatenbankaktivität und innerhalb Ihres akzeptablen Latenzzielschwellenwerts fest. Kleine Neusynchronisierungsintervalle können dazu führen, dass sich nicht verarbeitete Validierungsfehler anhäufen, während große Zeitfenster die Replikationslatenz erhöhen können, wenn viele Validierungsfehler auftreten. Überwachen Sie die Häufigkeit von Validierungsfehlern und Resynchronisierungen, um optimale Zeitfenster für die Neusynchronisierung in Zeiten der Quelleninaktivität zu ermitteln. Einige Beispiele für die Einrichtung der Neusynchronisierungsfenster sind:

    • Konfiguration mehrerer kurzer Fenster:

      "ResyncSchedule": "0 0,2,4,6 * * *", "MaxResyncTime": 60
    • Konfiguration eines einzigen täglichen Zeitfensters:

      "ResyncSchedule": "0 0 * * *", "MaxResyncTime": 360
  • Überwachung der Replikationslatenz in DMS während der Neusynchronisierungsfenster und Anpassung des Zeitplans entsprechend, um große Spitzen zu vermeiden.

  • Sie können die Ergebnisse der Neusynchronisierung anhand von Tabellenstatistiken oder durch Abfragen der Tabelle in der Zieldatenbank überprüfen. awsdms_validation_failures_v2 Weitere Informationen finden Sie unter Überwachen von Replikationsaufgaben mit Amazon CloudWatch.

  • Wenn sich die Aufgabe in einer laufenden Replikationsphase befindet, vermeiden Sie es, während des Resynchronisierungsfensters ein erneutes Laden einzelner Tabellen zu initiieren.

  • Bewährte Methoden für eine CDC-Replikationsaufgabe:

    • Der Ladevorgang für alle Tabellen in Ihrer Datenbank ist abgeschlossen.

    • Nichtübereinstimmungen werden im laufenden Validierungsprozess festgestellt.

    • Gemäß dem geplanten Fenster für die Neusynchronisierung wird die Replikationsaufgabe für einen kurzen Zeitraum angehalten.

    • Die Resynchronisierung von Daten behebt die während des Validierungsprozesses festgestellten Probleme.

    • Der Replikationsvorgang wird wie geplant fortgesetzt und wiederholt.

Konfiguration und Beispiele für die Resynchronisierung von Daten

Konfiguration der Einstellungen für die Resynchronisierung von Daten:

Sie können die Resynchronisierung für Ihre Replikationsaufgabe in DMS konfigurieren. Im Folgenden finden Sie ein Beispiel für die Konfiguration der Einstellungen für die Resynchronisierung von Daten in Ihrer Aufgabe:

"ResyncSettings": { "EnableResync": true, "ResyncSchedule": "0 0,2,4,6 * * *", // Run at 12AM, 2AM, 4AM, and 6AM daily "MaxResyncTime": 60, // Run for maximum of 60 minutes, or 1 hour "ValidationTaskId": "TASK-ID-IF-NEEDED" //Optional, used only if validation is performed as a separate Validation only task }

Beispiele für gängige Zeitplanungsmuster bei der Resynchronisierung:

  • 0 0 * * *: Wird einmal täglich um Mitternacht ausgeführt.

  • 0 0,12 * * *: Laufen Sie zweimal täglich um Mitternacht und Mittag.

  • 0 0,2,4,6, * * *: Laufen Sie alle zwei Stunden zwischen Mitternacht und 6 Uhr morgens.

  • 0 1 * * 1: Läuft jede Woche montags um 1 Uhr.

Anmerkung

Sie müssen für jeden Tag eine Zahl angeben, die von 0 bis 6 beginnt. Weitere Informationen finden Sie unter Regeln für Cron-Ausdrücke.

Überwachung von Resynchronisierungsvorgängen:

Sie können den Resynchronisierungsvorgang anhand von Tabellenstatistiken überwachen. Hier ist ein Beispiel für eine Ausgabe:

{ "TableStatistics": { ... "ValidationFailedRecords": 1000, ... "ResyncRowsAttempted": 1000, "ResyncRowsSucceeded": 995, "ResyncRowsFailed": 5, "ResyncProgress": 99.5, // ratio of ResyncRowsSucceeded/ValidationFailedRecords "ResyncState": "Last resync at: 2024-03-14T06:00:00Z" } }

Um die Funktion zum erneuten Synchronisieren von Daten in zu konfigurieren AWS DMS, können Sie verschiedene Resynchronisierungsparameter und ihre jeweiligen Konfigurationseinstellungen überprüfen. Weitere Informationen finden Sie unter Einstellungen für die Resynchronisierung von Daten. Weitere Informationen zu den Einstellungen für die Protokollierung der Daten-Resynchronisierung finden Sie unter. Einstellungen für das Protokollieren von Aufgaben

Validierung und Problembehandlung

Validierung:

Wenn die Datenüberprüfung aktiviert ist, wird in Ihrer Zieldatenbank eine Tabelle mit Fehlern bei der Validierung mit der folgenden Struktur AWS DMS erstellt:

CREATE TABLE awsdms_validation_failures_v2 ( "RESYNC_ID" bigint NOT NULL, "TASK_NAME" varchar(128) NOT NULL, "TABLE_OWNER" varchar(128) NOT NULL, "TABLE_NAME" varchar(128) NOT NULL, "FAILURE_TIME" timestamp NOT NULL, "KEY_TYPE" varchar(128) NOT NULL, "KEY" varchar(7800) NOT NULL, "FAILURE_TYPE" varchar(128) NOT NULL, "DETAILS" varchar(7000) NOT NULL, "RESYNC_RESULT" varchar(128) NULL, "RESYNC_TIME" timestamp NULL, "RESYNC_ACTION" varchar(128) NULL );

Sie können eine Abfrage in diese Tabelle schreiben, um zu verstehen, welche Datenkonflikte gefunden wurden und wie sie behoben werden.

Wenn die Validierung aktiviert ist, wird eine Tabelle mit Validierungsfehlern in Ihrer Zieldatenbank AWS DMS erstellt. Wenn Sie Probleme haben, können Sie die awsdms_control.awsdms_validation_failures_v2 Tabelle abfragen, um herauszufinden, welche Datenkonflikte gefunden wurden und wie sie behoben werden. Weitere Informationen finden Sie im Abschnitt Problembehandlung unter AWS DMS Datenüberprüfung.

Allgemeiner Arbeitsablauf:

Bei der Validierung bei der Daten-Resynchronisierung sieht der Standard-Arbeitsablauf wie folgt aus:

Aufgaben nur beim Vollladen:

  1. Der Ladevorgang für alle Tabellen in Ihrer Datenbank ist abgeschlossen.

  2. Nichtübereinstimmungen werden im laufenden Validierungsprozess festgestellt.

  3. Durch die Resynchronisierung von Daten werden die während des Validierungsprozesses festgestellten Probleme behoben.

  4. Der Validierungsprozess validiert die Korrektur.

  5. Die Migrationsaufgabe wurde erfolgreich abgeschlossen.

CDC-Aufgaben:

  1. Der Ladevorgang für alle Tabellen in Ihrer Datenbank ist abgeschlossen.

  2. Nichtübereinstimmungen werden im laufenden Validierungsprozess festgestellt.

  3. Gemäß dem geplanten Fenster für die Neusynchronisierung wird die Replikationsaufgabe für einen kurzen Zeitraum angehalten.

  4. Die Resynchronisierung von Daten behebt die während des Validierungsprozesses festgestellten Probleme.

  5. Der Replikationsvorgang wird wie geplant fortgesetzt und wiederholt.

Jede Änderung, die an der Aufgabe vorgenommen wird, z. B. das Beenden der Replikationsaufgabe während des Neusynchronisierungsvorgangs oder das erneute Laden und Überprüfen von Tabellen, kann sich auf das Verhalten und das Ergebnis der Aufgabe auswirken. Einige der bekannten Verhaltensänderungen sind wie folgt:

Wenn Sie die Replizierungsaufgabe beenden, während der Neusynchronisierungsvorgang läuft:

  • Der Neusynchronisierungsvorgang wird nicht automatisch fortgesetzt. Sie müssen ihn erneut starten.

  • Zukünftige Neusynchronisierungsvorgänge erfolgen gemäß dem konfigurierten Zeitplan.

  • Unvollständige Korrekturen werden im nächsten Zeitplanfenster für die Neusynchronisierung versucht.

Wenn Sie eine Tabelle in Ihre Datenbank neu laden:

  • Bei der Resynchronisierung werden alle Tabellen übersprungen, die neu geladen werden.

  • Die vorherigen Validierungsfehler für eine Tabelle, die neu geladen wurde, werden ignoriert.

  • Die neue Validierung beginnt, nachdem die Reload-Aktion abgeschlossen ist.

Wenn Sie eine Tabelle in Ihrer Datenbank erneut validieren:

  • Alle Statistiken für Ihren Resynchronisierungsvorgang wurden zurückgesetzt.

  • Die vorherigen Validierungsfehler für eine Tabelle, die erneut validiert wurde, werden ignoriert.

Anmerkung

Beim Aktualisieren oder Verschieben einer Aufgabe auf DMS-Version 3.6.1 und höher werden alle Fehler in der awsdms_control.awsdms_validation_failures_v1 Tabelle nicht erneut synchronisiert. Nur Fehler in der Tabelle werden erneut synchronisiertawsdms_validation_failures_v2. Um Fehler in der awsdms_control.awsdms_validation_failures_v2 Tabelle erneut zu synchronisieren, müssen Sie die Aufgabe neu laden, eine oder mehrere Tabellen in der Aufgabe neu laden oder eine oder mehrere Tabellen erneut validieren. Weitere Informationen finden Sie unter den folgenden Links:

.

Regeln für Cron-Ausdrücke

Um Vorgänge zur Resynchronisierung von Daten während einer Replikationsaufgabe zu konfigurieren, können AWS DMS Sie Regeln für Cron-Ausdrücke verwenden. Mit diesen Regeln können Sie die Zeitfenster für die Neusynchronisierung anpassen und sie gemäß Ihren Geschäftsanforderungen planen. Sie können verschiedene Parameter wie Minuten, Stunden, Tage, Monate und Wochentage verwenden. Die Cron-Ausdrucksregeln für die einzelnen Parameter lauten wie folgt:

Minuten:
  • Minutenbereich von 0 bis 59.

  • Sie können (-),or/verwenden, and um den Bereich anzugeben. Maximal 10 Elemente, getrennt durch ein Komma (,).

  • Beispiele:

    • 2-5entspricht. 2,3,5,5

    • 1-2,3-4,5,7-10ist ein gültiger Bereich.

    • 1,2,3,4,5,6,7,8,9,10ist ein gültiger Bereich.

    • 1,2,3,4,5,6,7,8,9,10,11ist kein gültiger Bereich. Der Resynchronisierungsvorgang wird nach dem 10. Bereichselement übersprungen.

  • Sie können () * verwenden. Beispiel: * entspricht0-59.

  • Sie können (/) nur in Kombination mit (-) oder (*) verwenden.

    Beispiele:

    • 2-7/2entspricht. 2,4,6

    • */15entspricht. 0,15,30,45

Stunden:

Entspricht "Minuten", aber der gültige Bereich liegt zwischen 0 und23.

Tage:
  • Entspricht "Minuten", aber der gültige Bereich liegt zwischen 1 und31.

  • Die Verwendung von L wird in der Resync-Konfiguration unterstützt. Er wird als letzter Tag des Monats interpretiert. Sie dürfen es nicht in Kombination mit einer anderen Syntax verwenden.

Monate:

Entspricht "Minuten", aber der gültige Bereich liegt zwischen 1 und12.

Wochentage:
  • Entspricht "Minuten", aber der gültige Bereich liegt zwischen 0 und6.

  • Sie können keinen Zeichenkettenwert für den Namen der Woche hinzufügen.