Warum wird meine AWS DMS-Aufgabe nicht wiederholt?

Lesedauer: 3 Minute
0

Ich habe eine Aufgabe des AWS Database Migration Service (AWS DMS), die angehalten wurde und die nicht erneut versucht wird. Wie kann ich den Betrieb meiner AWS-DMS-Aufgabe wieder aufnehmen?

Auflösung

AWS DMS ist ein verwalteter Service, der auf Selbstheilungsverhalten ausgelegt ist. Das bedeutet, dass AWS DMS bei Auftreten von Problemen versucht, das Problem zu beheben und den Betrieb dann wieder aufzunehmen, ohne dass Sie etwas unternehmen müssen. Es gibt jedoch Situationen, in denen die Migration angehalten wird und nicht erneut versucht wird.

Zunächst ist es wichtig, die zwei Arten von Fehlern zu verstehen, die bei der Verwendung von AWS DMS auftreten können:

  • Schwerwiegende Fehler
  • Behebbare Fehler

Schwerwiegende Fehler

Wenn AWS DMS auf einen Fehler stößt, der verhindert, dass die Migration fortgesetzt wird, wird die Aufgabe angehalten und sie wechselt in den Status FEHLGESCHLAGEN. Dies wird als schwerwiegender Fehler bezeichnet. Einige Beispiele sind:

  • Der Quell-Endpunkt ist nicht konfiguriert, was eine Voraussetzung für die Migration ist.
  • Die AWS-DMS-Replikations-Instance ruft keine Quellobjekte aus der Quelldatenbank ab.

In den Aufgabenprotokollen sehen Sie Meldungen ähnlich der folgenden:

2022-05-28T16:07:35 [TASK_MANAGER    ]E:  Task 'K7YJOFK7GYXIK44C2KLGFNG7ZONLZGPWPD5RWHA' encountered a fatal error“

Wenn AWS DMS auf einen schwerwiegenden Fehler stößt, wird sechsmal versucht, einen Neustart durchzuführen. Wenn Ihre Aufgabe nicht mehr wiederholt wird, hat sie diese Versuche wahrscheinlich bereits abgeschlossen.

Behebbare Fehler

AWS DMS betrachtet alle Umgebungsfehler als behebbare Fehler. Wenn also bei einem Task oder einer Replikations-Instance ein Umgebungsfehler auftritt, wird die Aufgabe unterbrochen, stellt sich jedoch selbst wieder her und versucht dann erneut.

Beispiele für behebbare Fehler sind:

  • Die Konnektivität der AWS-DMS-Replikations-Instance zur Quell- und Zieldatenbank wurde unterbrochen.
  • Aufgrund von Wartungsarbeiten wurde die Replikations-Instance neu gestartet.

In den Aufgabenprotokollen sehen Sie Meldungen ähnlich der folgenden:

„Last Error Task error notification received from subtask 0, thread 0 [reptask/replicationtask.c:2673] [1022502] Stop Reason RECOVERABLE_ERROR Error Level RECOVERABLE“

Standardmäßig versucht eine Aufgabe mit einem behebbaren Fehler, es auf unbestimmte Zeit zu wiederholen. Die Einstellung RecoverableErrorCount steuert dieses Verhalten. Dieser Parameter legt die maximale Anzahl von Versuchen fest, die AWS DMS unternimmt, um eine Aufgabe neu zu starten, wenn ein Umgebungsfehler auftritt. Nachdem das System versucht hat, die Aufgabe eine bestimmte Anzahl von Malen neu zu starten, wird die Aufgabe angehalten und ein manuelles Eingreifen ist erforderlich. Der Standardwert ist -1, was AWS DMS anweist, die Aufgabe auf unbestimmte Zeit neu zu starten.

Wenn ein behebbarer Fehler dazu führt, dass eine Aufgabe angehalten wird und nicht mehr versucht wird, überprüfen Sie, ob:

  • Der Parameter RecoverableErrorCount auf einen benutzerdefinierten Wert festgelegt ist.
  • Die Replikations-Instance selbst ausgefallen ist.

Überprüfen, ob andere nicht standardmäßige Werteinstellungen Wiederholungsversuche verhindern

Wenn diese Einstellungen auf einen nicht standardmäßigen Wert festgelegt sind, verhindern sie möglicherweise, dass die AWS-DMS-Aufgabe wiederholt wird:

"ErrorBehavior": {
        "FailOnNoTablesCaptured": false,
        "ApplyErrorUpdatePolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "FailOnTransactionConsistencyBreached": false,
        "RecoverableErrorThrottlingMax": 1800,
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",  --- can be set to STOP_TASK
        "ApplyErrorEscalationCount": 0,
        "RecoverableErrorStopRetryAfterThrottlingMax": false,
        "RecoverableErrorThrottling": true,
        "ApplyErrorFailOnTruncationDdl": false,
        "DataTruncationErrorPolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "ApplyErrorInsertPolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "EventErrorPolicy": "IGNORE",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",  --- can be set to STOP_TASK
        "RecoverableErrorCount": -1,
        "DataErrorEscalationCount": 0,
        "TableErrorEscalationPolicy": "STOP_TASK",
        "RecoverableErrorInterval": 5,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",  --- can be set to STOP_TASK
        "TableErrorEscalationCount": 0,
        "FullLoadIgnoreConflicts": true,
        "DataErrorPolicy": "LOG_ERROR",
        "TableErrorPolicy": "SUSPEND_TABLE"
    },

Relevante Informationen

Fehler beim Umgang mit den Aufgabeneinstellungen

Fehlerbehebung bei Migrationsaufgaben im AWS Database Migration Service

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren