Pourquoi ma tâche AWS DMS ne fait-elle pas l'objet d'une nouvelle tentative ?

Lecture de 4 minute(s)
0

J'ai une tâche AWS Database Migration Service (AWS DMS) qui s'est arrêtée et ne fait pas l'objet d'une nouvelle tentative. Comment puis-je reprendre le fonctionnement de ma tâche AWS DMS ?

Résolution

AWS DMS est un service géré conçu pour adopter un comportement d'autorégénération. Cela signifie que lorsque des problèmes surviennent, AWS DMS tente de les résoudre, puis reprend son fonctionnement sans que vous n'ayez à prendre aucune mesure. Cependant, dans certaines situations, la migration s'arrête et ne fait pas l'objet d'une nouvelle tentative.

Tout d'abord, il est important de comprendre les deux types d'erreurs que vous pouvez rencontrer lors de l'utilisation d'AWS DMS :

  • Erreurs fatales
  • Erreurs récupérables

Erreurs fatales

Si AWS DMS rencontre une erreur qui l'empêche de poursuivre la migration, la tâche est arrêtée et passe à l'état ÉCHEC. C'est ce qu'on appelle une erreur fatale. En voici quelques exemples :

  • Le point de terminaison source n'est pas configuré, ce qui est une condition préalable à la migration.
  • L'instance de réplication AWS DMS ne récupère pas les objets sources de la base de données source.

Dans les journaux des tâches, des messages similaires à celui-ci s'affichent :

«2022-05-28T16:07:35 [TASK_MANAGER    ]E:  Task "K7YJOFK7GYXIK44C2KLGFNG7ZONLZGPWPD5RWHA" a rencontré une erreur fatale »

Quand AWS DMS rencontre une erreur fatale, le service essaie de redémarrer six fois. Si votre tâche n'est plus réessayée, cela signifie probablement qu'elle a déjà terminé ces tentatives.

Erreurs récupérables

AWS DMS considère toutes les erreurs d'ordre environnemental comme des erreurs récupérables. Ainsi, si une tâche ou une instance de réplication rencontre une erreur d'ordre environnemental, la tâche est interrompue. Cependant, elle fait l'objet d'une autorécupération, puis d'une nouvelle tentative.

Voici des exemples d'erreurs récupérables :

  • La connectivité de l'instance de réplication AWS DMS à la base de données source/cible est interrompue.
  • Pour des raisons de maintenance, l'instance de réplication a redémarré.

Dans les journaux des tâches, des messages similaires à celui-ci s'affichent :

« Notification d'erreur de dernière tâche d'erreur reçue de la sous-tâche 0, thread 0 [reptask/replicationtask.c:2673] [1022502] Motif d'arrêt RECOVERABLE_ERROR Niveau d'erreur RÉCUPÉRABLE »

Par défaut, une tâche avec une erreur récupérable essaie d'effectuer une nouvelle tentative indéfiniment. Le paramètre RecoverableErrorCount contrôle ce comportement. Ce paramètre définit le nombre maximal de tentatives qu'AWS DMS effectue pour redémarrer une tâche lorsqu'elle rencontre une erreur d'ordre environnemental. Une fois que le système a essayé de redémarrer la tâche un certain nombre de fois défini, la tâche s'arrête et une intervention manuelle est nécessaire. La valeur par défaut est -1, ce qui indique à AWS DMS de redémarrer la tâche indéfiniment.

Si une erreur récupérable entraîne l'arrêt d'une tâche et qu'elle ne fait plus l'objet de nouvelles tentatives, vérifiez les aspects ci-dessous :

  • Le paramètre RecoverableErrorCount est défini sur une valeur personnalisée.
  • L'instance de réplication elle-même est hors service.

Vérifiez si d'autres paramètres avec des valeurs autres que celles par défaut empêchent les nouvelles tentatives

Si ces paramètres sont définis sur une valeur autre que celle par défaut, ils peuvent empêcher la tâche AWS DMS de faire l'objet d'une nouvelle tentative :

"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"
    },

informations connexes

Paramètres des tâches de gestion des erreurs

Dépannage des tâches de migration dans AWS Database Migration Service

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans