Surveillance des tâches AWS DMS - AWS Service de Migration de Base de Données

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Surveillance des tâches AWS DMS

La surveillance est un enjeu important pour assurer la fiabilité, la disponibilité et les performances d'AWS DMS et de vos solutions AWS. Vous devez collecter les données de surveillance de l'ensemble de votre solution AWS afin de pouvoir déboguer plus facilement une éventuelle défaillance à plusieurs points. AWS fournit plusieurs outils pour surveiller vos ressources AWS DMS et autres, et répondre aux incidents potentiels.

Événements et notifications AWS DMS

AWS DMS utilise Amazon Simple Notification Service (Amazon SNS) pour fournir des notifications lorsqu'un événement AWS DMS se produit, tel que la création ou la suppression d'une instance de réplication. AWS DMS regroupe les événements en catégories auxquelles vous pouvez vous abonner pour être averti lorsqu'un événement de cette catégorie se produit. Par exemple, si vous vous abonnez à la catégorie de création d'une instance de réplication donnée, vous recevez une notification chaque fois que survient un événement lié à la création qui affecte votre instance de réplication. Vous pouvez utiliser ces notifications sous n'importe quelle forme prise en charge par Amazon SNS pour une région AWS, telle qu'un e-mail, un message texte ou un appel à un point de terminaison HTTP. Pour de plus amples informations, veuillez consulter Utilisation des événements et des notifications Amazon SNS dans AWS Database Migration Service.

État de la tâche

Vous pouvez surveiller la progression d'une tâche en vérifiant le statut de la tâche et en surveillant la table de contrôle de la tâche. L'état de la tâche indique l'état d'une tâche AWS DMS et les ressources qui lui sont associées. Il inclut des indications qui permettent de déterminer si la tâche est en cours de création, de lancement, d'exécution ou d'arrêt. Il indique également l'état actuel des tables migrées par la tâche. Par exemple, il permet de déterminer si une charge complète d'une table a commencé ou si elle est en cours et donne des informations telles que le nombre d'insertions, de suppressions et de mises à jour effectuées pour cette table. Pour plus d'informations sur la surveillance de l'état des tâches et de leurs ressources, consultez État de la tâche et État d'une table pendant des tâches. Pour plus d'informations sur les tables de contrôle, consultez Paramètres de tâche de la table de contrôle.

Alarmes et journaux Amazon CloudWatch

Utilisez les alarmes Amazon CloudWatch pour surveiller une ou plusieurs métriques de tâche sur une période que vous spécifiez. Si une métrique dépasse un seuil donné, une notification est envoyée à une rubrique Amazon SNS. Les alarmes CloudWatch n'appellent pas une action uniquement parce qu'elles se trouvent dans un état particulier. Au contraire, l'état doit avoir changé et avoir été maintenu pendant un nombre déterminé de périodes. AWS DMS utilise également CloudWatch pour journaliser les informations sur les tâches au cours du processus de migration. Vous pouvez utiliser l'AWS CLI ou l'API AWS DMS pour consulter des informations sur les journaux de tâches. Pour plus d'informations sur l'utilisation de CloudWatch avec AWS DMS, consultez Surveillance des tâches de réplication à l'aide d'Amazon CloudWatch. Pour plus d'informations sur la surveillance des métriques AWS DMS, consultez Métriques AWS Database Migration Service. Pour plus d'informations sur l'utilisation des journaux de tâches AWS DMS, consultez Affichage et gestion des journaux de tâches AWS DMS.

Journaux de voyage dans le temps

Pour journaliser et déboguer les tâches de réplication, vous pouvez utiliser le voyage dans le temps AWS DMS. Dans cette approche, vous utilisez Amazon S3 pour stocker les journaux et les chiffrer à l'aide de vos clés de chiffrement. Vous pouvez récupérer vos journaux S3 à l'aide de filtres de date et d'heure, puis afficher, télécharger et masquer les journaux selon vos besoins. Ce faisant, vous pouvez « voyager dans le temps » pour examiner les activités de base de données.

Vous pouvez utiliser le voyage dans le temps avec des points de terminaison sources PostgreSQL pris en charge par DMS et des points de terminaison cibles PostgreSQL et MySQL pris en charge par DMS. Vous pouvez activer le voyage dans le temps uniquement pour les tâches de chargement complet et CDC et pour les tâches de CDC uniquement. Pour activer le voyage dans le temps ou pour modifier des paramètres de voyage dans le temps existants, assurez-vous que votre tâche est arrêtée.

Pour plus d'informations sur les journaux de voyage dans le temps, consultez Paramètres de tâche de voyage dans le temps. Pour examiner les bonnes pratiques relatives à l'utilisation des journaux de voyage dans le temps, consultez Résolution des problèmes liés aux tâches de réplication à l'aide du voyage dans le temps.

AWS CloudTrailJournaux

AWS DMS est intégré avec AWS CloudTrail, un service qui fournit un enregistrement des actions entreprises par un utilisateur, un rôle IAM ou un service AWS dans AWS DMS. CloudTrail capture tous les appels d'API pour AWS DMS en tant qu'événements, y compris les appels émis par la console AWS DMS et les appels de code transmis aux opérations d'API AWS DMS. Si vous créez un journal d'activité, vous pouvez activer la livraison continue d'événements CloudTrail à un compartiment Amazon S3, y compris des événements pour AWS DMS. Si vous ne configurez pas de journal de suivi, vous pouvez toujours afficher les événements les plus récents dans la console CloudTrail dans Event history (Historique des événements). En utilisant les informations collectées par CloudTrail, vous pouvez déterminer la demande qui a été envoyée à AWS DMS, l'adresse IP, l'auteur et la date de la demande, ainsi que d'autres détails. Pour de plus amples informations, veuillez consulter Journalisation des appels d'API AWS DMS avec AWS CloudTrail.

Journaux de base de données

Vous pouvez afficher, télécharger et surveiller les journaux de base de données pour vos points de terminaison de tâche à l'aide de la console AWS Management Console, de l'AWS CLI ou de l'API de votre service de base de données AWS. Pour plus d'informations, consultez la documentation de votre service de base de données dans la documentation AWS.

Pour plus d'informations, consultez les rubriques suivantes.

État de la tâche

Le statut de la tâche indique la condition de la tâche. Le tableau suivant montre les états possibles qu'une tâche peut avoir :

État de la tâche Description

Création

AWS DMS crée la tâche.

En cours d'exécution

La tâche exécute les tâches de migration spécifiées.

Arrêté(e)

La tâche est arrêtée.

Stopping

La tâche est en cours d'arrêt. Ceci est généralement une indication d'une intervention d'un utilisateur dans la tâche.

Suppression en cours

La tâche est cours de suppression, généralement suite à une demande d'intervention de l'utilisateur.

Échec

La tâche a échoué. Pour plus d'informations, consultez les fichiers journaux de la tâche.

Error (Erreur)

La tâche s'est arrêtée en raison d'une erreur. Une brève description de l'erreur concernant la tâche est fournie dans la dernière section du message d'échec, dans l'onglet Vue d'ensemble.

Exécution avec des erreurs

La tâche s'exécute avec un statut d'erreur. Cela indique généralement qu'une ou plusieurs tables de la tâche n'ont pas pu être migrées. La tâche continue de charger d'autres tables conformément aux règles de sélection.

Démarrage en cours

La tâche se connecte à l'instance de réplication et aux points de terminaison source et cible. Les filtres et les transformations sont appliqués.

Prêt

La tâche est prête à s'exécuter. Cet état suit généralement l'état « Création ».

Modification

La tâche est en cours de modification, généralement en raison d'une action de l'utilisateur qui a modifié les paramètres de la tâche.

Déplacement

La tâche est en cours de déplacement vers une autre instance de réplication. La réplication conserve ce statut jusqu'à ce que le déplacement soit terminé. La suppression de la tâche est la seule opération autorisée sur la tâche de réplication pendant son déplacement.

Échec du déplacement

Le déplacement de la tâche a échoué pour une raison quelconque, telle qu'un manque d'espace de stockage sur l'instance de réplication cible. Lorsqu'une tâche de réplication présente ce statut, elle peut être démarrée, modifiée, déplacée ou supprimée.

Test

La migration de base de données spécifiée pour cette tâche est testée en réponse à l'exécution de l'opération StartReplicationTaskAssessmentRun ou StartReplicationTaskAssessment.

La barre d’état des tâches donne une estimation de la progression de la tâche. La qualité de cette estimation dépend de la qualité des statistiques de table de la base de données source ; meilleures sont les statistiques de table, plus précise sera l'estimation. Pour les tâches avec une seule table ne disposant pas de statistiques de lignes estimées, nous ne pouvons par fournir une estimation complète en pourcentage. Dans ce cas, l'état de la tâche et l'indication des lignes chargées peuvent servir à confirmer que la tâche est bien en cours d'exécution et de progression.

Notez que la colonne « Dernière mise à jour » de la console DMS indique uniquement l'instant où AWS DMS a mis à jour pour la dernière fois l'enregistrement des statistiques de table pour une table. Elle n'indique pas l'heure de la dernière mise à jour de la table.

Outre l'utilisation de la console DMS, vous pouvez générer une description des tâches de réplication actuelles, y compris leur statut, à l'aide de la commande aws dms describe-replication-tasks dans AWS CLI, comme illustré dans l'exemple suivant.

{ "ReplicationTasks": [ { "ReplicationTaskIdentifier": "moveit2", "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", "MigrationType": "full-load", "TableMappings": ...output omitted... , "ReplicationTaskSettings": ...output omitted... , "Status": "stopped", "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", "ReplicationTaskCreationDate": 1590524772.505, "ReplicationTaskStartDate": 1590619805.212, "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII", "ReplicationTaskStats": { "FullLoadProgressPercent": 100, "ElapsedTimeMillis": 0, "TablesLoaded": 0, "TablesLoading": 0, "TablesQueued": 0, "TablesErrored": 0, "FreshStartDate": 1590619811.528, "StartDate": 1590619811.528, "StopDate": 1590619842.068 } } ] }

État d'une table pendant des tâches

La console AWS DMS met à jour les informations concernant l'état de vos tables au cours de la migration. Le tableau suivant illustre les valeurs d’état possibles :


             Instance de réplication AWS Database Migration Service
État Description

La table n'existe pas

AWS DMS ne peut pas trouver la table sur le point de terminaison source.

Avant chargement

Le processus de chargement complet a été activé, mais il n'a pas encore commencé.

Chargement complet

Le processus de chargement complet est en cours.

Table terminée

Le chargement complet est terminé.

Table annulée

Le chargement de la table a été annulé.

Erreur de table

Une erreur s'est produite lors du chargement de la table.

Surveillance des tâches de réplication à l'aide d'Amazon CloudWatch

Vous pouvez utiliser les alarmes ou les événements Amazon CloudWatch pour suivre plus précisément la migration. Pour plus d'informations sur Amazon CloudWatch, consultez Que sont Amazon CloudWatch, Amazon CloudWatch Events et Amazon CloudWatch Logs ? dans le Guide de l'utilisateur Amazon CloudWatch. Notez que l'utilisation d'Amazon CloudWatch implique des frais supplémentaires.

Si votre tâche de réplication ne crée pas de journaux CloudWatch, consultez AWS DMSne crée pas de CloudWatch journaux dans le guide de résolution des problèmes.

La console AWS DMS affiche les statistiques CloudWatch de base pour chaque tâche, notamment le statut, le pourcentage de réalisation, le temps écoulé et les statistiques de table, comme illustré ci-après. Sélectionnez la tâche de réplication, puis cliquez sur l'onglet Métriques CloudWatch.

Pour afficher et modifier les paramètres des journaux de tâches CloudWatch, choisissez Modifier la journalisation des tâches. Pour de plus amples informations, veuillez consulter Paramètres de la tâche de journalisation.


            Surveillance AWS DMS

La console AWS DMS affiche les statistiques de performances pour chaque table, notamment le nombre d'insertions, de suppressions et de mises à jour, lorsque vous sélectionnez l'onglet Statistiques de table.


            Surveillance AWS DMS

En outre, si vous sélectionnez une instance de réplication dans la page Instance de réplication, vous pouvez afficher les métriques de performance pour l'instance en choisissant l'onglet Métriques CloudWatch.


            Surveillance AWS DMS

Métriques AWS Database Migration Service

AWS DMS fournit des statistiques pour les éléments suivants :

  • Métriques de l'hôte : statistiques de performances et d'utilisation pour l'hôte de réplication, fournies par Amazon CloudWatch. Pour consulter une liste complète des métriques disponibles, consultez la page Métriques des instances de réplication.

  • Métriques de la tâche de réplication : statistiques pour les tâches de réplication, notamment les modifications entrantes et validées, ainsi que la latence entre l'hôte de réplication et les bases de données source et cible. Pour consulter une liste complète des métriques disponibles, consultez la page Métriques de tâches de réplication.

  • Métriques de table : statistiques pour les tables en cours de migration, notamment le nombre d'instructions d'insertion, de mise à jour, de suppression et DDL terminées.

Les métriques de tâche sont divisées en statistiques entre l'hôte de réplication et le point de terminaison source et en statistiques entre l'hôte de réplication et le point de terminaison cible. Vous pouvez déterminer les statistiques totales d'une tâche en additionnant deux statistiques associées. Par exemple, vous pouvez déterminer la latence totale, ou attente de réplique, d'une tâche, en combinant les valeurs de CDCLatencySource et de CDCLatencyTarget.

Les valeurs de métriques de tâche peuvent être influencées par l'activité en cours dans votre base de données source. Par exemple, si une transaction a commencé mais n'a pas été validée, la métrique CDCLatencySource continue à augmenter jusqu'à ce que cette transaction soit validée.

Pour l'instance de réplication, la métrique FreeableMemory nécessite une clarification. La mémoire libérable n'est pas une indication relative à la mémoire réelle disponible. Il s'agit de la mémoire actuellement en cours d'utilisation et pouvant être libérée et affectée à d'autres utilisations ; il s'agit d'une combinaison des mémoires tampon et de cache en cours d'utilisation sur l'instance de réplication.

Bien que la métrique FreeableMemory ne reflète pas la mémoire réelle disponible, la combinaison des métriques FreeableMemory et SwapUsage peut indiquer si l'instance de réplication est surchargée.

Surveillez les conditions suivantes pour ces deux métriques.

  • La métrique FreeableMemory approche la valeur zéro.

  • La métrique SwapUsage augmente ou fluctue.

Si vous rencontrez une de ces deux conditions, cela indique que vous devez envisager un transfert vers une instance de réplication plus importante. Vous devez également envisager de réduire le nombre et le type de tâches exécutées sur l'instance de réplication. Les tâches de chargement complet nécessitent davantage de mémoire que les tâches qui répliquent seulement des modifications.

Pour estimer approximativement les besoins réels en mémoire pour une tâche de migration AWS DMS, vous pouvez utiliser les paramètres suivants.

Colonnes LOB

Nombre moyen de colonnes LOB dans chaque table de votre étendue de migration.

Nombre maximum de tables à charger en parallèle

Nombre maximal de tables chargées par AWS DMS en parallèle dans une tâche.

La valeur par défaut est 8.

Taille de bloc du LOB

Taille des blocs du LOB, en kilo-octets, utilisée par AWS DMS pour répliquer les données vers la base de données cible.

Taux de validation pendant le chargement complet

Nombre maximal d'enregistrements qu'AWS DMS peut transférer en parallèle.

La valeur par défaut est 10,000.

Taille de LOB

Taille maximale d'un LOB individuel, en kilo-octets.

Taille de tableau en masse

Nombre maximal de lignes extraites ou traitées par votre pilote de point de terminaison. Cette valeur dépend des paramètres du pilote.

La valeur par défaut est 1,000.

Après avoir déterminé ces valeurs, vous pouvez utiliser l'une des méthodes suivantes pour estimer la quantité de mémoire requise pour votre tâche de migration. Ces méthodes dépendent de l'option que vous choisissez pour Paramètres de la colonne LOB dans votre tâche de migration.

  • Pour Mode LOB complet, utilisez la formule suivante.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB chunk size) * (Commit rate during full load)

    Prenons un exemple où vos tables sources incluent en moyenne 2 colonnes LOB et où la taille des blocs du LOB est de 64 Ko. Si vous utilisez les valeurs par défaut pour Maximum number of tables to load in parallel et Commit rate during full load, la quantité de mémoire requise pour votre tâche est la suivante.

    Required memory = 2 * 8 * 64 * 10,000 = 10,240,000 KB

    Note

    Pour réduire la valeur de Taux de validation (opérations Commit) lors du chargement complet, ouvrez la console AWS DMS, choisissez Tâches de migration de base de données, puis créez ou modifiez une tâche. Développez Paramètres avancés et entrez votre valeur pour Taux de validation (opérations Commit) lors du chargement complet.

  • Pour Mode LOB limité, utilisez la formule suivante.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB size) * (Bulk array size)

    Prenons un exemple où vos tables sources incluent en moyenne 2 colonnes LOB et où la taille maximale d'un LOB individuel est de 4 096 Ko. Si vous utilisez les valeurs par défaut pour Maximum number of tables to load in parallel et Bulk array size, la quantité de mémoire requise pour votre tâche est la suivante.

    Required memory = 2 * 8 * 4,096 * 1,000 = 65,536,000 KB

Pour qu'AWS DMS effectue les conversions de manière optimale, le CPU doit être disponible au moment des conversions. Une surcharge du CPU et un manque de ressources CPU peuvent ralentir les migrations. AWS DMS peut nécessiter une utilisation intensive de CPU, en particulier lors de migrations et de réplications hétérogènes, telles qu'une migration d'Oracle vers PostgreSQL. L'utilisation d'une classe d'instances de réplication C4 peut être un choix judicieux pour de telles situations. Pour de plus amples informations, veuillez consulter Choisir l'instance de réplication AWS DMS adaptée à votre migration.

Métriques des instances de réplication

La surveillance des instances de réplication comprend les métriques Amazon CloudWatch pour les statistiques suivantes.

Métrique

Description

AvailableMemory

Estimation de la quantité de mémoire disponible pour démarrer de nouvelles applications, sans échange. Pour plus d'informations, consultez la valeur MemAvailable dans la section /proc/memInfo des pages de manuel Linux.

Unités : octets

CPUAllocated

Pourcentage de CPU alloué au maximum pour la tâche (0 signifie qu'il n'y a pas de limite).

AWS DMS augmente cette métrique par rapport aux dimensions combinées de ReplicationInstanceIdentifer et ReplicationTaskIdentifier dans la console CloudWatch. Utilisez la catégorie ReplicationInstanceIdentifier, ReplicationTaskIdentifier pour visualiser cette métrique.

Unités : pourcentage

CPUUtilization

Pourcentage de vCPU (CPU virtuel) alloué actuellement utilisé dans l'instance.

Unités : pourcentage

DiskQueueDepth

Nombre de demandes de lecture et d'écriture (E/S) en attente d'accéder au disque.

Unités : nombre

FreeStorageSpace

Quantité d'espace de stockage disponible.

Unités : octets

FreeMemory

Quantité de mémoire physique disponible pour être utilisée par les applications, le cache de pages et pour les propres structures de données du noyau. Pour plus d'informations, consultez la valeur MemFree dans la section /proc/memInfo des pages de manuel Linux.

Unités : octets

FreeableMemory

Quantité de mémoire vive disponible.

Unités : octets

MemoryAllocated

Allocation maximale de mémoire pour la tâche (0 signifie qu'il n'y a pas de limite).

AWS DMS augmente cette métrique par rapport aux dimensions combinées de ReplicationInstanceIdentifer et ReplicationTaskIdentifier dans la console CloudWatch. Utilisez la catégorie ReplicationInstanceIdentifier, ReplicationTaskIdentifier pour visualiser cette métrique.

Unités : Mio

WriteIOPS

Nombre moyen d'opérations d'I/O d'écriture de disque par seconde.

Unités : nombre/seconde

ReadIOPS

Nombre moyen d'opérations d'I/O de lecture de disque par seconde.

Unités : nombre/seconde

WriteThroughput

Nombre moyen d'octets écrits sur le disque par seconde.

Unités : octets/seconde

ReadThroughput

Nombre moyen d'octets lus sur le disque par seconde.

Unités : octets/seconde

WriteLatency

Temps moyen nécessaire pour les opérations d'E/S (sortie) par disque.

Unités : millisecondes

ReadLatency

Temps moyen nécessaire pour les opérations d'E/S (entrée) par disque.

Unités : millisecondes

SwapUsage

Quantité d'espace d'échange utilisé sur l'instance de réplication.

Unités : octets

NetworkTransmitThroughput

Trafic réseau sortant (transmission) sur l'instance de réplication, comprenant le trafic de base de données client et le trafic AWS DMS, utilisé pour la surveillance et la réplication.

Unités : octets/seconde

NetworkReceiveThroughput

Trafic réseau entrant (réception) sur l'instance de réplication, notamment le trafic de base de données client et le trafic AWS DMS, utilisé pour la surveillance et la réplication.

Unités : octets/seconde

Métriques de tâches de réplication

La surveillance de la tâche de réplication inclut des métriques pour les statistiques suivantes.

Métrique

Description

FullLoadThroughputBandwidthTarget

Données sortantes transmises à partir d'un chargement complet pour la cible en Ko par seconde.

FullLoadThroughputRowsTarget

Modifications sortantes à partir d'un chargement total depuis la source, exprimées en lignes par seconde.

CDCIncomingChanges

Nombre total d'événements de modification qui attendent, à un moment donné, d'être appliqués à la cible. Notez que cela est différent de la mesure du taux de modifications de transaction du point de terminaison source. Une valeur élevée pour cette métrique indique généralement qu'AWS DMS n'est pas en mesure d'appliquer les modifications capturées dans un délai raisonnable, ce qui entraîne une latence cible importante.

CDCChangesMemorySource

Quantité de lignes s'accumulant dans une mémoire et attendant leur validation à partir de la source. Vous pouvez visualiser cette métrique avec CDCChangesDiskSource.

CDCChangesMemoryTarget

Quantité de lignes s'accumulant dans une mémoire et attendant leur validation dans la cible. Vous pouvez visualiser cette métrique avec CDCChangesDiskTarget.

CDCChangesDiskSource

Quantité de lignes s'accumulant sur un disque et attendant leur validation à partir de la source. Vous pouvez visualiser cette métrique avec CDCChangesMemorySource.

CDCChangesDiskTarget

Quantité de lignes s'accumulant sur un disque et attendant leur validation dans la cible. Vous pouvez visualiser cette métrique avec CDCChangesMemoryTarget.

CDCThroughputBandwidthTarget

Données sortantes transmises pour la cible en Ko par seconde. CDCThroughputBandwidth enregistre les données sortantes transmises sur les points d'échantillonnage. Si aucun trafic réseau de tâche n'est trouvé, la valeur est zéro. Étant donné que CDC ne délivre pas de transactions de longue durée, le trafic réseau peut ne pas être enregistré.

CDCThroughputRowsSource

Modifications de tâche entrante à partir de la source en lignes par seconde.

CDCThroughputRowsTarget

Modifications de tâche sortante pour la cible en lignes par seconde.

CDCLatencySource

Intervalle, en secondes, entre le dernier événement capturé à partir du point de terminaison source et l'horodatage système actuel de l'instance AWS DMS. CDCLatencySource représente la latence entre la source et l'instance de réplication. Une valeur élevée de CDCLatencySource signifie que le processus de capture des modifications depuis la source est retardé. Pour identifier la latence dans une réplication continue, vous pouvez visualiser cette métrique avec CDCLatencyTarget. Si les valeurs CDCLatencySource et CDCLatencyTarget sont toutes les deux élevées, examinez d'abord CDCLatencySource.

La valeur CDCSourceLatency peut être égale à 0 lorsqu'il n'y a aucun retard de réplication entre la source et l'instance de réplication. CDCSourceLatency peut également atteindre zéro quand la tâche de réplication tente de lire l'événement suivant dans le journal des transactions de la source et qu'il n'y a aucun nouvel événement par rapport à la dernière lecture depuis la source. Lorsque cela se produit, la tâche remet CDCSourceLatency à 0.

CDCLatencyTarget

Intervalle, en secondes, entre le premier horodatage d'événement en attente de validation sur la cible et l'horodatage actuel de l'instance AWS DMS. La latence cible est la différence entre l'heure du serveur de l'instance de réplication et le plus ancien identifiant d'événement non confirmé transféré vers un composant cible. En d'autres termes, la latence cible est la différence d'horodatage entre l'instance de réplication et le plus ancien événement appliqué mais non confirmé par le point de terminaison TRG (99 %). Quand la valeur CDCLatencyTarget est élevée, cela indique que le processus d'application des événements de modification à la cible est retardé. Pour identifier la latence dans une réplication continue, vous pouvez consulter cette métrique avec CDCLatencySource. Si la valeur CDCLatencyTarget est élevée mais que CDCLatencySource ne l'est pas, vérifiez si :

  • Aucune clé primaire ni aucun index ne se trouvent dans la cible

  • Des goulots d'étranglement liés aux ressources se produisent dans la cible ou l'instance de réplication

  • Des problèmes de réseau résident entre l'instance de réplication et la cible

CPUUtilization

Pourcentage de CPU utilisé par une tâche sur plusieurs cœurs. La sémantique de la valeur CPUUtilization de la tâche est légèrement différente de celle de la valeur CPUUtilizaiton de la réplication. Si 1 vCPU est entièrement utilisé, cela indique 100 %, mais si plusieurs vCPU sont utilisés, la valeur peut dépasser 100 %.

Unités : pourcentage

SwapUsage

Quantité d'échange utilisée par la tâche.

Unités : octets

MemoryUsage

Groupe de contrôle (cgroup) memory.usage_in_bytes consommé par une tâche. DMS utilise des groupes de contrôle pour contrôler l'utilisation des ressources système telles que la mémoire et le CPU. Cette métrique indique l'utilisation de mémoire d'une tâche en mégaoctets au sein du groupe de contrôle alloué pour cette tâche. Les limites du groupe de contrôle sont basées sur les ressources disponibles pour votre classe d'instances de réplication DMS. memory.usage_in_bytes comprend la taille de résident défini (RSS), le cache et les composants d'échange de mémoire. Le système d'exploitation peut récupérer de la mémoire cache si nécessaire. Nous vous recommandons de surveiller également la métrique de l'instance de réplication, AvailableMemory.

AWS DMS augmente cette métrique par rapport aux dimensions combinées de ReplicationInstanceIdentifer et ReplicationTaskIdentifier dans la console CloudWatch. Utilisez la catégorie ReplicationInstanceIdentifier, ReplicationTaskIdentifier pour visualiser cette métrique.

Affichage et gestion des journaux de tâches AWS DMS

Vous pouvez utiliser Amazon CloudWatch pour journaliser les informations sur les tâches au cours d'un processus de migration AWS DMS. Vous activez la journalisation lorsque vous sélectionnez les paramètres de tâche. Pour de plus amples informations, veuillez consulter Paramètres de la tâche de journalisation.

Pour afficher les journaux d'une tâche exécutée, procédez comme suit :

  1. Ouvrez la console AWS DMS et choisissez Tâches de migration de base de données dans le panneau de navigation. La boîte de dialogue Tâches de migration de base de données s'affiche.

  2. Sélectionnez le nom de votre tâche. La boîte de dialogue Détails de présentation s'affiche.

  3. Recherchez la section Journaux de tâche de migration et choisissez Afficher les CloudWatch Logs.

En outre, vous pouvez utiliser AWS CLI ou l'API AWS DMS pour afficher des informations sur les journaux de tâches. Pour ce faire, utilisez la commande AWS CLI describe-replication-instance-task-logs ou l'action d'API AWS DMS DescribeReplicationInstanceTaskLogs.

Par exemple, la commande AWS CLI suivante indique les métadonnées des journaux de tâches au format JSON.

$ aws dms describe-replication-instance-task-logs \ --replication-instance-arn arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY

Voici un exemple de réponse de la commande.

{ "ReplicationInstanceTaskLogs": [ { "ReplicationTaskArn": "arn:aws:dms:us-east-1:237565436:task:MY34U6Z4MSY52GRTIX3O4AY", "ReplicationTaskName": "mysql-to-ddb", "ReplicationInstanceTaskLogSize": 3726134 } ], "ReplicationInstanceArn": "arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY" }

Dans cette réponse, l'instance de réplication est associée à un seul journal de tâches (mysql-to-ddb). La taille de ce journal est de 3 726,124 octets.

Vous pouvez utiliser les informations renvoyés par describe-replication-instance-task-logs pour diagnostiquer et résoudre les problèmes liés aux journaux de tâches. Par exemple, si vous autorisez une journalisation détaillée du débogage pour une tâche, le journal de la tâche croîtra rapidement. L'espace de stockage disponible sur l'instance de réplication risque alors d'être entièrement consommé et le statut de l'instance passera à storage-full. En décrivant les journaux de tâches, vous pouvez identifier ceux dont vous n'avez plus besoin et les supprimer pour libérer de l'espace de stockage.

Pour supprimer les journaux pour une tâche, définissez le paramètre de tâche DeleteTaskLogs sur true. Par exemple, le code JSON suivant supprime les journaux d'une tâche lors de la modification de la tâche à l'aide de la commande AWS CLI modify-replication-task ou de l'action d'API AWS DMS ModifyReplicationTask.

{ "Logging": { "DeleteTaskLogs":true } }

Journalisation des appels d'API AWS DMS avec AWS CloudTrail

AWS DMS est intégré avec ,AWS CloudTrail un service qui fournit un registre des actions prises par un utilisateur, un rôle ou un service AWS dans AWS DMS. CloudTrail capture tous les appels d'API pour AWS DMS en tant qu'événements, y compris les appels émis par la console AWS DMS et les appels de code transmis aux opérations d'API AWS DMS. Si vous créez un journal d'activité, vous pouvez activer la livraison continue d'événements CloudTrail à un compartiment Amazon S3, y compris des événements pour AWS DMS. Si vous ne configurez pas de journal de suivi, vous pouvez toujours afficher les événements les plus récents dans la console CloudTrail dans Event history (Historique des événements). Avec les informations collectées par CloudTrail, vous pouvez déterminer la demande qui a été envoyée à l'AWS DMS, ainsi que l'adresse IP, l'auteur et date de la demande, ainsi que d'autres détails.

Pour en savoir plus sur CloudTrail, consultez le Guide de l'utilisateur AWS CloudTrail.

AWS DMS Informations dans CloudTrail

CloudTrail est activé dans votre compte AWS lors de sa création. Lorsqu'une activité a lieu dans AWS DMS, cette activité est enregistrée dans un événement CloudTrail avec d'autres AWS événements de service dans Historique des événements. Vous pouvez afficher, rechercher et télécharger les événements récents dans votre compte AWS. Pour de plus amples informations, veuillez consulter Affichage des événements avec l'historique des événements CloudTrail.

Pour enregistrer en continu les événements dans votre compte AWS, y compris les événements d'AWS DMS, créez un journal d'activité. Un journal d'activité permet à CloudTrail de distribuer les fichiers journaux vers Amazon S3 bucket. Par défaut, lorsque vous créez un journal de suivi dans la console, il s'applique à toutes les régions AWS. Le journal d'activité consigne les événements de toutes les Régions dans la partition AWSAWS et transfère les fichiers journaux dans le compartiment Amazon S3 de votre choix. En outre, vous pouvez configurer d'autres services AWS pour analyser plus en profondeur les données d'événement collectées dans les journaux CloudTrail et agir sur celles-ci. Pour plus d'informations, consultez :

Toutes les actions AWS DMS sont consignées par CloudTrail et documentées dans la Référence des API AWS Database Migration Service. À titre d'exemple, les appels vers les actions CreateReplicationInstance, TestConnection et StartReplicationTask génèrent des entrées dans les fichiers journaux CloudTrail.

Chaque événement ou entrée de journal contient des informations sur la personne ayant initié la demande. Les informations relatives à l'identité permettent de déterminer les éléments suivants :

  • Si la demande a été effectuée avec les autorisations utilisateur root ou IAM .

  • Si la demande a été effectuée avec des autorisations de sécurité temporaires pour un rôle ou un utilisateur fédéré.

  • Si la requête a été effectuée par un autre service AWS.

Pour plus d'informations, consultez l'élément userIdentity CloudTrail.

Présentation des AWS DMS entrées des fichiers journaux

Un journal d'activité est une configuration qui permet d'envoyer les événements dans des fichiers journaux à un compartiment Amazon S3 que vous spécifiez. Les fichiers journaux CloudTrail peuvent contenir une ou plusieurs entrées. Un événement représente une demande individuelle émise à partir d'une source quelconque et comprend des informations sur l'action demandée, la date et l'heure de l'action, les paramètres de la demande, etc. Les fichiers journaux CloudTrail ne constituent pas une trace de pile ordonnée d'appels d'API publics. Ils ne suivent donc aucun ordre précis.

L'exemple suivant montre une entrée de journal CloudTrail qui illustre l'action RebootReplicationInstance.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:johndoe", "arn": "arn:aws:sts::123456789012:assumed-role/admin/johndoe", "accountId": "123456789012", "accessKeyId": "ASIAYFI33SINADOJJEZW", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-01T16:42:09Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:role/admin", "accountId": "123456789012", "userName": "admin" } } }, "eventTime": "2018-08-02T00:11:44Z", "eventSource": "dms.amazonaws.com", "eventName": "RebootReplicationInstance", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.64", "userAgent": "console.amazonaws.com", "requestParameters": { "forceFailover": false, "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE" }, "responseElements": { "replicationInstance": { "replicationInstanceIdentifier": "replication-instance-1", "replicationInstanceStatus": "rebooting", "allocatedStorage": 50, "replicationInstancePrivateIpAddresses": [ "172.31.20.204" ], "instanceCreateTime": "Aug 1, 2018 11:56:21 PM", "autoMinorVersionUpgrade": true, "engineVersion": "2.4.3", "publiclyAccessible": true, "replicationInstanceClass": "dms.t2.medium", "availabilityZone": "us-east-1b", "kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", "replicationSubnetGroup": { "vpcId": "vpc-1f6a9c6a", "subnetGroupStatus": "Complete", "replicationSubnetGroupArn": "arn:aws:dms:us-east-1:123456789012:subgrp:EDHRVRBAAAPONQAIYWP4NUW22M", "subnets": [ { "subnetIdentifier": "subnet-cbfff283", "subnetAvailabilityZone": { "name": "us-east-1b" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-d7c825e8", "subnetAvailabilityZone": { "name": "us-east-1e" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-6746046b", "subnetAvailabilityZone": { "name": "us-east-1f" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-bac383e0", "subnetAvailabilityZone": { "name": "us-east-1c" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-42599426", "subnetAvailabilityZone": { "name": "us-east-1d" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-da327bf6", "subnetAvailabilityZone": { "name": "us-east-1a" }, "subnetStatus": "Active" } ], "replicationSubnetGroupIdentifier": "default-vpc-1f6a9c6a", "replicationSubnetGroupDescription": "default group created by console for vpc id vpc-1f6a9c6a" }, "replicationInstanceEniId": "eni-0d6db8c7137cb9844", "vpcSecurityGroups": [ { "vpcSecurityGroupId": "sg-f839b688", "status": "active" } ], "pendingModifiedValues": {}, "replicationInstancePublicIpAddresses": [ "18.211.48.119" ], "replicationInstancePublicIpAddress": "18.211.48.119", "preferredMaintenanceWindow": "fri:22:44-fri:23:14", "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE", "replicationInstanceEniIds": [ "eni-0d6db8c7137cb9844" ], "multiAZ": false, "replicationInstancePrivateIpAddress": "172.31.20.204", "patchingPrecedence": 0 } }, "requestID": "a3c83c11-95e8-11e8-9d08-4b8f2b45bfd5", "eventID": "b3c4adb1-e34b-4744-bdeb-35528062a541", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

Journalisation du contexte AWS DMS

AWS DMS utilise la journalisation du contexte pour vous fournir des informations sur une migration en cours. La journalisation du contexte écrit des informations, telles que les suivantes, dans le journal CloudWatch de la tâche :

  • Informations sur la connexion de la tâche aux bases de données source et cible.

  • Comportement des tâches de réplication. Vous pouvez utiliser les journaux de tâches pour diagnostiquer les problèmes de réplication.

  • Instructions SQL sans données qu'AWS DMS exécute sur les bases de données source et cible. Vous pouvez utiliser les journaux SQL pour diagnostiquer un comportement de migration inattendu.

  • Détails de position de flux pour chaque événement CDC.

La journalisation du contexte n'est disponible que dans AWS DMS version 3.5.0 ou ultérieure.

AWS DMS active par défaut la journalisation du contexte. Pour contrôler la journalisation du contexte, définissez le paramètre de tâche EnableLogContext sur true ou false, ou modifiez la tâche dans la console.

AWS DMS écrit les informations de journalisation du contexte dans la tâche de réplication du journal CloudWatch toutes les trois minutes. Veillez à ce que votre instance de réplication dispose de suffisamment d'espace pour son journal d'application. Pour plus d'informations sur la gestion des journaux de tâches, consultez Affichage et gestion des journaux de tâches AWS DMS.

Types d'objets

AWS DMS produit une journalisation du contexte dans CloudWatch pour les types d'objets suivants.

Type d'objet Description
TABLE_NAME Ces entrées de journal contiennent des informations sur les tables concernées par la règle de mappage des tâches actuelle. Vous pouvez utiliser ces entrées pour examiner les événements de table pour une période spécifique au cours de la migration.
SCHEMA_NAME Ces entrées de journal contiennent des informations sur les schémas utilisés par la règle de mappage des tâches actuelle. Vous pouvez utiliser ces entrées pour déterminer le schéma qu'AWS DMS utilise pendant une période spécifique au cours de la migration.
TRANSACTION_ID Ces entrées contiennent l'ID de transaction pour chaque modification DML/DDL capturée à partir de la base de données source. Vous pouvez utiliser ces entrées de journal pour déterminer les changements survenus au cours d'une transaction donnée.
CONNECTION_ID Ces entrées contiennent l'ID de connexion. Vous pouvez utiliser ces entrées de journal pour déterminer la connexion qu'AWS DMS utilise pour chaque étape de migration.
STATEMENT Ces entrées contiennent le code SQL utilisé pour récupérer, traiter et appliquer chaque modification de migration.
STREAM_POSITION Ces entrées contiennent la position dans le fichier journal de transactions pour chaque action de migration sur la base de données source. Le format de ces entrées varie selon le type de moteur de base de données source. Vous pouvez également utiliser ces informations pour déterminer une position de départ d'un point de contrôle de récupération lors de la configuration de la réplication CDC uniquement.

Exemples de journalisation

Cette section contient des exemples d'enregistrements de journal que vous pouvez utiliser pour surveiller la réplication et diagnostiquer les problèmes de réplication.

Exemples de journaux de connexion

Cette section contient des exemples de journaux qui incluent les ID de connexion.

2023-02-22T10:09:29 [SOURCE_CAPTURE ]I: Capture record 1 to internal queue from Source {operation:START_REGULAR (43), connectionId:27598, streamPosition:0000124A/6800A778.NOW} (streamcomponent.c:2920) 2023-02-22T10:12:30 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), connectionId:27598} (streamcomponent.c:2920) 2023-02-22T11:25:27 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), columnName:region, connectionId:27598} (streamcomponent.c:2920)

Exemples de journaux de comportement des tâches

Cette section contient des exemples de journaux relatifs au comportement des tâches de réplication. Vous pouvez utiliser ces informations pour diagnostiquer les problèmes de réplication, tels que le statut IDLE d'une tâche.

Les journaux SOURCE_CAPTURE suivants indiquent qu'aucun événement ne peut être lu dans le fichier journal de la base de données source et contiennent des enregistrements TARGET_APPLY indiquant qu'aucun événement reçu des composants AWS DMS CDC ne s'applique à la base de données cible. Ces événements contiennent également des détails contextuels relatifs à des événements précédemment appliqués.

2023-02-22T11:23:24 [SOURCE_CAPTURE ]I: No Event fetched from wal log (postgres_endpoint_wal_engine.c:1369) 2023-02-22T11:24:29 [TARGET_APPLY ]I: No records received to load or apply on target , waiting for data from upstream. The last context is {operation:INSERT (1), tableName:sales_11, schemaName:public, txnId:18662441, connectionId:17855, statement:INSERT INTO "public"."sales_11"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

Exemples de journaux d'instructions SQL

Cette section contient des exemples de journaux relatifs aux instructions SQL exécutées sur les bases de données source et cible. Les instructions SQL que vous voyez dans ces journaux indiquent uniquement l'instruction SQL et ne montrent pas les données. Le journal TARGET_APPLY suivant montre une instruction INSERT exécutée sur la cible.

2023-02-22T11:26:07 [TARGET_APPLY ]I: Applied record 2193305 to target {operation:INSERT (1), tableName:sales_111, schemaName:public, txnId:18761543, connectionId:17855, statement:INSERT INTO "public"."sales_111"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

Limites

Les limitations suivantes s'appliquent à la journalisation du contexte par AWS DMS :

  • AWS DMS crée une journalisation minimale de tous les types de point de terminaison, alors qu'une journalisation de contexte extensive, spécifique au moteur, est disponible uniquement pour les types de point de terminaison suivants. Nous vous recommandons d'activer la journalisation du contexte lorsque vous utilisez ces types de point de terminaison.

    • MySQL

    • PostgreSQL

    • Oracle

    • Microsoft SQL Server

    • MongoDB / Amazon DocumentDB

    • Amazon S3