Tous les produits
Search
Centre de documentation

Data Transmission Service:Two-way synchronization between PolarDB-X 2.0 instances

Dernière mise à jour :Aug 10, 2026

La synchronisation bidirectionnelle maintient deux instances PolarDB-X 2,0 synchronisées en exécutant une paire de tâches unidirectionnelles dans des directions opposées. Utilisez cette fonctionnalité pour les architectures actif-actif où les deux instances traitent simultanément des écritures.

Cette rubrique détaille la procédure complète : configurez d'abord la tâche directe, puis configurez la tâche inverse une fois que la tâche directe est en cours d'exécution.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Des instances PolarDB-X 2,0 source et destination (Standard Edition ou Enterprise Edition). Les instances utilisant le moteur de journal binaire multi-flux ne sont pas prises en charge.

  • Un espace de stockage disponible sur l'instance destination supérieur à l'espace utilisé par l'instance source.

  • Des comptes de base de données privilégiés sur les deux instances. Pour plus d'informations, consultez Gestion des comptes de base de données.

  • Le paramètre binlog_row_image défini sur full sur l'instance source. Pour plus de détails, voir Paramètres.

  • Une conservation des journaux binaires conforme à la durée requise :

    • Tâches incrémentielles uniquement : plus de 24 heures.

    • Tâches incluant la synchronisation complète des données et la synchronisation incrémentielle : au moins 7 jours. Une fois la synchronisation initiale des données terminée, vous pouvez réduire la période de conservation à plus de 24 heures.

Important

Les violations des règles de conservation des journaux binaires ne sont pas couvertes par l'accord de niveau de service (SLA). Si DTS ne peut pas lire les journaux requis, la tâche échoue ; dans les cas extrêmes, cela peut entraîner une incohérence ou une perte de données.

Fonctionnement

Une tâche de synchronisation bidirectionnelle se compose de deux tâches unidirectionnelles :

  • Tâche directe : synchronise les données de l'instance A vers l'instance B.

  • Tâche inverse : synchronise les données de l'instance B vers l'instance A.

DTS marque les enregistrements écrits par la synchronisation afin que chaque tâche ne resynchronise pas les données reçues de l'autre tâche, évitant ainsi les boucles de synchronisation.

Les deux tâches sont configurées séquentiellement : finalisez et démarrez d'abord la tâche directe, puis configurez la tâche inverse.

Le tableau ci-dessous présente les différences de configuration clés entre les deux tâches.

Paramètre Tâche directe Tâche inverse
Synchronization types Synchronisation du schéma + Synchronisation complète des données + Synchronisation incrémentielle des données Synchronisation incrémentielle des données uniquement
Synchronization topology Synchronisation bidirectionnelle Synchronisation bidirectionnelle
Exclude DDL operations Oui Oui
Processing mode of conflicting tables Vérification préalable et signalement des erreurs (recommandé) Ignoré pour les objets déjà synchronisés par la tâche directe
Source Instance A Instance B
Destination Instance B Instance A

Limitations

Base de données source

  • Les tables doivent posséder une clé primaire ou une contrainte d'unicité avec des valeurs de champ uniques. Sans cela, des enregistrements en double peuvent apparaître dans la destination.

  • Les instances PolarDB-X 2,0 en lecture seule ne peuvent pas être utilisées comme source.

  • Si vous effectuez une synchronisation au niveau des tables avec mappage de colonnes et que la tâche inclut plus de 5 000 tables, répartissez les tables sur plusieurs tâches ou passez à une synchronisation au niveau de la base de données.

  • Les tables dont les noms contiennent des lettres majuscules ne prennent en charge que la synchronisation du schéma.

  • La synchronisation des groupes de tables et des bases de données ou tables ayant la propriété Locality n'est pas prise en charge.

  • Les tables nommées avec des mots réservés (par exemple, select) ne peuvent pas être synchronisées.

  • N'exécutez pas d'opérations DDL pendant la synchronisation du schéma ou la synchronisation complète des données. DTS interroge la base de données source lors de la synchronisation complète, ce qui crée des verrous de métadonnées susceptibles de bloquer les opérations DDL.

  • Les partitions de base de données en mode DRDS au sein d'une instance PolarDB-X 2,0 ne peuvent pas être synchronisées.

Synchronisation bidirectionnelle

  • La synchronisation DDL n'est pas prise en charge. Définissez Exclude DDL operations sur Yes lors de la configuration de la tâche.

  • La synchronisation bidirectionnelle n'est pas prise en charge si l'une des instances est une instance Enterprise Edition utilisant un moteur de journal multi-flux.

  • Les deux instances doivent être en version polarx-kernel_5.4.15-16774576_xcluster-20221223 ou ultérieure. Consultez Afficher et mettre à niveau la version de l'instance.

  • N'écrivez pas de données dans l'instance destination depuis des sources autres que DTS pendant l'exécution de la synchronisation. Les écritures externes provoquent une incohérence des données.

  • Effectuez la synchronisation pendant les heures creuses. La synchronisation initiale des données consomme des ressources de lecture et d'écriture sur les deux instances et augmente la charge.

  • Après la synchronisation initiale des données, l'espace table de la destination sera plus grand que celui de la source en raison de la fragmentation causée par les opérations INSERT concurrentes.

  • DTS met régulièrement à jour la table ha_health_check dans la base de données dts_health_check pour faire avancer le décalage du journal binaire.

Clés étrangères

  • DTS synchronise les clés étrangères de la source vers la destination lors de la synchronisation du schéma.

  • DTS désactive les vérifications de contraintes et les opérations en cascade de clés étrangères au niveau de la session pendant la synchronisation complète et incrémentielle. Si des mises à jour ou suppressions en cascade s'exécutent sur la source pendant que la tâche est active, une incohérence des données peut survenir.

Récupération après échec de tâche

En cas d'échec d'une tâche, le support DTS tentera de la restaurer dans un délai de huit heures en redémarrant la tâche ou en ajustant les paramètres de la tâche DTS (et non les paramètres de la base de données). Pour la liste des paramètres pouvant être ajustés, consultez Modifier les paramètres de l'instance.

Facturation

Type de synchronisation Tarification
Synchronisation du schéma et synchronisation complète des données Gratuit
Synchronisation incrémentielle des données Payant. Consultez Présentation de la facturation.

Opérations SQL prises en charge

Type d'opération Instruction SQL
DML INSERT, UPDATE, DELETE

|


DDL

| |

Configurer la tâche directe

Étape 1 : Ouvrir la liste des tâches de synchronisation des données

Accédez à la liste des tâches de synchronisation des données dans la région de destination en utilisant l'une des méthodes suivantes.

Console DTS

  1. Connectez-vous à la console DTS.

  2. Dans le volet de navigation de gauche, cliquez sur Data Synchronization.

  3. Dans le coin supérieur gauche, sélectionnez la région où se trouve l'instance de synchronisation.

Console DMS

Remarque

Les étapes réelles peuvent varier selon le mode et la disposition de la console DMS. Pour plus d'informations, consultez Console en mode simple et Personnaliser la disposition et le style de la console DMS.

  1. Connectez-vous à la console DMS.

  2. Dans la barre de menu supérieure, choisissez Data + AI > DTS (DTS) > Data Synchronization.

  3. À droite de Data Synchronization Tasks, sélectionnez la région de l'instance de synchronisation.

Étape 2 : Créer la tâche

Cliquez sur Create Task pour ouvrir la page de configuration de la tâche.

Étape 3 : Configurer les bases de données source et destination

Avertissement

Après avoir sélectionné les instances source et destination, examinez les Limits affichées en haut de la page avant de continuer.

Catégorie Champ Valeur
N/A Task name DTS génère automatiquement un nom. Saisissez un nom descriptif pour faciliter l'identification. Les noms n'ont pas besoin d'être uniques.
Base de données source Select existing connection Sélectionnez une instance de base de données enregistrée dans la liste pour remplir automatiquement les champs ci-dessous. Dans la console DMS, ce champ est intitulé Select a DMS database instance. Si aucune instance enregistrée n'est disponible, remplissez manuellement les champs.
Database type Sélectionnez PolarDB-X 2.0.
Access method Sélectionnez Alibaba Cloud Instance.
Instance region Sélectionnez la région de l'instance source.
Replicate data across Alibaba Cloud accounts Sélectionnez No (synchronisation intra-compte).
Instance ID Sélectionnez l'ID de l'instance source.
Database account Saisissez le compte privilégié de l'instance source.
Database password Saisissez le mot de passe du compte.
Base de données destination Select existing connection Sélectionnez une instance de base de données enregistrée dans la liste pour remplir automatiquement les champs ci-dessous. Dans la console DMS, ce champ est intitulé Select a DMS database instance. Si aucune instance enregistrée n'est disponible, remplissez manuellement les champs.
Database type Sélectionnez PolarDB-X 2.0.
Access method Sélectionnez Alibaba Cloud Instance.
Instance region Sélectionnez la région de l'instance destination.
Instance ID Sélectionnez l'ID de l'instance destination.
Database account Saisissez le compte privilégié de l'instance destination.
Database password Saisissez le mot de passe du compte.

Cliquez sur Test Connectivity and Proceed.

Les serveurs DTS doivent être autorisés à se connecter aux deux instances. Ajoutez les plages d'adresses IP DTS aux paramètres de sécurité des deux bases de données, automatiquement ou manuellement. Consultez Ajouter la liste blanche d'adresses IP des serveurs DTS .

Étape 4 : Sélectionner les objets à synchroniser

Sur la page Configure Objects , configurez les paramètres suivants.

Paramètre Description
Synchronization types DTS sélectionne toujours Incremental Data Synchronization. Sélectionnez également Schema Synchronization et Full Data Synchronization pour la tâche directe. Après la pré-vérification, DTS initialise la destination avec les données complètes de la source comme référence de base pour la synchronisation incrémentielle.
Processing mode of conflicting tables Precheck and Report Errors : DTS vérifie la présence de tables portant le même nom dans la destination. Si des conflits sont détectés, la pré-vérification échoue et la tâche ne démarre pas. Pour résoudre les conflits de nommage sans supprimer la table de destination, mappez l'objet vers un nom différent. Consultez Mappage des noms d'objets de base de données, tables et colonnes. Ignore Errors and Proceed : Ignore la vérification. À utiliser avec prudence, car cela peut provoquer une incohérence des données. Lors de la synchronisation complète des données, DTS ignore les enregistrements source qui entrent en conflit avec les enregistrements de destination sur la clé primaire ou unique. Lors de la synchronisation incrémentielle, DTS écrase l'enregistrement de destination conflictuel.
Synchronization topology Sélectionnez Two-way Synchronization.
Exclude DDL operations Sélectionnez Yes. Les opérations DDL ne peuvent pas être synchronisées dans ce scénario.
Conflict resolution policy Sélectionnez une politique : TaskFailed — la tâche s'arrête et passe à l'état d'échec lorsqu'un conflit survient. Une récupération manuelle est nécessaire. Ignore — DTS ignore l'instruction conflictuelle et conserve l'enregistrement existant dans la destination. Overwrite — DTS écrase l'enregistrement de destination avec l'enregistrement source.
Source objects Cliquez sur les objets dans la zone Source Objects , puis cliquez sur l'icône de flèche pour les déplacer vers la zone Selected Objects . Sélectionnez des objets au niveau de la base de données, de la table ou de la colonne. Si vous ne sélectionnez que des tables ou des colonnes, DTS ne synchronise pas les autres types d'objets tels que les vues, les déclencheurs et les procédures stockées.
Selected objects Pour renommer un seul objet dans la destination, faites un clic droit dessus dans la zone Selected Objects . Consultez Mapper le nom d'un seul objet. Pour renommer plusieurs objets en lot, cliquez sur Batch Edit . Consultez Mapper les noms de plusieurs objets en lot. Pour filtrer les lignes, faites un clic droit sur une table et définissez une clause WHERE. Consultez Définir des conditions de filtrage. Pour sélectionner les opérations SQL à synchroniser pour un objet spécifique, faites un clic droit dessus et choisissez les opérations souhaitées. Si vous utilisez le mappage de noms d'objets, les autres objets dépendant de l'objet mappé risquent de ne pas être synchronisés.

Cliquez sur Next: Advanced Settings.

Étape 5 : Configurer les paramètres avancés

Paramètre Description
Dedicated cluster for task scheduling DTS utilise par défaut un cluster partagé. Pour une meilleure stabilité, achetez un cluster dédié. Consultez Qu'est-ce qu'un cluster dédié DTS ?.
Retry time for failed connections Si la connexion à la source ou à la destination échoue après le démarrage de la tâche, DTS effectue immédiatement une nouvelle tentative. Par défaut : 720 minutes. Plage : 10–1 440 minutes. Définissez une valeur de 30 minutes ou plus. Si la connexion est rétablie dans la fenêtre de nouvelle tentative, la tâche reprend automatiquement ; sinon, elle échoue. Si plusieurs instances DTS partagent une source ou une destination, DTS utilise la durée de nouvelle tentative la plus courte configurée parmi toutes les instances. DTS facture le temps d'exécution de la tâche pendant les nouvelles tentatives.
Retry time for other issues Si un problème autre qu'un problème de connectivité (par exemple, une erreur d'exécution DDL ou DML) survient, DTS effectue immédiatement une nouvelle tentative. Par défaut : 10 minutes. Plage : 1–1 440 minutes. Définissez une valeur supérieure à 10 minutes. Cette valeur doit être inférieure à Retry time for failed connections.
Enable throttling for full data synchronization Limitez le taux de synchronisation complète en définissant Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s). Disponible uniquement lorsque Full Data Synchronization est sélectionné. Vous pouvez également ajuster le taux pendant l'exécution de la tâche. Consultez Activer la limitation de débit pour la migration des données.
Enable throttling for incremental data synchronization Limitez le taux de synchronisation incrémentielle en définissant RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s).
Environment tag Sélectionnez un tag pour identifier l'instance, ou laissez vide.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Choisissez si DTS écrit des instructions SQL de heartbeat dans la base de données source. Yes : DTS n'écrit pas d'instructions SQL de heartbeat. L'instance peut afficher une latence de synchronisation. No : DTS écrit des instructions SQL de heartbeat. Cela peut interférer avec les opérations de la base de données source telles que les sauvegardes physiques et le clonage.
Monitoring and alerting No : Aucune alerte configurée. Yes : Configurez un seuil d'alerte et des contacts de notification. Si la tâche échoue ou si la latence de synchronisation dépasse le seuil, DTS envoie une notification. Consultez Configurer la surveillance et les alertes lors de la configuration de la tâche.

Étape 6 : Configurer la vérification des données (facultatif)

Cliquez sur Data Verification pour configurer une tâche de vérification des données. Consultez Configurer la vérification des données.

Étape 7 : Enregistrer et exécuter la pré-vérification

Pour prévisualiser les paramètres API avant l'enregistrement, placez le curseur sur Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters.

Cliquez sur Next: Save Task Settings and Precheck.

DTS exécute une pré-vérification avant le démarrage de la tâche. Si la pré-vérification échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème et relancez la pré-vérification. Si la pré-vérification renvoie des avertissements : pour les avertissements non ignorables, corrigez le problème et relancez ; pour les avertissements ignorables, cliquez sur Confirm Alert Details > Ignore > OK , puis cliquez sur Precheck Again . Ignorer les avertissements peut provoquer une incohérence des données.

Étape 8 : Acheter l'instance

  1. Lorsque le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.

  2. Sur la page Purchase , sélectionnez la méthode de facturation et la classe d'instance :

Paramètre Description
Billing method Subscription : paiement anticipé pour une durée fixe. Rentable pour les tâches de longue durée. Pay-as-you-go : facturation horaire. Adapté aux tâches de courte durée ou de test.
Resource group settings Le groupe de ressources pour l'instance. Par défaut : default resource group . Consultez Qu'est-ce que Resource Management ?.
Instance class Sélectionnez une classe en fonction de vos besoins en débit. Consultez Spécifications des canaux de synchronisation des données.
Subscription duration Apparaît uniquement pour la méthode de facturation Subscription. Options mensuelles : 1 à 9 mois. Options annuelles : 1, 2, 3 ou 5 ans.
  1. Lisez et cochez la case pour les Data Transmission Service (Pay-as-you-go) Service Terms .

  2. Cliquez sur Buy and Start , puis cliquez sur OK .

Surveillez la tâche sur la page de synchronisation des données.

Configurer la tâche inverse

Attendez que le Status de la tâche directe soit Running ; cela signifie que la synchronisation initiale des données est terminée.

  1. Localisez la tâche de synchronisation inverse dans la liste et cliquez sur Configure Task .

  2. Suivez les étapes 3 à 6 ci-dessus pour configurer la tâche inverse.

Gardez à l'esprit les contraintes suivantes pour la tâche inverse :

  • La source de la tâche inverse est la destination de la tâche directe, et la destination de la tâche inverse est la source de la tâche directe. Confirmez que les informations de l'instance — nom de la base de données, compte et mot de passe — sont correctes avant de continuer.

  • Le paramètre Instance region ne peut pas être modifié pour la tâche inverse.

  • Pour les Synchronization types , sélectionnez uniquement Incremental Data Synchronization . N'incluez pas la synchronisation du schéma ni la synchronisation complète des données.

  • Le paramètre Processing mode of conflicting tables pour la tâche inverse ignore automatiquement les tables que la tâche directe a déjà synchronisées vers la destination.

  • La tâche inverse ne peut pas synchroniser les objets listés dans les Selected objects de la tâche directe.

  • N'utilisez pas la fonctionnalité de mappage de noms d'objets pour la tâche inverse. Le mappage peut provoquer une incohérence des données.

Lorsque le Success Rate atteint 100% , cliquez sur Back .

Vérifier

Attendez que le Status des deux tâches de synchronisation soit Running . La configuration de la synchronisation bidirectionnelle des données est terminée.

Étapes suivantes