Comment modifier les paramètres de traitement des erreurs pour une tâche AWS DMS ?

Date de la dernière mise à jour : 16/02/2021

Quels sont les paramètres de traitement des erreurs pour une tâche pour AWS Database Migration Service (AWS DMS) ? Comment modifier les paramètres de traitement des erreurs pour une tâche de réplication ?

Brève description

Utilisez les paramètres de traitement des erreurs pour modifier le comportement d'une tâche de réplication lors de la capture des données modifiées (CDC) lorsqu'elle rencontre une erreur. Les paramètres de traitement des erreurs peuvent gérer les erreurs au niveau des données et au niveau de la table, en fonction du langage de manipulation de données (DML) ou en fonction des erreurs environnementales. Les problèmes de connectivité entre l'instance de réplication et la source ou la cible, les échecs de tâche en raison d'un conflit de ressources sur l'instance de réplication, la source/cible non disponible, etc. font partie des erreurs environnementales. Étant donné que les problèmes d’ordre environnemental peuvent être intermittents, AWS DMS se réserve la possibilité de reprendre automatiquement en cas de défaillance.

Consultez les exemples suivants de paramètres de traitement des erreurs courantes pour une tâche et de leurs cas d'utilisation :

  • TableErrorPolicy définit l'action qu'AWS DMS effectue en cas d'erreur liée aux données générales ou aux métadonnées d'une table spécifique. La valeur par défaut de ces paramètres est SUSPEND_TABLE. Par exemple, si vous migrez 10 tables d'une source vers une cible à l'aide d'AWS DMS et que l'une des tables a une erreur de métadonnées, AWS DMS suspend la table ayant l'erreur. Ensuite, la tâche continue de migrer les neuf tables restantes. Modifiez ce paramètre pour utiliser STOP_TASK afin d'arrêter la tâche en cas d'erreurs.
  • DataTruncationErrorPolicy définit l'action qu'AWS DMS effectue lorsque les données sont tronquées au cours de la migration. La valeur par défaut de ce paramètre est LOG_ERROR, ce qui signifie que l'erreur est consignée dans les journaux de tâches et que la migration de table se poursuit. Vous pouvez modifier ce paramètre pour utiliser IGNORE_RECORD, LOG_ERROR, SUSPEND_TABLE, et STOP_TASK. La différence entre IGNORE_RECORD et LOG_ERROR est que IGNORE_RECORD incrémente DataErrorEscalationCount. Il s'agit du nombre maximal d'erreurs pouvant survenir dans les données d'une table ou d'une tâche avant que DataErrorEscalationPolicy ne soit déclenché..
  • RecoverableErrorCount définit le nombre maximal de tentatives effectuées par AWS DMS pour reprendre une tâche automatiquement en cas d'erreur environnementale. La valeur par défaut de ce paramètre est -1, ce qui permet à AWS DMS d'essayer de redémarrer la tâche indéfiniment. Définissez cette valeur sur 0 si vous ne voulez pas qu'AWS DMS tente de redémarrer une tâche.

Pour obtenir la liste complète des paramètres disponibles, consultez Paramètres de traitement des erreurs pour une tâche.

Résolution

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Modifiez les paramètres de la tâche de gestion des erreurs à l'aide de l'interface de ligne de commande AWS

1.    Ouvrez la console AWS DMS.

2.    Choisissez « Database migration tasks » (Tâches de migration de base de données) dans le volet de navigation.

3.    Si la tâche que vous souhaitez modifier est en cours d’exécution, choisissez Actions, puis « Stop » (Arrêter).

4.    Une fois la tâche arrêtée, choisissez le nom de votre tâche.

5.    Dans la section « Overview details » (Détails de présentation) agrandissez la section « Task settings (JSON) » (Paramètres de tâche (JSON)).

6.    Copiez et collez les paramètres de tâche dans un éditeur JSON.

7.    Modifiez les paramètres sous ErrorBehavior. Les exemples de paramètres suivants définissent FailOnTransactionConsistencyBreached sur « true »et RecoverableErrorCount sur 10.

"ErrorBehavior": {
        "DataErrorPolicy": "LOG_ERROR",
        "DataTruncationErrorPolicy": "LOG_ERROR",
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",
        "DataErrorEscalationCount": 0,
        "TableErrorPolicy": "SUSPEND_TABLE",
        "TableErrorEscalationPolicy": "STOP_TASK",
        "TableErrorEscalationCount": 0,
        "RecoverableErrorCount": 10,
        "RecoverableErrorInterval": 5,
        "RecoverableErrorThrottling": true,
        "RecoverableErrorThrottlingMax": 1800,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",
        "ApplyErrorInsertPolicy": "LOG_ERROR",
        "ApplyErrorUpdatePolicy": "LOG_ERROR",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",
        "ApplyErrorEscalationCount": 0,
        "ApplyErrorFailOnTruncationDdl": false,
        "FullLoadIgnoreConflicts": true,
        "FailOnTransactionConsistencyBreached": true,  
        "FailOnNoTablesCaptured": false

8.    Enregistrez le fichier JSON, puis notez l’ARN de la tâche et le chemin du fichier pour une utilisation ultérieure.

9.    Installez et configurez la dernière version de l'interface de ligne de commande AWS (CLI AWS) si vous ne l'avez pas déjà fait.

10.    Exécutez la commande modify-replication-task avec l'ARN de la tâche et le chemin d'accès au fichier que vous avez noté à l'étape 8.

Exemple pour Linux :

aws dms modify-replication-task --replication-task-arn arn:aws:dms:us-east-1:112345679012:task:123eadf45gtJCVU2IBPzasetg5 --replication-task-settings file://your-task-settings.json

Exemple pour Windows :

aws dms modify-replication-task --replication-task-arn arn:aws:dms:us-east-1:112345679012:task:123eadf45gtJCVU2IBPzasetg5 --replication-task-settings file://"c:\temp\your-task-settings.json"

11.    Revenez à la console AWS DMS, puis choisissez Tâches de migration de base de données dans le volet de navigation.

12.    Vérifiez que le statut de la tâche est « Modifying » (Modification en cours).

13.    Choisissez le nom de votre tâche.

14.    Dans la section « Overview details » (Détails de présentation) de votre tâche, agrandissez « Task settings (JSON) » (Paramètres de tâche JSON), puis vérifiez que les paramètres ErrorBehavior sont mis à jour.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?