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.
AWS DMS resynchronisation des données
AWS Database Migration Service (AWS DMS) La resynchronisation des données corrige automatiquement les incohérences de données identifiées lors de la validation des données entre vos bases de données source et cible. Cette fonctionnalité fonctionne dans le cadre de vos tâches de migration DMS existantes, garantissant que les mises à jour appropriées sont effectuées en fonction de la configuration de vos tâches, de vos paramètres de connexion, de mappages de tables et de vos transformations.
La fonction de resynchronisation des données fonctionne en lisant les échecs de validation à partir d'une table de contrôle de la base de données cible et en exécutant les opérations de correction appropriées. Lorsqu'une non-concordance est détectée, les données actuelles sont extraites de la source à l'aide de la clé primaire stockée dans l'enregistrement d'échec, et elles sont appliquées à la cible tout en respectant les transformations configurées. Pour de plus amples informations, veuillez consulter table de contrôle awsdms_validation_failures_v2.
Le comportement varie en fonction de votre type de migration. Pour les tâches à chargement complet uniquement, la resynchronisation des données s'exécute une fois le chargement initial et la validation terminés. Pour les tâches impliquant la capture des données de modification (CDC), la resynchronisation des données s'effectue selon un calendrier configuré, interrompant temporairement la réplication et la validation pendant l'application des correctifs.
Pendant les opérations de resynchronisation du CDC :
-
La réplication et la validation sont temporairement interrompues.
-
La resynchronisation des données traite les échecs de validation existants.
-
Reprise normale de la réplication et de la validation.
-
Le processus se répète en fonction du calendrier que vous avez configuré.
La resynchronisation des données suit automatiquement l'état de chaque opération de correction et fournit des mesures détaillées par le biais de tableaux statistiques.
- Prérequis :
-
La fonctionnalité de resynchronisation des données nécessite les prérequis suivants :
-
Vous devez disposer de la version 3.6.1 ou ultérieure du AWS DMS moteur.
-
Vous devez configurer les paramètres de planification et de durée pour les tâches dont la réplication est en cours. Les tâches à chargement complet uniquement ne nécessitent pas ces paramètres.
-
Limitations
La fonctionnalité de resynchronisation des données présente les limites suivantes :
-
La resynchronisation des données prend uniquement en charge Oracle et SQL Server en tant que base de données source.
-
La resynchronisation des données prend en charge PostgreSQL et le moteur compatible Amazon Aurora PostgreSQL en tant que base de données cible.
-
Toutes les tables de votre base de données source et cible doivent avoir des clés primaires. La validation ne prend pas en charge les tables sans clé primaire ou clé unique. Toutes les tables qui ne possèdent pas de clé primaire ou unique valide sont suspendues de la validation et aucun échec de validation n'est signalé.
-
Lors de l'exécution de Full-load-only tâches, la validation des données doit être activée.
-
La resynchronisation des données ne peut pas être activée pour la tâche de validation uniquement car elles ne répliquent aucune donnée. Vous pouvez activer la resynchronisation sur la tâche de réplication parente en fournissant uniquement la Validation.
taskIDPour plus d'informations, voir Tâches de validation uniquement. -
Si un
ControlSchemaparamètre de la tâche Validation uniquement est configuré dans les paramètres de la tâche, la tâche de réplication doit également avoir la même configuration de paramètres pour la resynchronisation des données afin de détecter les échecs de validation corrects. -
Vous devez configurer les paramètres de planification et de durée pour les tâches CDC.
-
Pendant la fenêtre de resynchronisation, la resynchronisation des données peut avoir un impact sur la latence de réplication dans DMS.
Pour plus d'informations sur le dépannage des validations AWS DMS lors de la resynchronisation des données, consultez la section Résolution des problèmes sous AWS DMS Validation des données.
Planification et chronométrage
Pour les tâches avec CDC, vous devez configurer quand et pendant combien de temps la resynchronisation des données fonctionne. Cela permet d'éviter tout impact sur vos opérations de réplication normales. Vous spécifiez :
-
Un calendrier utilisant le format cron pour définir quand les opérations de resynchronisation peuvent avoir lieu.
-
Une durée maximale pour garantir que les opérations de resynchronisation ne se prolongent pas pendant les périodes de pointe.
Il est recommandé de planifier les opérations de resynchronisation pendant les heures creuses ou pendant une période où les modifications apportées à la base de données source sont minimes, voire nulles.
Note
Le temps planifié inclut l'attente que le flux d'application cible soit vide, car la resynchronisation des données et la réplication normale ne peuvent pas être exécutées simultanément.
Cas d’utilisation
La fonction de resynchronisation des données permet aux utilisateurs de corriger les incohérences de données entre les systèmes source et cible. Il identifie les enregistrements non concordants et les synchronise pour maintenir la cohérence des données dans les environnements distribués. Les cas d'utilisation suivants illustrent des scénarios courants dans lesquels la fonctionnalité de resynchronisation des données permet de résoudre les problèmes de cohérence des données :
- Scénario 1 : tâche de chargement complet : exécutez la resynchronisation à l'aide de la même tâche DMS
-
Dans votre tâche de migration à pleine charge DMS existante, vous pouvez effectuer les opérations suivantes :
-
Activez la validation :
Validation with data migration = true. -
Activez la resynchronisation :
Data resync = true
-
- Scénario 2 : chargement complet et tâche CDC, CDC uniquement : exécutez la resynchronisation à l'aide de la même tâche DMS
-
Dans votre tâche de migration DMS CDC existante, vous pouvez effectuer les opérations suivantes :
-
Activez la validation :
Validation with data migration = true. -
Activez la resynchronisation :
Data resync = true -
Spécifiez le calendrier de resynchronisation :.
"ResyncSchedule": "0 0,2,4,6 * * *" -
Spécifiez l'heure de resynchronisation :
MaxResyncTime": 60
-
- Scénario 3 : chargement complet et tâche CDC ou CDC uniquement pour la réplication et la resynchronisation, en combinaison avec une tâche de validation uniquement
-
Pour effectuer une opération de validation uniquement dans une autre tâche DMS lors de l'utilisation de la resynchronisation, vous pouvez effectuer les opérations suivantes :
-
Créez une tâche DMS CDC à validation uniquement.
Note
Vous devez noter et spécifier l'ID de cette tâche lors de la resynchronisation des données.
-
Dans votre tâche CDC principale, désactivez la validation :
Data validation = false. -
Activez la resynchronisation :
Data resync = true -
Spécifiez le calendrier de resynchronisation :.
"ResyncSchedule": "0 0,2,4,6 * * *" -
Spécifiez l'heure de resynchronisation :.
MaxResyncTime": 60 -
Spécifiez l'ID de la tâche DMS CDC à validation uniquement. L'ID de tâche de validation uniquement est ajouté à la fin de l'ARN. Exemple d'ARN :
arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWIet exemple d'ID de tâche de validation uniquement :6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI.
-
Bonnes pratiques
Vous pouvez tirer parti de la fonctionnalité de resynchronisation des données AWS Database Migration Service pour améliorer la durabilité de vos tâches de réplication et garantir la cohérence. Voici quelques-unes des meilleures pratiques pour utiliser la fonctionnalité de resynchronisation des données :
-
Dans le cadre de la resynchronisation des données, les enregistrements présentant des incohérences sont corrigés en les récupérant depuis la source et en les appliquant à la base de données cible. Si la base de données source est mise à jour pendant la fenêtre de resynchronisation, Resync lit la dernière valeur d'enregistrement et l'applique à la cible. Cela peut entraîner l'échec des événements d'application du CDC et introduire des incohérences temporaires dans la base de données cible. Pour éviter cela, vous devez planifier la fenêtre de resynchronisation en dehors des heures ouvrables ou pendant les périodes où les modifications apportées à la base de données source sont nulles ou minimes.
-
Définissez la fenêtre de resynchronisation pendant les périodes d'activité minimale de la base de données source et dans les limites de votre seuil de latence cible acceptable. De petits intervalles de resynchronisation peuvent entraîner l'accumulation d'incohérences de validation non traitées, tandis que de grandes fenêtres peuvent augmenter la latence de réplication lorsque de nombreux échecs de validation se produisent. Surveillez les échecs de validation et les taux de resynchronisation pour déterminer les fenêtres de resynchronisation optimales pendant les périodes d'inactivité de la source. Voici quelques exemples de configuration des fenêtres de resynchronisation :
-
Configuration de plusieurs fenêtres courtes :
"ResyncSchedule": "0 0,2,4,6 * * *", "MaxResyncTime": 60 -
Configuration d'une fenêtre quotidienne unique :
"ResyncSchedule": "0 0 * * *", "MaxResyncTime": 360
-
-
Surveillez la latence de réplication dans DMS pendant les fenêtres de resynchronisation et ajustez le calendrier en conséquence pour atténuer les pics importants.
-
Vous pouvez consulter les résultats de la resynchronisation via les statistiques des tables ou en interrogeant la
awsdms_validation_failures_v2table dans la base de données cible. Pour plus d'informations, consultez la section Surveillance des tâches de réplication à l'aide d'Amazon CloudWatch. -
Lorsque la tâche se trouve dans une phase de réplication continue, évitez de lancer un rechargement pour des tables individuelles pendant la fenêtre de resynchronisation.
-
Meilleures pratiques pour une tâche de réplication CDC :
-
Toutes les tables de votre base de données terminent le processus de chargement.
-
Les incohérences sont identifiées lors du processus de validation en cours.
-
Conformément à la fenêtre planifiée de resynchronisation, la tâche de réplication est interrompue pendant une brève période.
-
La resynchronisation des données résout les problèmes identifiés lors du processus de validation.
-
Le processus de réplication reprend et se répète comme prévu.
-
Configuration et exemples de resynchronisation des données
- Configuration des paramètres de resynchronisation des données :
-
Vous pouvez configurer la resynchronisation pour votre tâche de réplication dans DMS. Vous trouverez ci-dessous un exemple de configuration des paramètres de resynchronisation des données pour votre tâche :
"ResyncSettings": { "EnableResync": true, "ResyncSchedule": "0 0,2,4,6 * * *", // Run at 12AM, 2AM, 4AM, and 6AM daily "MaxResyncTime": 60, // Run for maximum of 60 minutes, or 1 hour "ValidationTaskId": "TASK-ID-IF-NEEDED" //Optional, used only if validation is performed as a separate Validation only task }
Exemples de modèles de planification de resynchronisation courants :
-
0 0 * * *: Courez une fois par jour à minuit. -
0 0,12 * * *: Courez deux fois par jour à minuit et à midi. -
0 0,2,4,6, * * *: Courez toutes les deux heures entre minuit et 6 heures du matin. -
0 1 * * 1: Courez chaque semaine le lundi à 1 heure du matin.
Note
Vous devez spécifier un chiffre pour chaque jour, de 0 à 6. Pour plus d'informations, consultez la section Règles relatives aux expressions Cron.
- Surveillance des opérations de resynchronisation :
-
Vous pouvez surveiller l'opération de resynchronisation à l'aide de tableaux statistiques. Voici un exemple de sortie :
{ "TableStatistics": { ... "ValidationFailedRecords": 1000, ... "ResyncRowsAttempted": 1000, "ResyncRowsSucceeded": 995, "ResyncRowsFailed": 5, "ResyncProgress": 99.5, // ratio of ResyncRowsSucceeded/ValidationFailedRecords "ResyncState": "Last resync at: 2024-03-14T06:00:00Z" } }
Pour configurer la fonction de resynchronisation des données dans AWS DMS, vous pouvez consulter différents paramètres de resynchronisation et leurs paramètres de configuration respectifs. Pour de plus amples informations, veuillez consulter Paramètres de resynchronisation des données. Pour plus d'informations sur les paramètres de journalisation de la resynchronisation des données, consultez. Paramètres de la tâche de journalisation
Validation et résolution des problèmes
- Validation :
-
Lorsque la validation des données est activée, AWS DMS crée une table des échecs de validation dans votre base de données cible avec la structure suivante :
CREATE TABLE awsdms_validation_failures_v2 ( "RESYNC_ID" bigint NOT NULL, "TASK_NAME" varchar(128) NOT NULL, "TABLE_OWNER" varchar(128) NOT NULL, "TABLE_NAME" varchar(128) NOT NULL, "FAILURE_TIME" timestamp NOT NULL, "KEY_TYPE" varchar(128) NOT NULL, "KEY" varchar(7800) NOT NULL, "FAILURE_TYPE" varchar(128) NOT NULL, "DETAILS" varchar(7000) NOT NULL, "RESYNC_RESULT" varchar(128) NULL, "RESYNC_TIME" timestamp NULL, "RESYNC_ACTION" varchar(128) NULL );Vous pouvez écrire une requête dans ce tableau pour comprendre les incohérences de données détectées et la manière dont elles sont résolues.
Lorsque la validation est activée, AWS DMS crée une table des échecs de validation dans votre base de données cible. Si vous rencontrez des problèmes, vous pouvez interroger le awsdms_control.awsdms_validation_failures_v2 tableau pour comprendre les incohérences de données détectées et comment elles sont résolues. Pour plus d'informations, consultez la section Résolution des problèmes dans Validation AWS DMS des données.
- Flux de travail commun :
-
Lors de la validation lors de la resynchronisation des données, le flux de travail standard est le suivant :
Tâches à chargement complet uniquement :
-
Toutes les tables de votre base de données terminent le processus de chargement.
-
Les incohérences sont identifiées lors du processus de validation en cours.
-
La resynchronisation des données corrige les problèmes identifiés lors du processus de validation.
-
Le processus de validation valide la rectification.
-
La tâche de migration s'est terminée avec succès.
Tâches du CDC :
-
Toutes les tables de votre base de données terminent le processus de chargement.
-
Les incohérences sont identifiées lors du processus de validation en cours.
-
Conformément à la fenêtre planifiée de resynchronisation, la tâche de réplication est interrompue pendant une brève période.
-
La resynchronisation des données corrige les problèmes identifiés lors du processus de validation.
-
Le processus de réplication reprend et se répète comme prévu.
-
Toute modification apportée à la tâche, telle que l'arrêt de la tâche de réplication pendant l'opération de resynchronisation ou le rechargement et la revalidation des tables, peut avoir un impact sur le comportement et les résultats de la tâche. Certains des changements de comportement connus sont les suivants :
Lorsque vous arrêtez la tâche de réplication alors que l'opération de resynchronisation est en cours :
-
L'opération de resynchronisation ne reprend pas automatiquement. Vous devez le redémarrer à nouveau.
-
Les opérations de resynchronisation futures ont lieu conformément au calendrier configuré.
-
Toute correction incomplète est tentée dans la fenêtre de planification de resynchronisation suivante.
Lorsque vous rechargez une table dans votre base de données :
-
L'opération de resynchronisation ignore toute table en cours de rechargement.
-
Les échecs de validation précédents pour une table qui a été rechargée sont ignorés.
-
La nouvelle validation commence une fois l'action de rechargement terminée.
Lorsque vous revalidez une table de votre base de données :
-
Toutes les statistiques relatives à votre opération de resynchronisation sont réinitialisées.
-
Les échecs de validation précédents pour une table qui a été revalidée sont ignorés.
Note
Lors de la mise à niveau ou du déplacement d'une tâche vers la version 3.6.1 ou ultérieure de DMS, les échecs du awsdms_control.awsdms_validation_failures_v1 tableau ne sont pas resynchronisés. Seules les défaillances du awsdms_validation_failures_v2 tableau sont resynchronisées. Pour resynchroniser les échecs dans une awsdms_control.awsdms_validation_failures_v2 table, vous devez recharger la tâche, recharger une ou plusieurs tables de la tâche ou revalider une ou plusieurs tables. Pour plus d'informations, consultez les liens suivants :
-
Pour recharger une tâche, consultez la référence de
StartReplicationTaskl'API. -
Pour recharger une ou plusieurs tables dans une tâche, consultez la documentation
reload-tablesde référence des commandes AWS CLI. -
Pour revalider une ou plusieurs tables, consultez l'
validate-onlyoption de lareload-tablessection de la documentation de référence des commandes AWS CLI.
.
Règles d'expression Cron
Pour configurer les opérations de resynchronisation des données lors d'une tâche de réplication, AWS DMS vous pouvez utiliser les règles d'expressions cron. Ces règles vous permettent de personnaliser les fenêtres horaires de resynchronisation et de les planifier en fonction des besoins de votre entreprise. Vous pouvez utiliser différents paramètres tels que les minutes, les heures, les jours, les mois et les jours de la semaine. Les règles d'expression cron pour chaque paramètre sont les suivantes :
- Procès-verbal :
-
-
Plage de minutes de 0 à 59.
-
Vous pouvez utiliser (
-),or/andpour spécifier la plage. Maximum de 10 éléments séparés par une virgule (,). -
Exemples :
-
2-5égal à2,3,5,5. -
1-2,3-4,5,7-10est une plage valide. -
1,2,3,4,5,6,7,8,9,10est une plage valide. -
1,2,3,4,5,6,7,8,9,10,11n'est pas une plage valide. L'opération de resynchronisation est ignorée après le 10e élément de plage.
-
-
Vous pouvez utiliser (
*). Exemple :*égal à0-59. -
Vous ne pouvez utiliser (
/) qu'en combinaison avec (-) ou (*).Exemples :
-
2-7/2est égal à2,4,6. -
*/15est égal à0,15,30,45.
-
-
- Horaires :
-
Identique à « Minutes », mais la plage valide est comprise entre
0et23.
- Jours :
-
-
Identique à « Minutes », mais la plage valide est comprise entre
1et31. -
L'utilisation de
Lest prise en charge dans la configuration de resynchronisation. Il est interprété comme le dernier jour du mois. Vous ne devez pas l'utiliser en combinaison avec une autre syntaxe.
-
- Mois :
-
Identique à « Minutes », mais la plage valide est comprise entre
1et12.
- Jours de la semaine :
-
-
Identique à « Minutes », mais la plage valide est comprise entre
0et6. -
Vous ne pouvez pas ajouter de valeur de chaîne pour le nom de la semaine.
-