Tous les produits
Search
Centre de documentation

Data Transmission Service:Synchronisation unidirectionnelle entre des instances RDS MySQL

Dernière mise à jour :Aug 10, 2026

Data Transmission Service (DTS) synchronise les données d'une instance source ApsaraDB RDS for MySQL vers une instance de destination en trois phases séquentielles : la synchronisation du schéma, la synchronisation complète des données et la synchronisation incrémentielle des données. Suivez ce guide pour configurer la tâche de bout en bout.

Prérequis

Avant de commencer, vérifiez que vous disposez des éléments suivants :

  • Une instance source ApsaraDB RDS for MySQL dont l'état est normal

  • Une instance de destination ApsaraDB RDS for MySQL dont l'espace de stockage disponible est supérieur à la taille totale des données de l'instance source. Consultez Créer une instance ApsaraDB RDS for MySQL

Facturation

Type de synchronisation Frais
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 Instructions SQL
DML INSERT, UPDATE, DELETE
DDL ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE
Important

L'instruction RENAME TABLE peut entraîner une incohérence des données. Si vous renommez une table synchronisée pendant l'exécution de la tâche, les données de cette table cessent d'être synchronisées vers la destination. Pour éviter cela, sélectionnez la base de données (et non des tables individuelles) comme objet de synchronisation, et assurez-vous que la base de données avant et après le renommage est incluse.

Autorisations requises pour le compte de base de données

Base de données Autorisations requises
Instance source ApsaraDB RDS for MySQL Autorisations de lecture et d'écriture. Consultez Créer un compte et Modifier les autorisations d'un compte
Instance de destination ApsaraDB RDS for MySQL Autorisations de lecture et d'écriture. Consultez Créer un compte et Modifier les autorisations d'un compte
Si le compte de la base de données source n'a pas été créé via la console ApsaraDB RDS for MySQL, accordez-lui manuellement les autorisations REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW et SELECT. Des autorisations supplémentaires sont nécessaires pour synchroniser les informations de compte depuis la source. Consultez Migrer des comptes de base de données .

Limites

Examinez ces limites avant de commencer. La plupart des échecs de tâches et des incohérences de données résultent de leur omission.

Structure de table

  • Les tables à synchroniser doivent disposer d'une contrainte PRIMARY KEY ou UNIQUE incluant tous les champs uniques. Sans cela, la destination peut contenir des enregistrements en double.

  • Si vous sélectionnez des tables (et non des bases de données) comme objets de synchronisation et prévoyez de renommer des tables ou des colonnes, une seule tâche prend en charge jusqu'à 1 000 tables. Pour plus de 1 000 tables, configurez plusieurs tâches ou effectuez la synchronisation au niveau de la base de données.

Journal binaire

Configurez les paramètres de journal binaire suivants avant que DTS puisse lire les modifications depuis la source :

  • Définissez binlog_row_image sur full. La journalisation binaire est activée par défaut sur les instances ApsaraDB RDS for MySQL, mais vérifiez ce paramètre. Consultez Modifier les paramètres de l'instance.

  • La rétention des journaux binaires doit être d'au moins 7 jours. Si DTS ne peut pas accéder aux journaux binaires requis, la tâche échoue et une perte de données peut survenir. Consultez Gérer les fichiers de journal binaire.

N'exécutez pas d'instructions DDL sur la base de données source pendant la synchronisation du schéma ou la synchronisation complète des données. Cela entraînerait l'échec de la tâche.

Compatibilité des versions et des jeux de caractères

  • La version de la base de données de destination doit être identique ou supérieure à celle de la source. Une version de destination plus ancienne peut entraîner des problèmes de compatibilité.

  • Si la base de données source est MySQL 8.0.23 ou ultérieure et contient des colonnes invisibles, DTS ne peut pas récupérer les données de ces colonnes, ce qui entraîne une perte de données.

  • Si la base de données de destination est MySQL 8.0.23 ou ultérieure et contient des colonnes invisibles, les colonnes de destination destinées à recevoir les données sont introuvables, ce qui provoque l'échec de l'instance DTS et une perte de données.

  • Dans les deux cas, exécutez ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; pour rendre les colonnes invisibles visibles avant de démarrer la tâche. Les tables sans clés primaires génèrent automatiquement des clés primaires invisibles ; rendez-les également visibles. Consultez Colonnes invisibles et Clés primaires invisibles générées.

  • Si vous n'utilisez pas la synchronisation du schéma, assurez-vous que la compatibilité des types de champs est maintenue. Par exemple, un champ text dans la source mappé à un champ varchar(255) dans la destination peut entraîner une troncature des données.

  • Si les données contiennent des caractères sur 4 octets (tels que des caractères rares ou des emojis), les tables de destination doivent utiliser le jeu de caractères UTF8mb4. Si vous utilisez la synchronisation du schéma, définissez le paramètre character_set_server sur UTF8mb4 dans la base de données de destination.

  • Les noms de colonnes dans MySQL ne sont pas sensibles à la casse. Si la source comporte plusieurs colonnes dont les noms ne diffèrent que par la casse, elles sont écrites dans la même colonne de la destination, ce qui entraîne des résultats inattendus.

DDL en ligne

  • N'utilisez pas pt-online-schema-change pour les opérations DDL en ligne sur les tables sélectionnées comme objets de synchronisation. Utilisez plutôt Data Management (DMS). Consultez Effectuer des opérations DDL sans verrou.

  • Si les opérations DDL échouent dans la destination, la tâche DTS continue de s'exécuter. Vérifiez les journaux de la tâche pour identifier les instructions DDL ayant échoué. Consultez Afficher les journaux de la tâche.

  • DTS ne synchronise pas les données utilisant des analyseurs définis par des commentaires.

Cohérence des données

  • N'écrivez pas de données provenant d'autres sources dans la destination pendant la synchronisation. Cela entraînerait une incohérence des données.

  • Les données générées par les opérations de changement de journal binaire (telles que les données restaurées à partir d'une sauvegarde physique ou des opérations en cascade) ne sont pas enregistrées ni synchronisées vers la destination pendant l'exécution de la tâche.

Comportement des clés étrangères

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

  • Pendant la synchronisation complète et incrémentielle des données, DTS désactive temporairement les vérifications de contraintes de clés étrangères et les opérations en cascade au niveau de la session. Les opérations de mise à jour ou de suppression en cascade sur la source durant cette période peuvent entraîner une incohérence des données.

Impact sur les performances

La synchronisation complète des données lit toutes les données de la base de données source une fois, ce qui augmente la charge sur les deux bases de données. Pour réduire les risques :

  • Exécutez les tâches de synchronisation pendant les heures creuses.

  • Attendez-vous à ce que l'espace table de la destination soit plus grand que celui de la source après la synchronisation complète, en raison de la fragmentation des insertions concurrentes.

  • Une fois que l'état de la tâche passe à Completed, exécutez analyze table <table_name> pour vérifier que les données ont été correctement écrites dans la destination. (Par exemple, un basculement de haute disponibilité (HA) dans la source peut entraîner l'écriture de certaines données uniquement en mémoire.)

Cas particuliers

Pour les sources MySQL gérées par vos soins :

  • Si un basculement principal/secondaire se produit sur la base de données source pendant l'exécution de la tâche, la tâche échoue.

  • DTS calcule la latence de synchronisation en fonction de l'horodatage des dernières données synchronisées dans la destination et de l'horodatage actuel dans la source. Si aucune opération DML n'est effectuée sur la source pendant une longue période, la latence peut être inexacte. Si la latence est trop élevée, effectuez une opération DML sur la source pour la mettre à jour. Si vous sélectionnez une base de données entière comme objet de synchronisation, vous pouvez créer une table de heartbeat mise à jour chaque seconde pour maintenir la précision de la latence.

  • DTS exécute CREATE DATABASE IF NOT EXISTS 'test' dans la source selon une planification afin de faire avancer la position du journal binaire.

Pour les sources ApsaraDB RDS for MySQL :

  • Les instances ApsaraDB RDS for MySQL 5.6 en lecture seule (qui n'enregistrent pas les journaux de transaction) ne peuvent pas être utilisées comme source.

  • DTS exécute CREATE DATABASE IF NOT EXISTS 'test' dans la source selon une planification afin de faire avancer la position du journal binaire.

  • Les instances ApsaraDB RDS for MySQL avec la fonctionnalité EncDB activée ne prennent pas en charge la synchronisation complète des données. Les instances avec Transparent Data Encryption (TDE) activé prennent en charge la synchronisation du schéma, la synchronisation complète des données et la synchronisation incrémentielle des données.

Si le support technique DTS restaure une tâche ayant échoué :

  • Le support tente une restauration dans un délai de 8 heures. La tâche peut être redémarrée et certains paramètres de tâche peuvent être modifiés. Les paramètres de base de données ne sont pas modifiés.

Configurer la tâche de synchronisation

Étape 1 : Accéder à la page des tâches de synchronisation des données

  1. Connectez-vous à la console Data Management (DMS).

  2. Dans la barre de navigation supérieure, cliquez sur Data + AI.

  3. Dans le volet de navigation de gauche, choisissez DTS (DTS) > Data Synchronization.

La navigation peut varier selon le mode et la disposition de votre console DMS. Consultez Mode simple et Personnaliser la disposition et le style de la console DMS . Sinon, accédez directement à la page des tâches de synchronisation des données de la nouvelle console DTS .

Étape 2 : Créer la tâche

  1. Sélectionnez la région où réside votre instance de synchronisation des données.

    Dans la nouvelle console DTS, sélectionnez plutôt la région dans la barre de navigation supérieure.
  2. Cliquez sur Create Task.

  3. (Facultatif) Cliquez sur New Configuration Page dans le coin supérieur droit de la page.

    Ignorez cette étape si le bouton Back to Previous Version est affiché. La nouvelle page de configuration est recommandée.

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

Avertissement

Après avoir configuré les bases de données source et de destination, examinez les Limites affichées sur la page avant de continuer. Ignorer cette étape peut entraîner l'échec de la tâche ou une incohérence des données.

Remplissez les paramètres suivants pour la source et la destination :

Section Paramètre Description
N/A Task Name Un nom descriptif pour la tâche DTS. DTS génère un nom par défaut ; remplacez-le par un nom significatif. Un nom unique n'est pas requis.
Source Database Select a DMS database instance Dans cet exemple, aucune instance de base de données n'est présélectionnée. Configurez manuellement les paramètres ci-dessous.
Database Type Sélectionnez MySQL.
Access Method Sélectionnez Alibaba Cloud Instance.
Instance Region La région où réside l'instance source.
Replicate Data Across Alibaba Cloud Accounts Sélectionnez No (exemple de même compte).
RDS Instance ID L'ID de l'instance source ApsaraDB RDS for MySQL.
Database Account Le compte de base de données pour l'instance source. Consultez Autorisations requises pour le compte de base de données.
Database Password Le mot de passe du compte de base de données.
Encryption Sélectionnez Non-encrypted ou SSL-encrypted. Pour utiliser le chiffrement SSL, activez-le d'abord sur l'instance. Consultez Utiliser un certificat cloud pour activer le chiffrement SSL.
Destination Database Select a DMS database instance Dans cet exemple, aucune instance de base de données n'est présélectionnée. Configurez manuellement les paramètres ci-dessous.
Database Type Sélectionnez MySQL.
Access Method Sélectionnez Alibaba Cloud Instance.
Instance Region La région où réside l'instance de destination.
Replicate Data Across Alibaba Cloud Accounts Sélectionnez No (exemple de même compte).
RDS Instance ID L'ID de l'instance de destination ApsaraDB RDS for MySQL.
Database Account Le compte de base de données pour l'instance de destination. Consultez Autorisations requises pour le compte de base de données.
Database Password Le mot de passe du compte de base de données.
Encryption Sélectionnez Non-encrypted ou SSL-encrypted. Pour utiliser le chiffrement SSL, activez-le d'abord sur l'instance. Consultez Utiliser un certificat cloud pour activer le chiffrement SSL.

Étape 4 : Tester la connectivité

Cliquez sur Test Connectivity and Proceed.

DTS ajoute automatiquement ses blocs CIDR de serveur à la liste d'autorisation des instances de base de données Alibaba Cloud. Pour les bases de données hébergées sur ECS, DTS ajoute les blocs CIDR aux règles du groupe de sécurité ECS et vous devez vous assurer que l'instance ECS peut accéder à la base de données — si la base de données s'étend sur plusieurs instances ECS, ajoutez manuellement les blocs CIDR au groupe de sécurité de chaque instance. Pour les bases de données locales ou hébergées par des fournisseurs cloud tiers, ajoutez manuellement les blocs CIDR des serveurs DTS à la liste d'autorisation de la base de données. Consultez Blocs CIDR des serveurs DTS.

Avertissement

L'ajout des blocs CIDR des serveurs DTS aux listes d'autorisation ou aux groupes de sécurité introduit des risques de sécurité. Avant de continuer, prenez des mesures préventives telles que le renforcement de vos identifiants, la restriction des ports exposés, l'authentification des appels API et l'audit régulier des règles de liste d'autorisation. Alternativement, connectez la base de données à DTS en utilisant Express Connect, VPN Gateway ou Smart Access Gateway.

Étape 5 : Configurer les objets de synchronisation

À l'étape Configure Objects, remplissez les paramètres suivants :

Paramètre Description
Synchronization Types Incremental Data Synchronization est sélectionné par défaut. Sélectionnez également Schema Synchronization et Full Data Synchronization. DTS utilise la synchronisation complète comme référence avant de démarrer la synchronisation incrémentielle.
Method to Migrate Triggers in Source Database Sélectionnez la méthode de gestion des déclencheurs de la source. Disponible uniquement lorsque Schema Synchronization est sélectionné. Consultez Synchroniser ou migrer des déclencheurs depuis la base de données source.
Enable Migration Assessment Sélectionnez Yes pour vérifier si les schémas source et de destination (y compris les longueurs d'index, les procédures stockées et les tables dépendantes) répondent aux exigences. Les résultats de l'évaluation sont affichés lors de la pré-vérification mais n'affectent pas son issue. Disponible uniquement lorsque Schema Synchronization est sélectionné.
Synchronization Topology Sélectionnez One-way Synchronization.
Processing Mode of Conflicting Tables Precheck and Report Errors (recommandé) : la pré-vérification échoue si la destination contient des tables portant les mêmes noms que celles de la source. Utilisez le mappage des noms d'objets pour résoudre les conflits de nommage. Ignore Errors and Proceed : ignore la pré-vérification pour les noms de tables identiques. Pendant la synchronisation complète, les enregistrements existants de la destination avec des valeurs de clé primaire ou unique correspondantes sont conservés. Pendant la synchronisation incrémentielle, les enregistrements correspondants sont écrasés. Les différences de schéma peuvent entraîner une synchronisation partielle ou l'échec de la tâche.
Capitalization of Object Names in Destination Instance Contrôle la casse des noms de base de données, de tables et de colonnes dans la destination. La valeur par défaut est DTS default policy. Consultez Spécifier la casse des noms d'objets dans l'instance de destination.
Source Objects Sélectionnez les objets à synchroniser (colonnes, tables ou bases de données) et cliquez sur l'icône de flèche pour les ajouter à Selected Objects. La sélection de tables ou de colonnes exclut les autres types d'objets (vues, déclencheurs, procédures stockées) de la synchronisation.
Selected Objects Pour renommer un seul objet dans la destination, faites un clic droit dessus et sélectionnez l'option de renommage. Pour renommer plusieurs objets à la fois, cliquez sur Batch Edit. Consultez Mapper les noms d'objets. Pour filtrer les lignes à l'aide de conditions WHERE, faites un clic droit sur un objet et définissez les conditions. Consultez Définir des conditions de filtre. Pour synchroniser des opérations SQL spécifiques pour une table ou une base de données, faites un clic droit sur l'objet et sélectionnez les opérations.
Le renommage d'un objet avec le mappage des noms d'objets peut empêcher la synchronisation d'autres objets qui en dépendent.

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

Cliquez sur Next: Advanced Settings et remplissez les paramètres suivants :

Paramètre Description
Dedicated Cluster for Task Scheduling Par défaut, DTS planifie la tâche sur un cluster partagé. Achetez un cluster dédié pour une stabilité améliorée. Consultez Qu'est-ce qu'un cluster dédié DTS ?.
Copy the temporary table of the Online DDL tool that is generated in the source table to the destination database Contrôle la synchronisation des tables temporaires générées par les outils DDL en ligne. Si vous utilisez DMS ou gh-ost pour les DDL en ligne, sélectionnez Yes pour synchroniser les données des tables temporaires (remarque : les opérations volumineuses prolongent le temps de synchronisation), No, Adapt to DMS Online DDL pour synchroniser uniquement le DDL final (les tables de destination peuvent être verrouillées), ou No, Adapt to gh-ost pour synchroniser uniquement le DDL final de gh-ost (les tables de destination peuvent être verrouillées). N'utilisez pas pt-online-schema-change lorsque des tables (et non une base de données entière) sont sélectionnées comme objets de synchronisation, car cela entraînerait l'échec de la tâche.
Whether to Migrate Accounts Sélectionnez Yes pour synchroniser les informations de compte depuis la source. Spécifiez les comptes à synchroniser et examinez leurs autorisations.
Retry Time for Failed Connections Durée pendant laquelle DTS retente les connexions échouées après le démarrage de la tâche. Valeurs valides : 10–1440 minutes. Par défaut : 720 minutes. Définissez une valeur supérieure à 30 minutes. Si DTS se reconnecte dans ce délai, la tâche reprend. Sinon, elle échoue. Remarque : lorsque DTS retente une connexion, l'instance DTS est facturée. Si vous spécifiez différentes plages de temps de nouvelle tentative pour plusieurs tâches partageant la même base de données source ou de destination, la plage la plus courte est prioritaire. Nous vous recommandons de libérer rapidement l'instance DTS après la libération des instances source et de destination.
Retry Time for Other Issues Durée pendant laquelle DTS retente les opérations DDL ou DML ayant échoué. Valeurs valides : 1–1440 minutes. Par défaut : 10 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 Migration Limite la charge de lecture/écriture pendant la synchronisation complète des données. Configurez Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s). Visible uniquement lorsque Full Data Synchronization est sélectionné.
Enable Throttling for Incremental Data Synchronization Limite la charge pendant la synchronisation incrémentielle. Configurez RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s).
Environment Tag Taguez l'instance DTS pour l'identification. Facultatif.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Contrôle si DTS écrit des opérations SQL de heartbeat dans la base de données source. Sélectionnez Yes pour ignorer l'écriture (une latence de synchronisation peut apparaître sur la page de la tâche). Sélectionnez No pour écrire les opérations de heartbeat (cela peut affecter la sauvegarde physique et le clonage de la base de données source).
Configure ETL Sélectionnez Yes pour activer la fonctionnalité extract, transform, and load (ETL) et saisir les instructions de traitement. Consultez Qu'est-ce que l'ETL ? et Configurer l'ETL dans une tâche de migration ou de synchronisation des données.
Monitoring and Alerting Sélectionnez Yes pour recevoir des notifications en cas d'échec de la tâche ou si la latence de synchronisation dépasse le seuil. Configurez le seuil d'alerte et les paramètres de notification. Consultez Configurer la surveillance et les alertes.

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

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

Étape 8 : Exécuter la pré-vérification

Cliquez sur Next: Save Task Settings and Precheck.

Pour prévisualiser les paramètres d'API pour cette configuration, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters .

DTS exécute une pré-vérification avant que la tâche ne puisse démarrer. Attendez que la pré-vérification soit terminée :

  • Si un élément échoue, cliquez sur View Details pour voir la cause et corriger le problème, puis cliquez sur Precheck Again.

  • Si un élément affiche une alerte, corrigez le problème ou cliquez sur Confirm Alert Details > Ignore > OK > Precheck Again pour continuer. Ignorer les alertes peut entraîner une incohérence des données.

Étape 9 : Acheter l'instance

Une fois que le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.

Sur la page buy, configurez les éléments suivants :

Section Paramètre Description
New Instance Class Billing Method Subscription : payez à l'avance pour une période fixe. Plus rentable pour une utilisation à long terme. Pay-as-you-go : facturé à l'heure. Convient pour une utilisation à court terme ; libérez l'instance lorsqu'elle n'est plus nécessaire pour arrêter les frais.
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 Contrôle le débit de synchronisation. Consultez Classes d'instances des instances de synchronisation des données.
Subscription Duration Disponible lorsque Subscription est sélectionné. Options : 1–9 mois, 1 an, 2 ans, 3 ans ou 5 ans.

Lisez et acceptez les Data Transmission Service (Pay-as-you-go) Service Terms, puis cliquez sur Buy and Start et confirmez.

La tâche apparaît dans la liste des tâches. Surveillez sa progression à cet endroit.

Étapes suivantes