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 identifiées par 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, des paramètres de connexion, des mappages de tables et des transformations.
La fonction de resynchronisation des données fonctionne en lisant les échecs de validation dans 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 incompatibilité est détectée, les données actuelles sont extraites de la source à l'aide de la clé primaire stockée dans l'enregistrement des défaillances, et elles sont appliquées à la cible tout en respectant les transformations configurées. Pour de plus amples informations, veuillez consulter awsdms_validation_failures_v2table de commande.
Le comportement varie en fonction de votre type de migration. Pour les full-load-only tâches, 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 que les correctifs sont appliqués.
Pendant les opérations de resynchronisation du CDC :
-
La réplication et la validation sont temporairement interrompues.
-
La resynchronisation des données permet de traiter les échecs de validation existants.
-
Reprise normale de la réplication et de la validation.
-
Le processus se répète en fonction du planning 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 faisant l'objet d'une réplication continue. Les tâches à chargement complet uniquement ne nécessitent pas ces paramètres.
-
Limites
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 comporter des clés primaires. La validation ne prend pas en charge les tables dépourvues de clé primaire ou de clé unique. Toutes les tables qui ne possèdent pas de clé primaire ou unique valide sont suspendues 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 les tâches de validation uniquement car elles ne répliquent aucune donnée. Vous pouvez activer la resynchronisation sur la tâche de réplication parent en fournissant uniquement la validation.
taskID
Pour plus d'informations, consultez la section Tâches de validation uniquement. -
Si un
ControlSchema
paramètre est configuré pour la tâche Validation uniquement 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 que la resynchronisation des données puisse détecter les échecs de validation corrects. -
Vous devez configurer les paramètres de planification et de durée pour les tâches du 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 Dépannage sous AWS DMS Validation des données.
Planification et calendrier
Pour les tâches avec CDC, vous devez configurer quand et pendant combien de temps la resynchronisation des données s'effectue. 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 le moment où 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 d'utilisation.
Il est recommandé de planifier les opérations de resynchronisation en dehors des heures de pointe 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 s'exécuter 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 afin de 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 résout les problèmes de cohérence des données :
- Scénario 1 : tâche de chargement complet : exécution de la resynchronisation à l'aide de la même tâche DMS
-
Dans le cadre de votre tâche de migration à chargement complet 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écuter la resynchronisation à l'aide de la même tâche DMS
-
Dans le cadre de 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 uniquement pour la validation.
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 de validation uniquement. Seul l'ID de tâche de validation est ajouté à la fin de l'ARN. Exemple d'ARN :
arn:aws:dms:us-west-2:123456789012:task:6DG4CLGJ5JSJR67CFD7UDXFY7KV6CYGRICL6KWI
et 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 certaines 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, la resynchronisation 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 de bureau 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 une 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 afin de 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 le 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_v2
table 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 est dans une phase de réplication en cours, é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 dans le cadre 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 conformément au planning.
-
Configuration et exemples de resynchronisation des données
- Configuration des paramètres de resynchronisation des données :
-
Vous pouvez configurer la resynchronisation de votre tâche de réplication dans DMS. Vous trouverez ci-dessous un exemple de configuration des paramètres de resynchronisation des données dans 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 courants de planification de resynchronisation :
-
0 0 * * *
: Courez une fois par jour à minuit. -
0 0,12 * * *
: Courez deux fois par jour à minuit et à midi. -
0 0,2,4,6, * * *
: Fonctionne toutes les deux heures entre minuit et 6 heures du matin. -
0 1 * * 1
: Ouvert 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 des statistiques des tables. 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 fonctionnalité de resynchronisation des données dans AWS DMS, vous pouvez consulter les 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. En cas de problème, vous pouvez interroger le awsdms_control.awsdms_validation_failures_v2
tableau pour comprendre les incohérences de données détectées et la manière dont 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 dans le cadre du processus de validation en cours.
-
La resynchronisation des données résout les problèmes identifiés lors du processus de validation.
-
Le processus de validation valide la rectification.
-
La tâche de migration 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 dans le cadre 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 conformément au planning.
-
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 futures opérations de resynchronisation 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 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 de votre opération de resynchronisation sont réinitialisées.
-
Les échecs de validation précédents pour une table 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 défaillances du awsdms_control.awsdms_validation_failures_v1
tableau ne sont pas resynchronisées. Seuls les échecs du awsdms_validation_failures_v2
tableau sont resynchronisés. 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
StartReplicationTask
l'API. -
Pour recharger une ou plusieurs tables dans une tâche, consultez la documentation
reload-tables
de référence des commandes AWS CLI. -
Pour revalider une ou plusieurs tables, consultez l'
validate-only
option dans lareload-tables
section 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 des 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 comprise entre 0 et 59.
-
Vous pouvez utiliser (
-
),or
/and
pour spécifier la plage. Maximum de 10 éléments séparés par une virgule (,
). -
Exemples :
-
2-5
est égal à2,3,5,5
. -
1-2,3-4,5,7-10
est une plage valide. -
1,2,3,4,5,6,7,8,9,10
est une plage valide. -
1,2,3,4,5,6,7,8,9,10,11
n'est pas une plage valide. L'opération de resynchronisation est ignorée après le dixième élément de la gamme.
-
-
Vous pouvez utiliser (
*
). Exemple :*
égal à0-59
. -
Vous ne pouvez utiliser (
/
) qu'en combinaison avec (-
) ou (*
).Exemples :
-
2-7/2
est égal à2,4,6
. -
*/15
est égal à0,15,30,45
.
-
-
- Heures :
-
Identique à « Minutes », mais la plage valide est comprise entre
0
et23
.
- Jours :
-
-
Identique à « Minutes », mais la plage valide est comprise entre
1
et31
. -
L'utilisation de
L
est 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
1
et12
.
- Jours de la semaine :
-
-
Identique à « Minutes », mais la plage valide est comprise entre
0
et6
. -
Vous ne pouvez pas ajouter de valeur de chaîne pour le nom de la semaine.
-