Direkt zum Inhalt

Wie behebe ich Datenreplikationsprobleme und CDC-Fehler, wenn ich AWS DMS verwende, um Quelldatenbanken zu Amazon Redshift zu migrieren?

Lesedauer: 4 Minute
0

Wenn ich den AWS Database Migration Service (AWS DMS) verwende, um Quelldatenbanken zu Amazon Redshift zu migrieren, treten Probleme bei der Datenreplikation und bei der Änderungsdatenerfassung (CDC) auf.

Lösung

CDC-Fehler

Wenn CDC-Fehler auftreten, überprüfe die AWS-DMS-Aufgabenprotokolle auf Fehlermeldungen, die sich auf bestimmte Tabellen beziehen. Du kannst auch die Amazon CloudWatch-Metriken CDCLatencySource und CDCLatencyTarget für deine AWS-DMS-Aufgabe überprüfen.

Führe eine oder mehrere der folgenden Aktionen basierend auf der Fehlermeldung aus, die du erhältst:

  • Überprüfe, dass die Quelltabellen Primärschlüssel haben. Bei PostgreSQL-Quellen müssen erfasste Tabellen einen Primärschlüssel haben, damit AWS DMS die Operationen DELETE und UPDATE verarbeiten kann.
  • Stelle sicher, dass du die Aufbewahrungsdauer der Änderungsprotokolle in der Quelldatenbank auf mindestens 24 Stunden festgelegt hast.
  • Stelle sicher, dass das AWS-Konto, das AWS DMS verwendet, die erforderlichen Berechtigungen sowohl für die Quelle als auch für die Zieldatenbank hat.

Dateninkonsistenzen

Um Dateninkonsistenzen zu beheben, führe die folgenden Schritte aus:

  1. Erstelle eine reine Validierungsaufgabe, um nicht übereinstimmende Datensätze zwischen Quelle und Ziel zu identifizieren. Weitere Informationen findest du unter Redshift-Validierungsleistung.
  2. Führe eine Abfrage für die Tabelle awsdms_validation_failures_v1 in der Zieldatenbank aus, um Inkonsistenzen anzuzeigen.
  3. Überprüfe die Tabelle awsdms_apply_exceptions in der Zieldatenbank auf detaillierte Fehlerinformationen zu fehlgeschlagenen Migrationen.
  4. Stelle sicher, dass alle replizierten Zieltabellen einen Primärschlüssel oder einen eindeutigen Index haben.
    Hinweis: Amazon Redshift erzwingt keine eindeutigen, Primärschlüssel- und Fremdschlüsselbeschränkungen. Daher können Duplikate auftreten.
  5. Wenn du PostgreSQL als Quelle verwendest, musst du Primärschlüssel für die Quell- und Zieltabellen definieren.
  6. Für Tabellen mit Inkonsistenzen verwende die AWS-DMS-Aufgabe, um die Tabellen neu zu laden.

Probleme bei der Typkonvertierung

Um Probleme bei der Typkonvertierung zu beheben, führe die folgenden Schritte aus:

  1. Überprüfe die AWS-DMS-Aufgabenprotokolle auf Fehler, die sich auf Datenkürzung oder Zeichenfolgenlängen beziehen, die die Länge der Data Definition Language (DDL) überschreiten.

  2. Überprüfe die Tabelle awsdms_apply_exceptions auf fehlgeschlagene Migrationen.

  3. Passe die Spaltendatentypen in der Redshift-Zieldatenbank an, um größere Daten aufzunehmen. Ändere beispielsweise varchar zu text für Spalten mit Längenproblemen.

  4. Ändere den Parameter MaxLobSize in den Aufgabeneinstellungen, um größere Datengrößen zu verarbeiten, wie im folgenden Beispiel gezeigt:

    {
      "TargetMetadata": {
        "MaxLobSize": 32
      }
    }
  5. Stelle sicher, dass du einen unterstützten Datentyp verwendest und dass du Quelle und Ziel korrekt zugeordnet hast.

Leistungsprobleme und hohe Latenz

Um die Leistung zu verbessern und die Latenz zu reduzieren, führe die folgenden Aktionen aus:

Doppelte Datensätze

Um doppelte Datensätze zu verhindern, führe die folgenden Aktionen aus:

  • Stelle sicher, dass die replizierten Zieltabellen einen Primärschlüssel oder einen eindeutigen Index haben.
  • Erstelle Tabellen im Ziel manuell mit Primärschlüsseln und setze TargetTablePrepMode in den Aufgabeneinstellungen auf DO_NOTHING oder TRUNCATE_BEFORE_LOAD.
  • Verwende die AWS-DMS-Tabellenzuordnungsregel primary-key-def, um Primärschlüssel explizit zu definieren.

Fehlende oder unvollständige Daten

Um fehlende oder unvollständige Daten zu beheben, führe die folgenden Aktionen aus:

  • Überprüfe die AWS-DMS-Aufgabenprotokolle auf Warnungen oder Fehler, die sich auf bestimmte Tabellen beziehen.
  • Überprüfe die Metrik CDCIncomingChanges, um festzustellen, ob AWS DMS alle Änderungen aus der Quelle erfasst.
  • Stelle sicher, dass das Benutzerkonto der Quelldatenbank, das AWS DMS verwendet, die erforderlichen Berechtigungen hat, um auf alle erforderlichen Tabellen und Schemas zuzugreifen.
  • Erstelle eine reine Validierungsaufgabe, um nicht übereinstimmende Datensätze zu identifizieren. Weitere Informationen findest du unter Redshift-Validierungsleistung.
  • Für Tabellen mit konsistenten Problemen kannst du einzelne AWS-DMS-Aufgaben erstellen, um detailliertere Fehlerbehebungen durchzuführen.

Ähnliche Informationen

Bewährte Methoden für den AWS Database Migration Service

Problembehandlung bei Migrationsaufgaben im AWS Database Migration Service

AWS-DMS-Datenvalidierung

AWS OFFICIALAktualisiert vor 4 Monaten