Tous les produits
Search
Centre de documentation

Data Transmission Service:FAQ sur la synchronisation des données

Dernière mise à jour :Sep 23, 2026
  • Q : Quelles instances de base de données DTS prend-il en charge pour la synchronisation ?

    R : DTS permet la synchronisation des données entre diverses sources, telles que les systèmes de gestion de bases de données relationnelles (SGBDR), les bases de données NoSQL et les bases de données analytiques en ligne (OLAP). Pour connaître les instances de base de données prises en charge, reportez-vous à la rubrique Scénarios de synchronisation des données.

  • Q : Comment fonctionne la synchronisation des données ?

    R : Pour plus d'informations sur le fonctionnement de la synchronisation des données, consultez la section Architecture du produit et fonctionnement des fonctionnalités.

  • Q : Comment la latence de synchronisation est-elle calculée ?

    R : La latence de synchronisation correspond à la différence entre l'horodatage des dernières données synchronisées dans la base de données de destination et l'horodatage actuel de la base de données source. Elle est exprimée en millisecondes. Dans des conditions normales, la latence reste inférieure à 1 000 millisecondes.

  • Q : Puis-je modifier les objets à synchroniser dans une tâche de synchronisation des données ?

    R : Oui. Pour savoir comment modifier les objets à synchroniser, consultez les rubriques Ajouter un objet de synchronisation et Supprimer un objet de synchronisation.

  • Q : Puis-je ajouter de nouvelles tables à une tâche de synchronisation des données ?

    R : Oui. Pour apprendre à ajouter de nouvelles tables, consultez la rubrique Ajouter un objet de synchronisation.

  • Q : Comment modifier les objets à synchroniser, tels que les tables et les colonnes, dans une tâche de synchronisation en cours d'exécution ?

    R : Une fois la phase de synchronisation complète des données terminée et la tâche entrée dans la phase de synchronisation incrémentielle, vous pouvez modifier les objets à synchroniser. Pour savoir comment procéder, consultez les rubriques Ajouter un objet de synchronisation et Supprimer un objet de synchronisation.

  • Q : Si je suspend une tâche de synchronisation et que je la redémarre après un certain temps, une incohérence des données surviendra-t-elle ?

    R : Si la base de données source est modifiée pendant la suspension de la tâche, des incohérences peuvent apparaître entre les bases de données source et de destination. Après le redémarrage de la tâche et la synchronisation des données incrémentielles vers la destination, les données de la base de destination redeviennent cohérentes avec celles de la source.

  • Q : Si je supprime des données de la base de données source d'une tâche de synchronisation incrémentielle, les données synchronisées dans la base de destination seront-elles également supprimées ?

    R : Si l'opération delete n'est pas sélectionnée parmi les opérations DML à synchroniser dans la tâche de synchronisation incrémentielle, les données de la base de destination ne sont pas supprimées. Dans le cas contraire, les données synchronisées dans la base de destination sont supprimées.

  • Q : Lors d'une synchronisation Redis vers Redis, les données de l'instance Redis de destination sont-elles écrasées ?

    R : Les données ayant la même clé sont écrasées. DTS vérifie la destination lors de la phase de précontrôle. Si la destination n'est pas vide, une erreur est signalée.

  • Q : Une tâche de synchronisation permet-elle de filtrer certaines colonnes ou données spécifiques ?

    R : Oui. Vous pouvez utiliser la fonctionnalité de mappage pour exclure les colonnes qui ne doivent pas être synchronisées et spécifier des conditions SQL WHERE afin de filtrer les données à synchroniser. Pour plus d'informations, consultez les rubriques Synchroniser ou migrer des colonnes spécifiques et Filtrer les données d'une tâche avec une condition SQL.

  • Q : Puis-je convertir une tâche de synchronisation en tâche de migration ?

    R : Non. Les différents types de tâches ne peuvent pas être convertis les uns en les autres.

  • Q : Puis-je synchroniser uniquement les données sans synchroniser le schéma ?

    R : Oui. Lors de la configuration de la tâche de synchronisation, ne sélectionnez pas Schema Synchronization.

  • Q : Quelles sont les causes possibles d'incohérence des données entre la source et la destination d'une instance de synchronisation des données ?

    Les causes possibles d'incohérence des données sont les suivantes :

    1. Lors de la configuration de la tâche, vous n'avez pas vidé la destination et celle-ci contenait déjà des données.

    2. Lors de la configuration de la tâche, vous avez sélectionné uniquement le module de synchronisation incrémentielle et non le module de synchronisation complète.

    3. Lors de la configuration de la tâche, vous avez sélectionné uniquement le module de synchronisation complète et non le module de synchronisation incrémentielle, et les données source ont changé après la fin de la tâche.

    4. Des données autres que celles écrites par la tâche DTS ont été insérées dans la destination.

    5. Les écritures incrémentielles subissent un retard et toutes les données incrémentielles n'ont pas encore été écrites dans la destination.

  • Q : Puis-je modifier le nom de la base de données source dans la base de données de destination lors d'une tâche de synchronisation des données ?

    R : Oui. Pour savoir comment modifier le nom de la base de données source dans la base de destination, consultez la rubrique Renommer les objets synchronisés dans l'instance de destination.

  • Q : DTS prend-il en charge la synchronisation en temps réel des opérations DML ou DDL ?

    Oui. Pour la synchronisation des données entre bases de données relationnelles, les opérations DML prises en charge sont INSERT, UPDATE et DELETE, tandis que les opérations DDL prises en charge sont CREATE, DROP, ALTER, RENAME et TRUNCATE.

    Remarque

    Les opérations DML et DDL prises en charge varient selon le scénario. Dans la rubrique Scénarios de synchronisation des données, sélectionnez le lien de synchronisation correspondant à votre scénario métier et consultez les opérations DML et DDL prises en charge dans le guide de configuration spécifique à ce lien.

  • Q : Une instance en lecture seule peut-elle servir d'instance source pour une tâche de synchronisation ?

    Une tâche de synchronisation inclut par défaut la synchronisation incrémentielle des données. Par conséquent, deux scénarios s'appliquent :

    • Si l'instance est une instance en lecture seule qui enregistre les journaux de transactions (par exemple, ApsaraDB RDS for MySQL 5.7 ou 8,0), elle peut servir d'instance source.

    • Si l'instance est une instance en lecture seule qui n'enregistre pas les journaux de transactions (par exemple, ApsaraDB RDS for MySQL 5.6), elle ne peut pas servir d'instance source.

  • Q : DTS prend-il en charge la synchronisation des données pour les bases de données et tables fragmentées (sharding) ?

    R : Oui. Par exemple, vous pouvez synchroniser des bases de données et tables fragmentées depuis MySQL ou PolarDB for MySQL vers AnalyticDB for MySQL afin de fusionner plusieurs tables.

  • Q : Pourquoi le volume de données dans l'instance de destination est-il inférieur à celui de l'instance source après la fin de la tâche de synchronisation ?

    R : Si des données ont été filtrées pendant la synchronisation ou si les tables de l'instance source contiennent de nombreux fragments, le volume de données dans l'instance de destination peut être inférieur à celui de l'instance source une fois la migration terminée.

  • Q : Les tâches de synchronisation des données inter-comptes prennent-elles en charge la synchronisation bidirectionnelle ?

    R : Actuellement, les tâches de synchronisation bidirectionnelle inter-comptes sont prises en charge uniquement entre les instances ApsaraDB RDS for MySQL, entre les clusters PolarDB for MySQL, entre les instances Tair (Enterprise Edition), entre les instances ApsaraDB for MongoDB (architecture de jeu de réplicas) et entre les instances ApsaraDB for MongoDB (architecture de cluster fragmenté).

  • Q : DTS prend-il en charge les tâches de synchronisation bidirectionnelle transfrontalière ?

    R : Non.

  • Q : Pourquoi un enregistrement ajouté à une base de données dans une tâche de synchronisation bidirectionnelle n'apparaît-il pas dans l'autre base de données ?

    R : La tâche inverse n'a peut-être pas été configurée.

  • Q : Pourquoi la progression d'une tâche de synchronisation incrémentielle n'atteint-elle jamais 100 % ?

    R : La synchronisation incrémentielle DTS réplique continuellement les modifications de la source vers la destination en temps réel et ne se termine pas d'elle-même. Il n'existe donc pas d'état d'achèvement à 100 %. Si vous n'avez plus besoin de la synchronisation en temps réel, mettez fin à la tâche dans la console DTS.

  • Q : Pourquoi la tâche de synchronisation incrémentielle échoue-t-elle à synchroniser les données ?

    R : Si seule la synchronisation incrémentielle est configurée pour l'instance DTS, celle-ci synchronise uniquement les données incrémentielles générées après le démarrage de la tâche. Les données existantes avant le démarrage de la tâche ne sont pas synchronisées vers la base de données de destination. Pour garantir la cohérence des données, nous vous recommandons de sélectionner Incremental Data Synchronization, Schema Synchronization et Full Data Synchronization lors de la configuration de la tâche.

  • Q : La synchronisation complète des données depuis une base de données RDS affecte-t-elle les performances de la base de données source RDS ?

    Oui. Les performances de requête de la base de données source sont affectées. Vous pouvez utiliser l'une des trois méthodes suivantes pour réduire l'impact de la tâche DTS sur la base de données source :

    1. Mettez à niveau les spécifications de l'instance de base de données source.

    2. Suspendez la tâche DTS et redémarrez-la lorsque la charge sur la base de données source est faible.

    3. Réduisez le débit de la tâche DTS. Consultez la rubrique Ajuster le débit de migration complète.

  • Q : DTS prend-il en charge la synchronisation de MySQL vers ClickHouse ?

    R : La fonctionnalité de synchronisation des données d'une base de données MySQL vers un cluster ClickHouse dans DTS a été interrompue. Les utilisateurs ayant déjà souscrit à cette fonctionnalité ne sont pas concernés. Pour souscrire à cette fonctionnalité, reportez-vous à la documentation du produit ApsaraDB for ClickHouse et consultez la rubrique Synchroniser les données depuis ApsaraDB RDS for MySQL pour configurer la synchronisation de MySQL vers ClickHouse.

  • Q : Pourquoi aucune latence n'est-elle affichée pour une instance de synchronisation dont la base de données source est PolarDB-X 1,0 ?

    R : Une instance dont la base de données source est PolarDB-X 1,0 constitue une tâche distribuée, mais les métriques surveillées par DTS existent uniquement au niveau des sous-tâches. Par conséquent, aucune information de latence n'est affichée pour les instances dont la source est PolarDB-X 1,0. Pour afficher les informations de latence, cliquez sur l'ID de l'instance et accédez à Task Management > Subtask Details pour l'instance concernée.

  • Q : Pourquoi une tâche de fusion multi-tables signale-t-elle l'erreur DTS-071001 ?

    R : Cela peut être dû à l'exécution d'une opération DDL en ligne sur la base de données source pendant l'exécution de la tâche de fusion multi-tables, ce qui a modifié le schéma de la table source sans que les changements correspondants n'aient été appliqués manuellement à la base de données de destination.

  • Q : Que faire si l'ajout d'une liste d'autorisation échoue lors de la configuration d'une tâche dans l'ancienne console ?

    R : Configurez la tâche dans la nouvelle console.

  • Q : Que faire si une tâche de synchronisation des données DTS échoue en raison d'une opération DDL effectuée sur la base de données source ?

    R : Exécutez manuellement l'opération DDL sur la destination en vous basant sur l'opération DDL effectuée sur la source, puis redémarrez la tâche. Pendant la synchronisation des données, n'utilisez pas d'outils tels que pt-online-schema-change pour effectuer des modifications DDL en ligne sur les objets à synchroniser dans la base de données source. Sinon, la synchronisation échouera. Si aucune donnée autre que celles écrites par DTS n'est insérée dans la base de données de destination, vous pouvez utiliser Data Management (DMS) pour effectuer des modifications DDL en ligne, ou bien modifier les objets à synchroniser pour supprimer la table affectée par l'opération DDL. Pour la procédure de suppression de la table, consultez la rubrique Supprimer un objet de synchronisation.

  • Q : Que faire si une tâche de synchronisation des données DTS échoue en raison d'une opération DDL effectuée sur la base de données de destination ?

    Si une base de données ou une table de la destination est supprimée pendant la synchronisation incrémentielle par DTS et que la tâche devient anormale, vous pouvez utiliser l'une des deux solutions suivantes pour récupérer la tâche :

    • Solution 1 : Reconfigurez la tâche et ne sélectionnez pas la base de données ou la table ayant provoqué l'échec de la tâche comme objet à synchroniser.

    • Solution 2 : Modifiez les objets à synchroniser et supprimez la base de données ou la table ayant provoqué l'échec de la tâche. Pour la procédure, consultez la rubrique Supprimer un objet de synchronisation.

  • Q : Une tâche de synchronisation peut-elle être récupérée après sa libération ? La cohérence des données peut-elle être garantie en reconfigurant la tâche ?

    R : Une tâche de synchronisation libérée ne peut pas être récupérée. Lorsque vous reconfigurez la tâche, si vous ne sélectionnez pas Full Data Synchronization, les données ajoutées entre la libération de la tâche et le démarrage de la nouvelle tâche ne peuvent pas être synchronisées vers la base de données de destination, et la cohérence des données ne peut pas être garantie. Si votre activité exige une précision stricte des données, vous pouvez supprimer les données de la base de données de destination, puis reconfigurer la tâche de synchronisation en sélectionnant à la fois Schema Synchronization et Full Data Synchronization dans la section Task Stages (Incremental Data Synchronization est sélectionné par défaut).

  • Q : Que faire si une tâche de synchronisation complète DTS n'affiche aucune progression pendant une longue période ?

    R : Si les tables à synchroniser ne possèdent pas de clés primaires, la synchronisation complète est très lente. Nous vous recommandons d'ajouter des clés primaires aux tables de la base de données source avant de les synchroniser.

  • Q : Lors de la synchronisation de tables portant le même nom, les données de la table source peuvent-elles être transférées uniquement si elles n'existent pas dans la table de destination ?

    R : Oui. Lors de la configuration de la tâche, définissez Processing Mode of Conflicting Tables sur Ignore Errors and Proceed. Si les schémas sont cohérents, lors de la synchronisation complète, lorsque la destination rencontre un enregistrement dont la valeur de clé primaire est identique à celle de la source, l'enregistrement de la source n'est pas synchronisé vers la destination.

  • Q : Comment configurer une tâche de synchronisation inter-comptes ?

    R : Vous devez d'abord déterminer les Scénarios pour les tâches inter-comptes, puis utiliser le compte Alibaba Cloud propriétaire de l'instance de base de données pour Configurer l'autorisation RAM pour les tâches DTS inter-comptes, et enfin Configurer une tâche DTS inter-comptes.

  • Q : Que faire si je ne peux pas sélectionner une instance DMS LogicDB ?

    R : Assurez-vous d'avoir sélectionné la région correcte à laquelle l'instance appartient. Si vous ne pouvez toujours pas sélectionner l'instance, il se peut qu'une seule instance soit disponible. Continuez à configurer les autres paramètres.

  • Q : Une tâche de synchronisation utilisant SQL Server comme source prend-elle en charge la synchronisation des fonctions ?

    R : Non. Si des tables sont sélectionnées comme granularité des objets à synchroniser, d'autres objets tels que les vues, les déclencheurs et les procédures stockées ne sont pas synchronisés vers la base de données de destination.

  • Q : Que faire si une tâche de synchronisation des données signale une erreur ?

    R : En vous basant sur le message d'erreur, consultez la solution dans la rubrique Présentation des erreurs courantes.

  • Q : Comment activer la fusion des points chauds pour une tâche de synchronisation ?

    R : Reportez-vous à la rubrique Modifier les valeurs des paramètres pour changer la valeur de trans.hot.merge.enable en true.

  • Q : Comment effectuer la synchronisation lorsque la base de données source contient des déclencheurs ?

    R : Lorsqu'une base de données entière est sélectionnée comme objet à synchroniser et qu'un déclencheur (TRIGGER) de la base de données met à jour une table de cette même base, des incohérences de données peuvent survenir entre les bases de données source et de destination. Pour la procédure de synchronisation, consultez la rubrique Configurer des tâches pour les bases de données source contenant des déclencheurs.

  • Q : DTS prend-il en charge la synchronisation de la base de données sys et des bases de données système ?

    R : Non.

  • Q : DTS prend-il en charge la synchronisation des bases de données admin et local de MongoDB ?

    R : Non. DTS ne prend pas en charge les bases de données admin et local de MongoDB en tant que base de données source ou de destination.

  • Q : Quand la tâche inverse d'une tâche de synchronisation bidirectionnelle peut-elle être configurée ?

    R : La tâche inverse d'une tâche de synchronisation bidirectionnelle ne peut être configurée qu'une fois que la tâche incrémentielle directe ne présente plus de latence.

  • Q : Lorsque PolarDB-X 1,0 est la source d'une tâche de synchronisation, la source PolarDB-X 1,0 prend-elle en charge la mise à l'échelle des nœuds ?

    R : Non. Si la source PolarDB-X 1,0 effectue une mise à l'échelle des nœuds (ajout ou suppression), vous devez reconfigurer la tâche.

  • Q : DTS peut-il garantir l'unicité des données synchronisées vers Kafka ?

    R : Non. Étant donné que les données sont ajoutées à Kafka, des doublons peuvent survenir lors du redémarrage de la tâche DTS ou lors de l'extraction multiple des journaux source. DTS garantit l'idempotence des données : les données sont ordonnées et la dernière valeur des données en double est placée à la fin.

  • Q : La synchronisation des données DTS prend-elle en charge la synchronisation depuis ApsaraDB RDS for MySQL vers d'autres destinations ?

    R : Oui. Pour la procédure de configuration, consultez la rubrique Synchroniser les données depuis ApsaraDB RDS for MySQL vers AnalyticDB for MySQL 3.0.

  • Q : Pourquoi la synchronisation complète n'est-elle pas affichée pour une tâche de synchronisation entre instances Redis ?

    R : La synchronisation entre instances Redis prend en charge à la fois la synchronisation complète des données et la synchronisation incrémentielle des données. Les deux phases sont combinées et affichées sous la forme Incremental Data Synchronization.

  • Q : Puis-je ignorer la synchronisation complète ?

    R : Oui. Après avoir ignoré la synchronisation complète, la synchronisation incrémentielle continue, mais des erreurs peuvent survenir. Nous vous recommandons de ne pas ignorer la synchronisation complète.

  • Q : DTS prend-il en charge la synchronisation automatique planifiée ?

    R : DTS ne prend pas en charge le démarrage planifié des tâches de synchronisation des données pour le moment.

  • Q : L'espace fragmenté dans les tables est-il également synchronisé lors de la synchronisation ?

    R : Non.

  • Q : Quelles sont les informations à connaître lors de la synchronisation des données de MySQL 8.0 vers MySQL 5.6 ?

    R : Vous devez créer les bases de données dans MySQL 5.6 avant d'effectuer la synchronisation. Nous vous recommandons d'utiliser la même version pour les bases de données source et de destination, ou de synchroniser d'une version inférieure vers une version supérieure afin de garantir la compatibilité. La synchronisation d'une version supérieure vers une version inférieure peut entraîner des problèmes de compatibilité de base de données.

  • Q : Puis-je synchroniser les comptes de la base de données source vers la base de données de destination ?

    R : Actuellement, seules les tâches de synchronisation entre les instances ApsaraDB RDS for MySQL prennent en charge la synchronisation des comptes. Les autres tâches de synchronisation ne prennent pas en charge cette fonctionnalité.

  • Q : Puis-je configurer des tâches de synchronisation bidirectionnelle inter-comptes ?

    Actuellement, les tâches de synchronisation bidirectionnelle inter-comptes sont prises en charge uniquement entre les instances ApsaraDB RDS for MySQL, entre les clusters PolarDB for MySQL, entre les instances Tair (Enterprise Edition), entre les instances ApsaraDB for MongoDB (architecture de jeu de réplicas) et entre les instances ApsaraDB for MongoDB (architecture de cluster fragmenté).

    Remarque

    Pour les tâches qui ne disposent pas de l'option de configuration Replicate Data Across Alibaba Cloud Accounts, vous pouvez essayer d'utiliser Cloud Enterprise Network (CEN) pour mettre en œuvre des tâches de synchronisation bidirectionnelle inter-comptes. Pour plus d'informations, consultez la rubrique Accéder aux bases de données entre différents comptes ou régions.

  • Q : Comment configurer les paramètres lorsque ApsaraMQ for Kafka est la destination ?

    R : Configurez les paramètres en fonction de votre scénario réel. Pour les méthodes de configuration de certains paramètres spéciaux, consultez la rubrique Configurer les paramètres de l'instance Kafka.

  • Q : Combien d'instances de synchronisation de données puis-je essayer gratuitement ?

    R : Vous pouvez essayer une instance de synchronisation gratuitement pendant une période de trois mois. Pour plus d'informations, consultez la page Essai gratuit Alibaba Cloud.

  • Q : Comment résoudre l'erreur « ERR invalid DB index » lors de la synchronisation ou de la migration de données Redis avec DTS ?

    Cause : L'erreur ERR invalid DB index se produit lorsque la base de données de destination exécute l'opération SELECT DB. Cela est généralement dû à un nombre insuffisant de databases dans la base de données de destination. Si la base de données de destination utilise un proxy, vérifiez si le proxy peut supprimer la limite sur le nombre de databases.

    Solution : Modifiez la configuration databases de la base de données de destination. Nous vous recommandons d'augmenter la valeur pour qu'elle corresponde à celle de la base de données source, puis de redémarrer la tâche DTS. La commande permettant d'interroger la configuration databases de la base de données de destination est la suivante :

    CONFIG GET databases;
  • Q : Comment résoudre l'erreur « IDENTIFIER CLUSTERED » lors de la synchronisation ou de la migration de données de SQL Server vers AnalyticDB for PostgreSQL ?

    R :

    Cause : Lors de la synchronisation ou de la migration des données SQL Server vers AnalyticDB for PostgreSQL, la tâche ne peut pas se poursuivre car la commande CREATE CLUSTERED INDEX n'est pas prise en charge.

    Solution : Après avoir confirmé qu'aucune autre commande DDL n'existe dans la période de latence, Modifiez les paramètres de l'instance en définissant sink.ignore.failed.ddl sur true (pour filtrer l'exécution de toutes les instructions DDL). Une fois que le point de contrôle de la synchronisation incrémentielle ou de la migration a avancé, rétablissez la valeur de sink.ignore.failed.ddl sur false.

  • Q : Dans une tâche de synchronisation ou de migration Redis, l'extension du délai d'expiration des clés dans la base de données de destination a-t-elle un effet réel ?

    R :

    Pour éviter l'expiration des clés lors de la synchronisation complète des données, vous pouvez étendre le délai d'expiration des clés dans la base de données de destination au sein de la tâche. Pour les tâches DTS qui incluent une partie de synchronisation ou de migration incrémentielle, si les clés de la base de données source expirent et sont supprimées, les clés correspondantes dans la base de données de destination sont également libérées.

  • Q : Après l'extension du délai d'expiration des clés dans la base de données de destination, si une clé de la base de données source expire, la clé correspondante dans la base de données de destination est-elle libérée immédiatement ?

    R :

    Les clés de la base de données de destination ne sont pas nécessairement libérées immédiatement à leur expiration. Une clé de la base de données de destination est libérée immédiatement uniquement lorsque la clé correspondante dans la base de données source expire et est nettoyée.

    Par exemple, si une clé de la base de données source est configurée pour expirer dans 5 secondes et que le délai d'expiration de la clé correspondante dans la base de données de destination est étendu à 30 secondes, la clé de destination est libérée immédiatement lorsque la clé source expire et est automatiquement nettoyée après 5 secondes. Lorsqu'une clé de la base de données source expire et est automatiquement nettoyée, le système ajoute une opération de suppression au fichier AOF. La requête est synchronisée vers la base de données de destination et y est exécutée.

  • Q : Comment résoudre l'erreur « column_name[xxx], the length of input string is too long than vec schema » lors de la synchronisation de données vers SelectDB avec DTS ?

    • Cause : La taille incrémentielle de la colonne xxx à la source a dépassé la limite de longueur du type de colonne xxx à la destination.

    • Solution : Si la colonne est de type STRING, vous pouvez résoudre le problème en augmentant le paramètre string_type_length_soft_limit_bytes dans la console SelectDB. Vous devez définir une valeur supérieure à la longueur réelle (7 241 898).

  • Q : Comment résoudre l'erreur « column(xxx) values is null while columns is not nullable. » lors de la synchronisation de données vers SelectDB avec DTS ?

    • Cause : La colonne xxx à la destination est NOT NULL, mais des valeurs NULL y sont écrites.

    • Remarque

      Scénario courant : La source contient des données de date non valides telles que 0000-0000-0000. DTS convertit automatiquement ces données en NULL, ce qui déclenche l'erreur.

    • Solution :

      • Modifiez le type de colonne à la destination pour autoriser les valeurs NULL.

      • Modifiez les objets à synchroniser : supprimez la table problématique, corrigez les données source, puis supprimez la table correspondante à la destination. Modifiez à nouveau les objets à synchroniser pour rajouter la table, puis relancez la synchronisation complète et incrémentielle.

  • Q : Comment corriger un mappage de nom de table de destination incorrectement configuré ?

    R : Sur la page de configuration de la tâche DTS, dans la section Selected Objects, développez la base de données de destination, recherchez la table dont le mappage est incorrect et cliquez sur le bouton Edit à droite. Dans la boîte de dialogue qui s'affiche, modifiez le nom de la table de destination pour le nom correct, puis enregistrez la modification.

  • Q : Comment remplir les données historiques après l'ajout d'une nouvelle colonne ?

    DTS ne remplit pas automatiquement les données historiques pour les colonnes nouvellement ajoutées. Cette règle s'applique à tous les types de bases de données de destination, pas seulement à SelectDB. Pour remplir les données historiques, procédez comme suit :

    1. Ajoutez manuellement la nouvelle colonne à la table de destination.

    2. Dans la console DTS, modifiez les objets à synchroniser et retirez la table des objets à synchroniser.

    3. Exécutez TRUNCATE pour effacer les données de la table de destination (si vous devez garantir la cohérence des données).

    4. Rajoutez la table aux objets à synchroniser pour déclencher la synchronisation des données complètes plus les données incrémentielles, ce qui migre les données historiques, y compris la nouvelle colonne, vers la base de données de destination.

  • Q : Lorsqu'une tâche de synchronisation incrémentielle DTS signale une erreur due à des schémas de table incohérents, puis-je ignorer les opérations DML en bloc ?

    DTS ne prend pas en charge l'ignorance directe des opérations DML en bloc. Vous pouvez utiliser l'une des deux solutions suivantes :

    • Solution 1 (recommandée) : Ajoutez les instructions DDL manquantes pour rendre les schémas de table de la source et de la destination cohérents, puis redémarrez la tâche. Cette solution n'entraîne aucune perte de données.

    • Solution 2 : Modifiez le point de contrôle de synchronisation (par exemple, ignorez une plage de temps d'une seconde ou d'une minute) pour ignorer les enregistrements incrémentiels ayant provoqué l'erreur.

    Avertissement

    La solution 2 ignore toutes les opérations DML (y compris INSERT, UPDATE et DELETE) dans cette plage de temps, ce qui peut entraîner une perte de données ou une incohérence. Évaluez soigneusement l'impact avant d'utiliser cette solution.

  • Q : Quelle est l'option « Migrate Events » dans la configuration DTS ? Comment choisir une valeur pour celle-ci ?

    L'option Migrate Events contrôle la synchronisation ou non des objets d'événement de la base de données source vers la base de données de destination.

    • No (par défaut) : Les objets d'événement de la base de données source ne sont pas synchronisés. Si la base de données de destination n'a pas besoin d'exécuter la logique d'événement planifiée, conservez la valeur par défaut.

    • Yes : Les définitions d'événement et la logique de déclenchement de la base de données source sont synchronisées vers la base de données de destination. Si vous devez reproduire entièrement la planification des événements de la base de données source dans la base de données de destination, sélectionnez cette option.

  • Q : Comment gérer l'incohérence des données ou la désynchronisation du schéma lors de la modification des objets à synchroniser ?

    R : Lorsque l'un des problèmes suivants se produit, vous pouvez les résoudre en retirant et en rajoutant les objets à synchroniser :

    • Les données de la base de données de destination sont incohérentes avec celles de la base de données source.

    • Les modifications DDL côté source (telles que l'ajout d'une colonne ou la modification d'un type de colonne) ne sont pas synchronisées vers la destination.

    • Les tables avec des clés uniques contenant des valeurs NULL sont synchronisées de manière anormale.

    • Erreurs de syntaxe SQL (telles que l'erreur near 'null').

    Procédure :

    1. Modifiez les objets à synchroniser de la tâche DTS et retirez la table problématique.

    2. À la destination, supprimez (DROP TABLE) ou videz (TRUNCATE TABLE) la table problématique correspondante.

    3. Rajoutez la table aux objets à synchroniser de la tâche DTS et démarrez la pré-vérification. DTS réinitialise le schéma et effectue une synchronisation complète et incrémentielle sur la table.

  • Q : Quel est l'impact de la modification des données dans la base de données de destination pendant l'exécution d'une tâche de synchronisation ou de migration de données ?

    • La modification des données dans la base de données de destination peut entraîner l'échec de la tâche DTS. Lors de la migration ou de la synchronisation des données, l'exécution d'opérations sur les objets en cours de migration ou de synchronisation dans la base de données de destination peut provoquer des problèmes tels que des conflits de clé primaire ou des enregistrements de mise à jour manquants, ce qui entraîne finalement l'échec de la tâche DTS. Toutefois, vous pouvez effectuer des opérations qui n'interrompent pas la tâche DTS. Par exemple, si vous créez une table dans l'instance de destination et y écrivez des données, la tâche DTS n'est pas affectée car la table n'est pas incluse dans les objets de migration ou de synchronisation.

    • Étant donné que DTS lit les informations depuis la base de données de l'instance source et migre ou synchronise ses données complètes, ses données de schéma et ses données incrémentielles vers l'instance de destination, les modifications de données apportées à la base de données de destination pendant la tâche peuvent être écrasées par les données migrées ou synchronisées depuis la base de données source.

    Q : Lors de l'utilisation de DTS pour la synchronisation ou la migration de données, les données existantes à la destination sont-elles écrasées ?

    R : Prenons l'exemple de la synchronisation des données. Le comportement par défaut et les paramètres associés de DTS sont les suivants :

    Comportement par défaut de DTS : Si un conflit de clé primaire ou de clé unique se produit pendant l'exécution de la tâche de synchronisation :

    • Si les schémas de table sont identiques et qu'un enregistrement de la base de données de destination possède la même valeur de clé primaire ou de clé unique qu'un enregistrement de la base de données source :

      • Lors de la synchronisation complète, DTS conserve l'enregistrement dans le cluster de destination. L'enregistrement correspondant de la base de données source n'est pas synchronisé.

      • Lors de la synchronisation incrémentielle, l'enregistrement de la base de données source écrase l'enregistrement de la base de données de destination.

    • Si les schémas de table sont différents, la synchronisation initiale des données peut échouer. Cela peut entraîner la synchronisation partielle des données de colonne ou un échec complet de la synchronisation. Procédez avec prudence.

    Paramètres associés : Lors de la configuration d'une tâche, vous pouvez utiliser le paramètre Processing Mode of Conflicting Tables pour gérer le traitement des données associées.

    • Precheck and Report Errors : Vérifie si une table portant le même nom existe dans la base de données de destination. Si aucune table portant le même nom n'existe, la pré-vérification réussit. Si une table portant le même nom existe, la pré-vérification échoue et la tâche de synchronisation des données ne démarre pas.

      Remarque

      Si vous ne pouvez pas supprimer ou renommer la table portant le même nom dans la base de données de destination, vous pouvez la mapper vers un nom de table différent. Pour plus d'informations, consultez la rubrique Mapper les noms de table et de colonne.

    • Ignore Errors and Proceed : Ignore la vérification des noms de table en double dans la base de données de destination.

      Avertissement

      La sélection de l'option Ignore Errors and Proceed peut entraîner une incohérence des données et mettre votre activité à risque. Par exemple :

      • Si les schémas de table sont identiques et qu'un enregistrement de la base de données de destination possède la même valeur de clé primaire ou de clé unique qu'un enregistrement de la base de données source :

        • Lors de la synchronisation complète, DTS conserve l'enregistrement dans le cluster de destination. L'enregistrement correspondant de la base de données source n'est pas synchronisé.

        • Lors de la synchronisation incrémentielle, l'enregistrement de la base de données source écrase l'enregistrement de la base de données de destination.

      • Si les schémas de table sont différents, la synchronisation initiale des données peut échouer. Cela peut entraîner la synchronisation partielle des données de colonne ou un échec complet de la synchronisation. Procédez avec prudence.

    Recommandation : Pour garantir la cohérence des données, nous vous recommandons de supprimer la table de destination avant de configurer la tâche DTS, si votre activité le permet.

    Q : Une erreur de synchronisation incrémentielle indique qu'une table temporaire est manquante dans la base de données de destination ou qu'un conflit SELECT INTO se produit. Comment résoudre ce problème ?

    • Cause :

      Ce problème n'est pas réellement causé par l'absence d'une table temporaire dans la base de données de destination. Au lieu de cela, après l'activation de Change Data Capture (CDC) dans la base de données source, les déclencheurs créés par DTS interceptent la création implicite de table effectuée par SELECT INTO, ce qui provoque des conflits lors de la synchronisation des données.

    • Solution :

      1. Vérifiez que le fichier journal des transactions à la source existe et est intact.

      2. Désactivez la fonctionnalité CDC dans la base de données source.

      3. Connectez-vous à la console DTS, reconfigurez la tâche de synchronisation, sélectionnez Parse source database logs comme méthode de synchronisation incrémentielle, puis redémarrez la tâche.

    Q : La tâche de synchronisation a été interrompue pendant plusieurs heures et je soupçonne l'existence d'un verrou MDL à la destination. Comment résoudre ce problème ?

    • Cause :

      Un verrou de métadonnées (verrou MDL) à la destination, causé par une opération DDL de longue durée (telle que l'ajout d'une colonne à une grande table ou la reconstruction d'un index), bloque les écritures de données incrémentielles de DTS, ce qui entraîne une interruption prolongée du lien de synchronisation.

    • Solution :

      1. Connectez-vous à la console ApsaraDB RDS, accédez à l'instance de base de données de destination et exécutez SHOW FULL PROCESSLIST pour localiser la session anormale qui détient le verrou MDL. Ensuite, tuez la session.

      2. Connectez-vous à la console DTS et modifiez les objets de synchronisation pour retirer les tables affectées par le verrou MDL de la portée de synchronisation.

      3. Supprimez la table dans la base de données de destination (avant cette opération, assurez-vous que les données ont été sauvegardées ou peuvent être effacées).

      4. Une fois que la tâche de synchronisation DTS revient à la normale et que la latence de synchronisation tombe à zéro, modifiez à nouveau les objets de synchronisation pour rajouter la table à la portée de synchronisation et terminer la remigration.

    Q : Une erreur de synchronisation incrémentielle indique que le paquet est trop volumineux ou que la valeur max_allowed_packet à la destination est insuffisante. Comment résoudre ce problème ?

    • Cause :

      La source contient une ligne avec une grande quantité de données qui dépasse la limite du paramètre max_allowed_packet à la destination lors de la synchronisation incrémentielle, ce qui provoque l'erreur de synchronisation.

    • Solution :

      1. Connectez-vous à la base de données source et interrogez la valeur actuelle du paramètre max_allowed_packet :

        SHOW VARIABLES LIKE 'max_allowed_packet';

        Enregistrez la valeur (par exemple, 1073741824, soit 1 Go).

      2. Connectez-vous à la console ApsaraDB RDS (ou à la console PolarDB si la destination est PolarDB for MySQL). Sur la page Parameters de l'instance de base de données de destination, définissez le paramètre max_allowed_packet sur une valeur supérieure ou égale à celle de la source.

      3. Une fois la modification du paramètre terminée, redémarrez la tâche de synchronisation dans la console DTS et vérifiez si la synchronisation revient à la normale.

    Q : Puis-je ajuster le débit après le démarrage d'une instance de synchronisation ou de migration ?

    R : Oui. Pour plus d'informations, consultez la rubrique Activer la limitation du débit pour la migration de données.

    Q : Les données de la base de données source sont-elles conservées après la fin de la synchronisation ou de la migration DTS ?

    R : Oui. DTS ne supprime pas les données de la base de données source. Si vous n'avez pas besoin de conserver les données de la base de données source, supprimez-les manuellement.

    Q : Comment utiliser l'API pour configurer la fonctionnalité ETL pour une tâche de synchronisation ou de migration ?

    R : Vous pouvez la configurer dans le paramètre Reserve de l'API en utilisant des paramètres courants tels que etlOperatorCtl et etlOperatorSetting. Pour plus d'informations, consultez les rubriques ConfigureDtsJob et Référence du paramètre Reserve.

    Q : Lors de la synchronisation ou de la migration de données, la base de données source et la base de données de destination doivent-elles être connectées via le réseau ?

    R : Non.

    Q : Lors de la synchronisation ou de la migration de données, dois-je créer manuellement les tables dans la base de données de destination ?

    R : Pour les instances DTS qui prennent en charge les tâches de schéma (synchronisation de schéma ou migration de schéma), si vous avez configuré une tâche de schéma (Synchronization Types avec Schema Synchronization sélectionné, ou Migration Types avec Schema Migration sélectionné), vous n'avez pas besoin de créer manuellement les tables dans la base de données de destination.

    Q : DTS prend-il en charge la synchronisation ou la migration de données par échantillonnage selon une plage de temps ?

    R : Non.

    Q : Les données peuvent-elles être écrites simultanément dans la base de données source et la base de données de destination pendant l'exécution d'une tâche de synchronisation ou de migration de données ?

    R : Oui. Toutefois, pendant l'exécution de l'instance DTS, si des sources de données autres que DTS écrivent des données dans la base de données de destination, des anomalies peuvent se produire dans les données de la base de données de destination ou dans l'instance DTS.

    Q : DTS prend-il en charge la migration de données ou la synchronisation de données inter-comptes ?

    R : Oui. Pour savoir comment la configurer, consultez la rubrique Configurer une tâche DTS inter-comptes.