Quand puis-je ajouter des objets secondaires à une base de données cible lors de la migration AWS DMS ?

Dernière mise à jour : 19/08/2022

À quel stade de la migration puis-je ajouter des objets secondaires à ma base de données cible avec AWS Database Migration Service (AWS DMS) ? De plus, quels paramètres de tâche puis-je utiliser pour créer des objets secondaires dans la base de données cible ?

Courte description

AWS DMS crée des tables sur la base de données cible à l’aide de l’option TargetTablePrepMode. Lorsqu’AWS DMS crée des tables cibles, il migre uniquement les objets dont il a besoin pour migrer efficacement les données vers la cible. Par exemple, AWS DMS crée des tables, des clés primaires et, dans certains cas, des index uniques. Cependant, il ne crée pas d’index secondaires, de contraintes de clé non primaires, de valeurs par défaut des données ou de comptes utilisateurs. Pour plus d’informations, consultez la section Les clés étrangères et les index secondaires sont manquants.

Si vous créez des tables manuellement sur la cible avant la migration, il est recommandé de supprimer les objets secondaires tels que les index secondaires avant la migration.

Remarque : ceci ne s’applique pas si vous lancez uniquement une tâche de capture des données modifiées (CDC).

Par conséquent, pour garantir la réussite de la migration et améliorer la performance des tâches, il est important de comprendre quand créer des objets secondaires. Le délai varie en fonction de la méthode de migration utilisée par la tâche :

  • Chargement complet uniquement (migration des données existantes)
  • Chargement complet et CDC (migration des données existantes et réplication des modifications en cours)
  • CDC (réplication des modifications uniquement)

Solution

Chargement complet uniquement

Pour une tâche à chargement complet uniquement, il est recommandé de supprimer les clés primaires et tous les objets secondaires avant la migration. Ne créez pas ces objets tant que le chargement complet n’est pas terminé. Si vous avez des objets secondaires dans la base de données cible pendant le chargement complet, vous risquez de subir des frais de maintenance supplémentaires.

Avoir des clés étrangères dans la cible peut faire échouer la tâche. En effet, la tâche charge des groupes de tables ensemble sans ordre spécifique, à moins que vous n’ayez spécifié manuellement des mappages de tables.

De même, les déclencheurs d’insertion, de mise à jour ou de suppression peuvent provoquer des erreurs s’ils existent dans la base de données cible. Par exemple, l’insertion d’une ligne déclenchée par un déclencheur d’insertion sur une table précédemment chargée peut provoquer des doublons de lignes. D’autres types de déclencheurs affectent également les performances car ils entraînent un traitement supplémentaire.

Chargement complet et CDC

Pour les tâches à chargement complet et CDC, il est recommandé de supprimer tous les objets secondaires avant la migration. Toutefois, vous devez appliquer les objets secondaires sur la base de données cible à différents moments de la migration.

Faisons le point sur les étapes d’une tâche de migration à chargement complet et CDC, et à quel stade il faut appliquer les objets secondaires spécifiques :

  • Chargement complet des données existantes : Ajoutez des index secondaires une fois le chargement complet effectué, mais avant que la tâche n’applique les modifications capturées en cache.
  • Application des modifications mises en cache : ajoutez des clés étrangères (contraintes d’intégrité référentielle) une fois que la tâche a appliqué les modifications mises en cache.
  • Réplication continue : Créez des déclencheurs une fois la migration terminée et avant le basculement de l’application.

Pendant le chargement complet, toutes les modifications que vous apportez aux tables en cours de chargement sont mises en cache. Ces modifications mises en cache sont appliquées lorsque le chargement complet de la table est terminé. Une fois le chargement complet terminé et les modifications mises en cache appliquées, les tables cibles sont cohérentes sur le plan transactionnel. AWS DMS entame ensuite la phase de réplication continue. Pour plus d’informations, consultez Vue d’ensemble d’AWS DMS.

Pour arrêter la tâche pendant la migration, utilisez les paramètres de tâche suivants :

  • Utilisez StopTaskCachedChangesNotApplied pour arrêter la tâche avant d’appliquer les modifications mises en cache.
  • Utilisez StopTaskCachedChangesApplied pour arrêter la tâche après avoir appliqué les modifications mises en cache.

Remarque : vous pouvez activer StopTaskCachedChangesNotApplied et StopTaskCachedChangesApplied à l’aide de l’interface de la ligne de commande AWS (AWS CLI). Si vous obtenez des messages d’erreur lors de l’exécution des commandes AWS CLI, assurez-vous que vous utilisez la version la plus récente d’AWS CLI.

Tâches CDC uniquement

Pour les tâches CDC uniquement, vous pouvez créer les index secondaires et les clés étrangères sur la base de données cible avant la migration. Ensuite, créez les déclencheurs sur la cible une fois la migration terminée et avant le basculement de l’application.


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


Avez-vous besoin d'aide pour une question technique ou de facturation ?