Lors de la réplication incrémentielle, l'option Current Offset indique l'horodatage des dernières données écrites dans l'instance de destination. Si une tâche ignore ou retraite les modifications survenues durant une période spécifique, vous pouvez modifier ce décalage dans le module Incremental Write d'une instance de synchronisation ou de migration Data Transmission Service (DTS).
Quand modifier le décalage
| Situation | Direction | Effet |
|---|---|---|
| Réappliquer les modifications de données d'une période passée | Déplacer le décalage vers l'arrière (date antérieure) | DTS réexécute les modifications depuis cette date jusqu'au décalage actuel |
| Ignorer les modifications de données pour une période donnée | Déplacer le décalage vers l'avant (date ultérieure) | DTS ignore les modifications pour cette période |
| Reprendre une tâche ayant échoué dont le décalage n'existe plus | Déplacer le décalage vers l'avant | DTS reprend à partir du nouveau décalage |
Prérequis
Avant de commencer, assurez-vous que :
Vous disposez d'une instance de synchronisation ou de migration de données avec une tâche incrémentielle. Pour configurer la synchronisation, consultez la rubrique Présentation des solutions de synchronisation de données. Pour configurer la migration, consultez la rubrique Présentation des solutions de migration de données
L'instance est entrée dans la phase Incremental Write
Le Status de l'instance n'est pas défini sur Modifying Objects
Limites
Les instances dont la source et la destination sont toutes deux Tair/Redis ne prennent pas en charge la modification du décalage.
Vous ne pouvez pas modifier le décalage d'une instance de synchronisation de données si son Status est défini sur Modifying Objects.
Pour les instances distribuées, la modification s'applique uniquement à la sous-tâche actuelle, et non à toutes les sous-tâches.
La plage sélectionnable pour le nouveau décalage correspond par défaut aux sept derniers jours. Cette plage peut varier en fonction du temps d'exécution du module Incremental Write et de la latence de l'instance.
Pour une tâche incrémentielle, le nouveau décalage ne peut pas être antérieur à l'heure de démarrage initial de la tâche. Même si la base de données source, telle que PolarDB for MySQL, conserve toujours les journaux binaires pour cette période, le système rejette tout décalage antérieur à cette heure. Par défaut, la synchronisation incrémentielle commence à partir du décalage obtenu lors de la création de la tâche.
Impacts potentiels
La modification du décalage peut entraîner une perte de données ou des incohérences. Examinez les impacts suivants avant de poursuivre.
Décalage vers l'avant (postérieur au décalage actuel) : les modifications de données survenues pendant la période ignorée ne sont pas écrites dans la destination. Cela peut provoquer une perte de données ou des incohérences.
Décalage vers l'arrière (antérieur au décalage actuel) : les modifications de données de cette période sont réexécutées sur la destination. La réexécution des opérations INSERT et DDL peut engendrer des conflits de duplication de données.
Si l'instance est en pause, elle reprend automatiquement après la modification du décalage.
-
Si vous modifiez le décalage pour le ramener à une date antérieure à l'ajout de tables via l'option Reselect Objects, les données de ces nouvelles tables comprises entre le nouvel horodatage du décalage et le moment de leur ajout ne sont pas synchronisées. Exemple : La tâche Incremental Data Collection traite les données de l'instant A à l'instant B. À l'instant C, vous utilisez l'option Reselect Objects pour ajouter la table
table1. Si vous ramenez ensuite le décalage à l'instant D (antérieur à C), les données detable1comprises entre les instants D et C sont perdues.
Modifier le décalage
Étape 1 : Accéder à la liste des tâches
Depuis la console DTS
Connectez-vous à la console DTS.
Dans le volet de navigation, cliquez sur Data Synchronization ou Data Migration.
(Facultatif) Dans le coin supérieur gauche, sélectionnez la région où se trouve l'instance.
Depuis la console DMS
Les étapes réelles peuvent varier selon la disposition de DMS. Pour plus de détails, consultez les rubriques Console en mode simple et Personnaliser la disposition et le style de la console DMS.
Connectez-vous au service Data Management (DMS).
Dans la barre de menu supérieure, choisissez Data + AI > Data Transmission (DTS) > Data Synchronization ou Data + AI > Data Transmission (DTS) > Data Migration.
(Facultatif) À droite de l'option Data Synchronization Tasks ou Data Migration Tasks, sélectionnez la région où se trouve l'instance.
Étape 2 : Mettre la tâche en pause
Dans la colonne Actions correspondant à l'instance, cliquez sur
et sélectionnez Pause Task.
Étape 3 : Ouvrir le module Incremental Write
Cliquez sur l'ID de l'instance pour ouvrir la page des détails de l'instance.
Dans le volet de navigation, cliquez sur Task Management.
Dans la section Progress, cliquez sur le module Incremental Write.
Étape 4 : Définir le nouveau décalage
Sous l'onglet Basic Information, cliquez sur Change Offset à côté de l'option Current Offset.
Lisez les Precautions et cliquez sur Next.
Dans la boîte de dialogue Modify Incremental Write Offset, cliquez sur le champ Offset et sélectionnez une date et une heure dans la plage disponible.
Cliquez sur OK.
Dans la boîte de dialogue Note, cliquez sur OK.
Étape 5 : Vérifier le résultat
Une fois l'initialisation de l'instance terminée, vérifiez l'option Current Offset sous l'onglet Basic Information du module Incremental Write.
Cliquez sur
pour actualiser la page et suivre la progression de l'initialisation ainsi que l'option Current Offset.Après la mise à jour de l'option Current Offset , exécutez une validation des données pour confirmer qu'elles correspondent à vos attentes. Consultez la rubrique Configurer la validation des données.