Tous les produits
Search
Centre de documentation

Data Transmission Service:Configurer des tâches pour les bases de données sources comportant des déclencheurs

Dernière mise à jour :Aug 10, 2026

La synchronisation ou la migration d'une base de données peut entraîner des incohérences entre la source et la destination si la base source contient un déclencheur qui met à jour ses propres tables. Cette rubrique explique comment configurer la tâche dans ce scénario pour garantir la cohérence des données.

Contexte

Si votre base de données source contient des déclencheurs et que votre scénario correspond à l'une des conditions du tableau ci-dessous, reportez-vous à la documentation indiquée. Sinon, suivez la procédure décrite dans cette rubrique.

Base de données source

Base de données de destination

Description

Références

Tous les types pris en charge

PostgreSQL, PolarDB for PostgreSQL, PolarDB for PostgreSQL (Compatible with Oracle)

  • Si le compte de la base de données de destination dispose des autorisations suffisantes (compte privilégié ou superutilisateur), Data Transmission Service (DTS) désactive automatiquement le déclencheur au niveau de la session après la migration ou la synchronisation.

  • Si le compte de la base de données de destination ne dispose pas des autorisations suffisantes, définissez le paramètre session_replication_role sur replica dans la base de destination pendant l'exécution de la tâche.

MySQL, PolarDB for MySQL, ApsaraDB RDS for MariaDB

MySQL, PolarDB for MySQL, ApsaraDB RDS for MariaDB

Vous devez configurer manuellement les déclencheurs pour la synchronisation ou la migration.

Synchroniser ou migrer les déclencheurs depuis la base de données source

SQL Server

SQL Server

Flux de travail

  1. Créez une tâche de migration des données pour migrer le schéma de la base de données source vers la base de données de destination.

    Pour plus d'informations, consultez Présentation des scénarios de migration des données.

    Important
    • Sous Migration Types, sélectionnez uniquement Schema Migration.

    • Sous Source Objects, sélectionnez l'intégralité de la base de données ou du schéma.

  2. Connectez-vous à la base de données de destination et supprimez les déclencheurs migrés depuis la base source.

  3. Créez une tâche de synchronisation ou de migration des données depuis la base de données source vers la base de données de destination.

    Pour plus d'informations, consultez Présentation des scénarios de synchronisation des données et Présentation des scénarios de migration des données.

    Important
    • Pour une tâche de synchronisation des données, Synchronization Types est sélectionné par défaut sous Incremental Data Synchronization. Sélectionnez également Full Data Synchronization. Ne sélectionnez pas Schema Synchronization.

    • Pour une tâche de migration des données, sélectionnez Migration Types et Full Data Migration pour Incremental Data Migration. Ne sélectionnez pas Schema Migration.

  4. (Facultatif) Une fois le transfert des données terminé, arrêtez ou libérez l'instance.

    Pour plus d'informations, consultez Arrêter une instance DTS et Libérer des instances DTS.

    Remarque

    Après l'arrêt ou la libération de l'instance, ajoutez manuellement les déclencheurs à la base de données de destination selon vos besoins métier.

Exemple

Remarque

Cet exemple montre comment configurer une tâche pour synchroniser les données d'une base de données MySQL auto-gérée vers une instance ApsaraDB RDS for MySQL.

Préparation des données

Cet exemple utilise une base de données MySQL nommée triggertestdata contenant deux tables : parent et child. Un déclencheur sur la table parent insère une copie de chaque nouvelle ligne dans la table child.

Remarque

Le tableau suivant présente les schémas de table et la définition du déclencheur.

Type d'objet

Nom

Instruction

Table

parent

CREATE TABLE `parent` (
  `user_vs_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`user_vs_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2001 DEFAULT CHARSET=utf8

Table

child

CREATE TABLE `child` (
  `sys_child_id` int(11) NOT NULL AUTO_INCREMENT,
  `user_vs_id` int(11) DEFAULT NULL,
  `name` varchar(30) DEFAULT NULL,
  PRIMARY KEY (`sys_child_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2001 DEFAULT CHARSET=utf8

Déclencheur

data_check

CREATE TRIGGER data_check
AFTER INSERT ON parent
FOR EACH ROW
insert into child(user_vs_id, name) values(new.user_vs_id, new.name) ;

Dans ce scénario, une opération INSERT sur la table parent pendant la synchronisation entraînerait une incohérence des données de la table child entre la source et la destination. Pour éviter cela, vous devez supprimer le déclencheur de la base de données de destination après la migration initiale du schéma.

Procédure

  1. Créez une tâche de migration des données pour migrer le schéma de la base de données source vers la base de données de destination.

    1. Accédez à la page de liste des tâches de migration pour la région de destination en utilisant l'une des méthodes suivantes.

      Depuis la console DTS

      1. Connectez-vous à la console Data Transmission Service (DTS).

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

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

      Depuis la console DMS

      Remarque

      Les opérations 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 Data Management (DMS).

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

      3. À droite de Data Migration Tasks, sélectionnez la région où se trouve l'instance de migration.

    2. Cliquez sur Create Task pour accéder à la page de configuration de la tâche.

    3. Configurez les paramètres Source Database et Destination Database, puis cliquez sur Test Connectivity and Proceed en bas de la page.

      Pour obtenir des descriptions des paramètres et plus d'informations, consultez Migrer des données d'une base de données MySQL auto-gérée vers une instance ApsaraDB RDS for MySQL.

    4. Sous Migration Types, sélectionnez Schema Migration, puis sélectionnez la base de données ou le schéma à migrer.

    5. Terminez les étapes de configuration restantes selon vos besoins métier.

  2. La migration du schéma migre également les déclencheurs. Une fois la tâche terminée, connectez-vous à la base de données de destination et supprimez ces déclencheurs en exécutant la commande suivante :

    drop trigger <trigger_name>;

    Exemple :

    drop trigger data_check;
  3. Créez une tâche de synchronisation des données pour synchroniser les données de la base de données source vers la base de données de destination.

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

    2. Configurez les paramètres Source Database et Destination Database, puis cliquez sur Test Connectivity and Proceed en bas de la page.

      Pour obtenir des descriptions des paramètres et plus d'informations, consultez Synchroniser des données d'une base de données MySQL auto-gérée vers une instance ApsaraDB RDS for MySQL.

      Remarque

      Utilisez les mêmes bases de données source et de destination que celles configurées à l'étape Étape 1.

    3. Sous Synchronization Types, sélectionnez manuellement Full Data Synchronization.

      Remarque
      • Assurez-vous que les objets de synchronisation sont identiques aux objets de migration configurés à l'étape Étape 1.

      • Synchronization Types est sélectionné par défaut sous Incremental Data Synchronization. Ne sélectionnez pas Schema Synchronization.

    4. Terminez les étapes de configuration restantes selon vos besoins métier.

Tester la cohérence des données

  1. Connectez-vous à la base de données source et insérez une ligne dans la table parent.

    insert into parent values(1,'testname');

    Le déclencheur de la base de données source insère ensuite la même ligne dans la table enfant source.

  2. Connectez-vous aux bases de données source et de destination. Interrogez la table child dans les deux bases pour vérifier la cohérence des données.

    • Résultats de la requête dans la base de données source

      +--------------+------------+----------+
      | sys_child_id | user_vs_id | name     |
      +--------------+------------+----------+
      |         2001 |          1 | testname |
      +--------------+------------+----------+
    • Résultats de la requête dans la base de données de destination

      +--------------+------------+----------+
      | sys_child_id | user_vs_id | name     |
      +--------------+------------+----------+
      |         2001 |          1 | testname |
      +--------------+------------+----------+

    Les résultats montrent que les données sont cohérentes.

Étapes suivantes

  1. Une fois la synchronisation des données terminée, arrêtez la tâche de synchronisation créée à l'étape Étape 3.

    Pour plus d'informations, consultez Arrêter une instance DTS.

  2. (Facultatif) Consultez l'instruction de création du déclencheur.

    1. Localisez la tâche de migration créée à l'étape Étape 1.

    2. Cliquez sur l'ID de la tâche.

    3. Sur la page Task Management, cliquez sur Schema Migration2.

    4. Dans l'onglet Task Details, cliquez sur View Statements.

  3. Connectez-vous à la base de données de destination et ajoutez manuellement le déclencheur.