Wann kann ich während der AWS-DMS-Migration sekundäre Objekte zu einer Zieldatenbank hinzufügen?

Letzte Aktualisierung: 19.08.2022

In welcher Phase der Migration kann ich meiner Zieldatenbank mit AWS Database Migration Service (AWS DMS) sekundäre Objekte hinzufügen? Welche Aufgabeneinstellungen kann ich auch verwenden, um sekundäre Objekte in der Zieldatenbank zu erstellen?

Kurzbeschreibung

AWS DMS erstellt Tabellen in der Zieldatenbank mithilfe der Option TargetTablePrepMode. Wenn AWS DMS Zieltabellen erstellt, migriert es nur die Objekte, die es benötigt, um Daten effektiv zum Ziel zu migrieren. AWS DMS erstellt beispielsweise Tabellen, Primärschlüssel und in einigen Fällen eindeutige Indizes. Es werden jedoch keine sekundären Indizes, Einschränkungen für Nicht-Primärschlüssel, Datenstandardwerte oder Benutzerkonten erstellt. Weitere Informationen finden Sie unter Fehlende Fremdschlüssel und Sekundärindizes.

Wenn Sie Tabellen vor der Migration manuell auf dem Ziel erstellen, empfiehlt es sich, sekundäre Objekte wie sekundäre Indizes zu löschen, bevor die Migration beginnt.

Hinweis: Dies gilt nicht für eine reine Change-Data-Capture-Aufgabe (CDC).

Um sicherzustellen, dass die Migration erfolgreich ist, und um die Aufgabenleistung zu verbessern, ist es wichtig, dass Sie wissen, wann sekundäre Objekte erstellt werden müssen. Das Timing hängt von der Migrationsmethode ab, die der Task verwendet:

  • Nur vollständiges Laden (Migration vorhandener Daten)
  • Vollständiges Laden und CDC (Migration bestehender Daten und Replikation laufender Änderungen)
  • Nur CDC (Nur Datenänderungen replizieren)

Auflösung

Nur vollständiges Laden

Bei einer Aufgabe nur für vollständiges Laden empfiehlt es sich, Primärschlüssel und alle sekundären Objekte vor Beginn der Migration zu löschen. Erstellen Sie diese Objekte erst nach Abschluss des vollständiges Ladens. Wenn Sie während des vollständigen Ladens sekundäre Objekte in der Zieldatenbank haben, entsteht möglicherweise zusätzlicher Wartungsaufwand.

Wenn Sie Fremdschlüssel auf dem Ziel haben, kann dies dazu führen, dass die Aufgabe fehlschlägt. Dies geschieht, weil die Aufgabe Gruppen von Tabellen in keiner bestimmten Reihenfolge zusammen lädt, sofern Sie dies nicht manuell in Tabellenzuordnungen angegeben haben.

Ebenso können Insert-, Update- oder Delete-Trigger Fehler verursachen, wenn sie in der Zieldatenbank vorhanden sind. Beispielsweise kann eine Zeileneinfügung, die durch einen Insert-Trigger für eine zuvor geladene Tabelle ausgelöst wird, doppelte Zeilen verursachen. Andere Trigger-Typen wirken sich ebenfalls auf die Leistung aus, da sie zusätzliche Verarbeitung verursachen.

Vollständiges Laden und CDC

Bei vollständigen Lade- und CDC-Aufgaben empfiehlt es sich, alle sekundären Objekte vor Beginn der Migration zu löschen. Sie müssen jedoch in verschiedenen Migrationsphasen sekundäre Objekte auf der Zieldatenbank anwenden.

Überprüfen Sie die Phasen der Migration von vollständigen Lade- und CDC-Aufgaben und überprüfen Sie, in welcher Phase bestimmte sekundäre Objekte angewendet werden sollen:

  • Vollständiges Laden vorhandener Daten – Fügen Sie sekundäre Indizes hinzu, nachdem die Aufgabe das vollständige Laden abgeschlossen hat, aber bevor die erfassten zwischengespeicherten Änderungen angewendet werden.
  • Die Anwendung zwischengespeicherter Änderungen – Fügen Sie Fremdschlüssel hinzu (Einschränkungen der referenziellen Integrität), nachdem die Aufgabe zwischengespeicherte Änderungen angewendet hat.
  • Laufende Replikation – Erstellen Sie Trigger nach Abschluss der Migration und vor der Umstellung der Anwendung.

Während das vollständige Laden ausgeführt wird, werden alle Änderungen, die Sie an den zu ladenden Tabellen vornehmen, im Cache gespeichert. Diese zwischengespeicherten Änderungen werden angewendet, wenn das vollständige Laden der Tabelle abgeschlossen ist. Nachdem das vollständige Laden abgeschlossen ist und die zwischengespeicherten Änderungen angewendet wurden, sind die Zieltabellen transaktionell konsistent. AWS DMS beginnt dann mit der laufenden Replikationsphase. Weitere Informationen dazu finden Sie unter Ansicht von AWS DMS auf hoher Ebene.

Verwenden Sie die folgenden Aufgabeneinstellungen, um die Aufgabe während der Migration zu beenden:

  • Verwenden Sie StopTaskCachedChangesNotApplied, um die Aufgabe zu beenden, bevor die zwischengespeicherten Änderungen übernommen werden.
  • Verwenden Sie StopTaskCachedChangesApplied, um die Aufgabe zu beenden, nachdem die zwischengespeicherten Änderungen übernommen wurden.

Hinweis: Sie können sowohl StopTaskCachedChangesNotApplied als auch StopTaskCachedChangesApplied über die AWS Command Line Interface (AWS CLI) aktivieren. Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.

Nur CDC-Aufgaben

Für reine CDC-Aufgaben können Sie die Sekundärindizes und die Fremdschlüssel vor der Migration in der Zieldatenbank erstellen. Erstellen Sie dann die Trigger auf dem Ziel, nachdem die Migration abgeschlossen ist und bevor die Anwendung umgestellt wird.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?