Comment améliorer la vitesse d'une tâche AWS DMS qui possède des données LOB ?

Dernière mise à jour : 01/06/2020

Ma tâche de migration AWS Database Migration Service (AWS DMS) est lente. Comment améliorer la vitesse d'une tâche AWS DMS qui possède des données LOB (objet volumineux) ?

Brève description

AWS DMS offre les options suivantes lors de la migration des données LOB :

  • Mode LOB complet
  • Mode LOB limité
  • Mode LOB en ligne

Solution

Mode LOB complet

Lorsque vous utilisez le mode LOB complet, AWS DMS migre les objets LOB quelle que soit leur taille. Étant donné qu’AWS DMS ne connaît pas la taille des données LOB qui doivent être migrées, il migre les objets LOB un par un. Cela peut ralentir votre tâche. Bien que la migration soit plus lente, l'avantage réside dans le fait que les données ne sont pas tronquées. Pour améliorer les performances d’une tâche qui utilise le mode LOB complet et comporte plusieurs tableaux, commencez par identifier la taille de l’objet LOB le plus volumineux dans votre base de données. Ensuite, vous pouvez utiliser le mode LOB limité si la plus grande taille de LOB ne dépasse pas quelques mégaoctets.

Si vous disposez d'objet LOB d'une taille supérieure à quelques mégaoctets, vous pouvez créer une tâche AWS DMS distincte avec le mode LOB complet. Une bonne pratique consiste à créer la tâche distincte sur une nouvelle instance de réplication pour migrer uniquement ces tables.

Mode LOB limité

Lorsque vous utilisez le mode LOB limité, vous spécifiez la taille maximale des données de colonne LOB. Cela permet à AWS DMS de pré-attribuer des ressources et d’appliquer les LOB en bloc. Si la taille des colonnes LOB dépasse la taille que vous avez spécifiée dans la tâche, AWS DMS tronque les données. AWS DMS envoie ensuite des avertissements au fichier journal AWS DMS. L’utilisation du mode LOB limité améliore les performances, mais avant d’exécuter la tâche, vous devez identifier la taille LOB maximale des données sur la source. Ensuite, vous devez spécifier le paramètre Taille LOB maximale lorsque vous utilisez le mode LOB limité. Une bonne pratique consiste à vérifier que l'instance de réplication dispose d'une quantité de mémoire allouée suffisante pour gérer la tâche.

Mode LOB en ligne

Lorsque vous utilisez le mode LOB en ligne, vous pouvez migrer les LOB sans tronquer les données ni ralentir les performances de votre tâche en répliquant les LOB de petite taille et de grande taille. Tout d’abord, spécifiez une valeur pour le paramètre InlineLobMaxSize qui est disponible uniquement lorsque Mode LOB complet est défini sur vrai. La tâche AWS DMS transfère les LOB de petite taille en ligne, ce qui est plus efficace. Ensuite, AWS DMS migre les LOB dont la taille est supérieure à la taille spécifiée en mode LOB complet en effectuant une recherche à partir de la table source. Toutefois, le mode LOB en ligne fonctionne uniquement pendant la phase de chargement complet.

Important : vous devez définir InlineLobMaxSize lorsque vous spécifiez les paramètres de tâche de votre tâche.

 {
  "TargetMetadata": {
    "TargetSchema": "abc",
    "SupportLobs": true,
    "FullLobMode": true,
    "LobChunkSize": 64,
    "LimitedSizeLobMode": false,
    "LobMaxSize": 0,
    "InlineLobMaxSize": 32,
    "LoadMaxFileSize": 0,
    "ParallelLoadThreads": 0,
    "ParallelLoadBufferSize": 0,
    "BatchApplyEnabled": false,
    "TaskRecoveryTableEnabled": false,
    "ParallelLoadQueuesPerThread": 0,
    "ParallelApplyThreads": 0,
    "ParallelApplyBufferSize": 0,
    "ParallelApplyQueuesPerThread": 0
  }