Tous les produits
Search
Centre de documentation

ApsaraDB for OceanBase (Deprecated):Configurer une tâche de synchronisation bidirectionnelle

Dernière mise à jour :Aug 09, 2026

Cette rubrique décrit la synchronisation bidirectionnelle entre une base de données MySQL et une base de données OceanBase en mode compatible MySQL.

Important

Si une tâche de migration de données reste inactive pendant une période prolongée (avec un statut Failed, Paused ou Completed), il se peut qu'elle ne puisse pas être reprise en raison de facteurs tels que la période de rétention des journaux incrémentiels. Pour libérer des ressources, Data Transmission Service supprime les tâches de migration de données inactives depuis plus de trois jours. Nous vous recommandons de configurer des alertes pour vos tâches et de traiter rapidement toute exception.

Contexte

Qu'est-ce que la synchronisation bidirectionnelle ?

Lors de la synchronisation incrémentielle des données, vous pouvez configurer des tâches de migration avant et arrière pour la même source de données afin de synchroniser les données entre la source et la cible. Un mécanisme de prévention de la réplication cyclique empêche que les données synchronisées dans un sens ne soient à nouveau synchronisées par une tâche dans le sens inverse.

Remarque

La synchronisation bidirectionnelle ne prend pas en charge l'écriture simultanée sur la source et la cible. Si une application écrit simultanément les mêmes données, identifiées par la même clé primaire ou unique, sur la source et la cible, vous devez définir une stratégie de résolution des conflits (écraser ou ignorer) pour la tâche de synchronisation bidirectionnelle. Nous vous recommandons d'interdire à une application d'écrire simultanément les mêmes données sur la source et la cible.

Types de migration prenant en charge la synchronisation bidirectionnelle

Le service de transmission de données prend en charge la synchronisation bidirectionnelle des données entre une base de données MySQL et une base de données OceanBase en mode compatible MySQL, entre une base de données Oracle et une base de données OceanBase en mode compatible Oracle, ainsi qu'entre des bases de données OceanBase. Pour plus d'informations sur les limites et les considérations, consultez les rubriques relatives aux types correspondants de migration de données.

Instructions SQL pour accorder des privilèges pour une source de données MySQL

Pour effectuer une synchronisation bidirectionnelle entre une base de données MySQL et une base de données OceanBase, vous devez accorder les privilèges CREATE DATABASE et CREATE TABLE au compte de base de données dans la source de données MySQL de la tâche actuelle. Vous devez également créer une base de données de transaction et une table de transaction pour empêcher la réplication cyclique entre les deux parties impliquées dans la synchronisation bidirectionnelle. Sinon, la tâche de synchronisation bidirectionnelle pourrait rencontrer des anomalies.

  • Accorder le privilège global de création de base de données

    GRANT CREATE ON *.* TO '<user_name>' ;
  • Accorder le privilège de création de tables dans la base de données oms

    GRANT CREATE ON oms.* TO '<user_name>' 

Instructions SQL pour créer un schéma et accorder des privilèges pour une source de données Oracle

Pour effectuer une synchronisation bidirectionnelle entre une base de données Oracle et une base de données OceanBase, vous devez créer un schéma nommé OMS dans la source de données Oracle de la tâche actuelle, et accorder le privilège CREATE TABLE sur le schéma OMS au compte de base de données de cette source de données. Sinon, la tâche de synchronisation bidirectionnelle pourrait rencontrer des anomalies.

  • Créer un utilisateur OMS

    CREATE USER OMS IDENTIFIED BY <YOUR_PASSWORD> DEFAULT TABLESPACE <tablespace>; // Replace YOUR_PASSWORD with the actual user password.
    ALTER USER OMS QUOTA unlimited ON <tablespace specified in the previous step>; 
    ALTER USER <data source user> QUOTA unlimited ON <tablespace specified in the previous step>; 
  • Accorder des privilèges

    GRANT CREATE ANY TABLE TO <YOUR_USERNAME>; 
    GRANT INSERT ANY TABLE TO <YOUR_USERNAME>;
    GRANT UPDATE ANY TABLE TO <YOUR_USERNAME>;
    GRANT DELETE ANY TABLE TO <YOUR_USERNAME>;
    GRANT SELECT ANY TABLE TO <YOUR_USERNAME>;

Considérations

Une tâche de synchronisation bidirectionnelle se compose d'une tâche avant et d'une tâche arrière.

Type

Description

Tâche avant

  • La tâche avant prend en charge la migration de schéma, la migration complète, la synchronisation incrémentielle des opérations DML, la synchronisation incrémentielle des opérations DDL et la vérification complète.

  • La tâche avant n'est pas prise en charge dans les scénarios d'agrégation de bases de données ou de tables. Par exemple, elle n'est pas prise en charge pour l'agrégation de tables des sources a et b vers la cible c.

  • N'effectuez pas d'opérations DDL modifiant les schémas de base de données ou de tables lors de la migration de schéma ou de la migration complète. Sinon, la tâche pourrait échouer.

  • Ne spécifiez pas de table de transaction pour les règles d'exclusion d'objets lorsque vous sélectionnez les objets de migration à l'aide de l'option Match Rules.

Tâche arrière

  • Vous pouvez configurer une tâche arrière uniquement lorsque la tâche avant est en phase de synchronisation incrémentielle et à l'état Running.

  • La tâche arrière prend uniquement en charge la synchronisation incrémentielle des opérations DML.

  • Vous ne pouvez pas modifier les objets de synchronisation lors de la configuration d'une tâche arrière. Par défaut, les objets de synchronisation spécifiés dans la tâche avant sont utilisés.

Autres considérations

  • Si la tâche de synchronisation bidirectionnelle implique une table sans clé primaire ou clé unique non nulle, des données en double peuvent apparaître dans la base de données ou la table correspondante au niveau de la cible lors de la synchronisation.

  • La tâche de synchronisation bidirectionnelle crée une base de données ou un schéma nommé OMS dans la base de données MySQL ou Oracle et crée une table de transaction dans la base de données ou le schéma OMS pour éviter la synchronisation cyclique des données. N'effectuez pas d'opérations DML ou DDL sur la table de transaction pendant l'exécution de la tâche.

Scénarios de conflit de données

Pour garantir la cohérence des données dans la synchronisation bidirectionnelle, assurez-vous que les opérations de données sur la même clé primaire ou clé unique non nulle sont effectuées uniquement sur la source ou la cible. Si les données sont mises à jour simultanément sur la source et la cible, des conflits de données peuvent survenir, y compris les scénarios suivants.

  • Conflit de clé unique dans les opérations INSERT

    Si une application exécute des opérations INSERT sur la même clé unique sur la source et la cible à peu près au même moment, l'opération INSERT sur la cible échoue en raison de la contrainte UNIQUE lors de la synchronisation vers la cible. Vous pouvez configurer la tâche pour ignorer les données conflictuelles ou écraser les données sur la cible.

  • Conflit de clé unique dans les opérations UPDATE

    • Si les données à mettre à jour par une opération UPDATE existent déjà sur la cible, les données sur la cible sont écrasées par les données de la source.

    • Si les données à mettre à jour par une opération UPDATE n'existent pas sur la cible, l'opération UPDATE échoue.

    • Si une opération UPDATE entraîne un conflit de clé primaire ou de clé unique sur la cible, l'opération UPDATE échoue.

  • Conflit de clé unique dans les opérations DELETE

    • Si les données à supprimer par une opération DELETE n'existent pas, l'opération DELETE échoue.

Procédure

Configurer une tâche avant

  1. Configurez une tâche de migration de données comme indiqué pour passer à l'étape Select Migration Type, et définissez Synchronous Topology sur Bidirectional Synchronization.

    Pour plus d'informations, consultez les rubriques relatives aux types correspondants de migration de données.

    image

  2. Sur la page Select Migration Type, spécifiez les types de migration pour la tâche de migration de données.

    La synchronisation bidirectionnelle prend en charge les types de migration suivants : Schema Migration, Full Migration, Incremental synchronization et Full Verification.

    image

    Type de migration

    Description

    Migration de schéma

    Après le démarrage d'une tâche de migration de schéma, le service de transmission de données migre les définitions des objets de base de données, tels que les tables, les index, les contraintes, les commentaires et les vues, de la base de données source vers la base de données cible et filtre automatiquement les tables temporaires.

    Migration complète

    Après le démarrage d'une tâche de migration complète, le service de transmission de données migre les données existantes des tables de la base de données source vers les tables correspondantes de la base de données cible.

    Synchronisation incrémentielle

    Après le démarrage d'une tâche de synchronisation incrémentielle, le service de transmission de données synchronise les données modifiées (données ajoutées, modifiées ou supprimées) de la base de données source vers les tables correspondantes de la base de données cible.

    Les options pour Incremental Synchronization sont DML Synchronization et DDL Synchronization. Vous pouvez sélectionner les options selon vos besoins. Pour plus d'informations, consultez Configurer la synchronisation DDL/DML.

    Remarque
    • Dans la synchronisation bidirectionnelle, l'option DML Synchronization doit être sélectionnée.

    • Dans la synchronisation bidirectionnelle, la synchronisation DDL est prise en charge uniquement pour la tâche avant.

    Vérification complète

    Une fois les tâches de migration complète et de synchronisation incrémentielle terminées, le service de transmission de données lance automatiquement une tâche de vérification complète pour vérifier les tables des bases de données source et cible.

  3. Cliquez sur Next. Sur la page Select Migration Objects, sélectionnez les objets pour la tâche de migration de données.

    Vous pouvez sélectionner les objets de migration à l'aide de deux méthodes : Specify Objects et Matching Rules. Cette rubrique décrit comment sélectionner les objets de migration à l'aide de la méthode Specify Objects. Pour plus d'informations sur la configuration des règles de correspondance, consultez Configurer et modifier les règles de correspondance.

    Important
    • Les noms des tables à migrer et des colonnes de ces tables ne doivent pas contenir de caractères chinois.

    • Si un nom de base de données ou de table contient les caractères « $$ », la création de la tâche de migration de données peut échouer.

    • Si vous sélectionnez DDL Synchronization à l'étape Select Migration Type, nous vous recommandons d'utiliser les règles de correspondance pour sélectionner les objets de migration. Cela garantit que tous les nouveaux objets correspondant aux règles sont synchronisés. Si vous sélectionnez les objets individuellement, les nouveaux objets ou les objets renommés ne seront pas synchronisés.

    image.png

    1. Dans la section Select Migration Objects, sélectionnez Specify Objects.

    2. Dans la zone Select Migration Scope, dans la liste Source Objects, sélectionnez les objets à migrer. Vous pouvez sélectionner des tables et des vues d'une ou plusieurs bases de données à migrer.

    3. Cliquez sur > pour les ajouter à la liste Destination Objects.

    Data Transmission Service vous permet d'importer des objets à partir de fichiers texte. Il vous permet également de renommer les objets de destination, de définir des filtres de lignes, d'afficher les informations de colonnes et de supprimer un objet unique ou tous les objets.

    Remarque

    Lorsque vous sélectionnez les objets de migration à l'aide de la méthode Matching Rules, la syntaxe de la règle de correspondance remplace la fonctionnalité de renommage, et la section Actions est limitée à la définition des conditions de filtrage. Pour plus d'informations, consultez Configurer et modifier les règles de correspondance.

    Opération

    Description

    Importer un objet

    1. Dans la liste à droite de la zone de sélection, cliquez sur Import Object dans le coin supérieur droit.

    2. Dans la boîte de dialogue qui s'affiche, cliquez sur OK.

      Important

      L'opération d'importation remplace les sélections précédentes. Procédez avec prudence.

    3. Dans la boîte de dialogue Import Migration Objects, importez les objets à migrer.

      Vous pouvez importer un fichier CSV pour renommer les tables de base de données, définir des conditions de filtrage de lignes et effectuer d'autres opérations. Pour plus d'informations, consultez Télécharger et importer les configurations d'objets de migration.

    4. Cliquez sur Check Validity.

      Après avoir importé les objets de migration, vérifiez d'abord leur validité. Le mappage des champs de colonne n'est pas actuellement pris en charge.

    5. Une fois la vérification réussie, cliquez sur OK.

    Renommer

    Data Transmission Service vous permet de renommer les objets de migration. Pour plus d'informations, consultez Renommer les objets de base de données et de table.

    Paramètres

    Data Transmission Service prend en charge le filtrage des lignes à l'aide des conditions WHERE. Pour plus d'informations, consultez Filtrer les données avec des conditions SQL.

    Vous pouvez également afficher les informations de colonne des objets de migration dans la zone View Columns.

    Supprimer/Supprimer tout

    Data Transmission Service vous permet de supprimer un ou plusieurs objets temporairement sélectionnés pour la destination lors du mappage des données.

    • Supprimer un seul objet de migration

      Dans la liste à droite de la zone de sélection, survolez l'objet cible et cliquez sur le bouton Remove qui s'affiche pour supprimer l'objet de migration.

    • Supprimer tous les objets de migration

      Dans la liste à droite de la zone de sélection, cliquez sur Remove All dans le coin supérieur droit. Dans la boîte de dialogue qui s'affiche, cliquez sur OK pour supprimer tous les objets de migration.

  4. Cliquez sur Next. Sur la page Migration Options, configurez les paramètres.

    • Migration complète

      Le tableau suivant décrit les paramètres de migration complète, qui s'affichent uniquement si vous avez sélectionné Bidirectional Synchronization et Full Migration sur la page Select Migration Type.

      image

      Paramètre

      Description

      Read Concurrency

      La concurrence pour la lecture des données depuis la source lors de la migration complète. La valeur maximale est 512. Une concurrence de lecture élevée peut exercer une pression excessive sur la source, affectant l'activité.

      Write Concurrency

      La concurrence pour l'écriture des données vers la cible lors de la migration complète. La valeur maximale est 512. Une concurrence d'écriture élevée peut exercer une pression excessive sur la cible, affectant l'activité.

      Full Migration Rate Limit

      Vous pouvez choisir de limiter ou non le débit de migration complète selon vos besoins. Si vous choisissez de limiter le débit de migration complète, vous devez spécifier les enregistrements par seconde (RPS) et les octets par seconde (BPS). Le RPS spécifie le nombre maximal de lignes de données migrées vers la cible par seconde lors de la migration complète, et le BPS spécifie la quantité maximale de données en octets migrées vers la cible par seconde lors de la migration complète.

      Remarque

      Les valeurs RPS et BPS spécifiées ici servent uniquement au throttling. Les performances réelles de migration complète dépendent de facteurs tels que les paramètres de la source et de la cible et les spécifications de l'instance.

      Handle Non-empty Tables in Target Database

      Les valeurs valides sont Ignore et Stop Migration.

      • Si vous sélectionnez Ignore, lorsque les données à insérer entrent en conflit avec les données existantes d'une table cible, le service de transmission de données journalise les données conflictuelles tout en conservant les données existantes.

        Important

        Si vous sélectionnez Ignore, les données sont extraites en mode IN lors de la vérification complète. Dans ce cas, la vérification est inapplicable si la cible contient des données qui n'existent pas dans la source, et les performances de vérification sont dégradées.

      • Si vous sélectionnez Stop Migration et qu'une table cible contient des enregistrements, une erreur indiquant que la migration n'est pas prise en charge est signalée lors de la migration complète. Dans ce cas, vous devez traiter les données de la table cible avant de poursuivre la migration.

        Important

        Si vous cliquez sur Resume dans la boîte de dialogue signalant l'erreur, le service de transmission de données ignore cette erreur et continue de migrer les données. Procédez avec prudence.

      Post-Indexing

      Spécifie s'il faut créer des index après la fin de la migration complète. Le post-indexing peut réduire le temps requis pour la migration complète. Pour plus d'informations sur les considérations relatives au post-indexing, consultez la description ci-dessous.

      Important
      • Ce paramètre s'affiche uniquement si vous avez sélectionné à la fois Schema Migration et Full Migration sur la page Select Migration Type.

      • Seuls les index de clés non uniques peuvent être créés après la migration.

      • Si la base de données OceanBase cible renvoie l'erreur suivante lors de la création d'index, le service de transmission de données ignore l'erreur et considère que l'index a été créé avec succès, sans le recréer.

        • Message d'erreur dans une base de données OceanBase en mode compatible MySQL : Duplicate key name.

        • Message d'erreur dans une base de données OceanBase en mode compatible Oracle : name is already used by an existing object.

      Si vous sélectionnez Allow, définissez les paramètres suivants :

      • DDL Concurrency for Single Index : le nombre maximal d'opérations DDL concurrentes autorisées pour un seul index. Une valeur plus élevée indique une consommation de ressources plus importante et une migration de données plus rapide.

      • Maximum DDL Concurrency for Indexes : le nombre maximal d'opérations DDL de post-indexing que le système peut appeler à la fois.

      Si le post-indexing est autorisé, nous vous recommandons d'utiliser un client CLI pour modifier les paramètres suivants pour les locataires professionnels en fonction des conditions matérielles d'OceanBase Database et de votre trafic professionnel actuel :

      // Specify the limit on the file memory buffer size.
      alter system set _temporary_file_io_area_size = '10' tenant = 'xxx'; 
      // Disable throttling in OceanBase Database V4.x.
      alter system set sys_bkgd_net_percentage = 100;  
    • Synchronisation incrémentielle

      Le tableau suivant décrit les paramètres de synchronisation incrémentielle, qui s'affichent uniquement si vous avez sélectionné Bidirectional Synchronization et Incremental Synchronization sur la page Select Migration Type.

      image

      Paramètre

      Description

      Write Concurrency

      La concurrence pour l'écriture des données vers la cible lors de la synchronisation incrémentielle. La valeur maximale est 512. Une concurrence d'écriture élevée peut exercer une pression excessive sur la cible, affectant l'activité.

      Incremental Synchronization Rate Limit

      Vous pouvez choisir de limiter ou non le débit de synchronisation incrémentielle selon vos besoins. Si vous choisissez de limiter le débit de synchronisation incrémentielle, vous devez spécifier les enregistrements par seconde (RPS) et les octets par seconde (BPS). Le RPS spécifie le nombre maximal de lignes de données synchronisées vers la cible par seconde lors de la synchronisation incrémentielle, et le BPS spécifie la quantité maximale de données en octets synchronisées vers la cible par seconde lors de la synchronisation incrémentielle.

      Remarque

      Les valeurs RPS et BPS spécifiées ici servent uniquement au throttling. Les performances réelles de synchronisation incrémentielle dépendent de facteurs tels que les paramètres de la source et de la cible et les spécifications de l'instance.

      Data Conflict Handling Strategy

      Les valeurs valides sont Ignore errors and keep the original data on the target et Ignore conflicts, use source data to overwrite target data. Pour plus d'informations, consultez la section « Scénarios de conflit de données » de cette rubrique.

  5. Cliquez sur Precheck pour effectuer une pré-vérification de la tâche de migration de données.

    À l'étape Precheck, Data Transmission Service vérifie si les éléments répondent aux exigences, telles que les autorisations de lecture et d'écriture de l'utilisateur de la base de données et la connectivité réseau de la base de données. Vous ne pouvez démarrer la tâche de migration de données qu'après la réussite de tous les éléments de vérification. Si la pré-vérification échoue :

    • Identifiez et résolvez le problème, puis relancez la pré-vérification jusqu'à ce qu'elle réussisse.

    • Vous pouvez également cliquer sur Skip dans la colonne Actions pour un élément de pré-vérification ayant échoué. Une boîte de dialogue s'affiche décrivant l'impact du saut de cette opération. Pour continuer, cliquez sur OK.

  6. Une fois la pré-vérification réussie, cliquez sur Start Task pour démarrer la tâche avant.

Configurer une tâche arrière

  1. Accédez à la page Migration Tasks. Attendez que la tâche avant soit en phase de synchronisation incrémentielle et à l'état Running. Ensuite, cliquez sur Configuration pour la tâche arrière.

    image

  2. Dans la boîte de dialogue Configure Reverse Tasks, configurez les paramètres.

    image

    Paramètre

    Description

    Task Instance

    Sélectionnez une instance de tâche disponible dans la liste déroulante pour configurer la tâche arrière. Si aucune instance de tâche n'est disponible, achetez-en une. Pour plus d'informations, consultez Acheter une tâche de migration de données.

    Write Concurrency

    La concurrence pour l'écriture des données vers la cible lors de la migration complète. La valeur maximale est 512. Une concurrence d'écriture élevée peut exercer une pression excessive sur la cible, affectant l'activité.

    Incremental Synchronization Rate Limit

    Vous pouvez choisir de limiter ou non le débit de synchronisation incrémentielle selon vos besoins.

    Data Conflict Handling Strategy

    Les valeurs valides sont Ignore errors and keep the original data on the target et Ignore conflicts, use source data to overwrite target data.

  3. Cliquez sur Precheck. Le système effectue une pré-vérification de la tâche arrière.

  4. Une fois la pré-vérification réussie, cliquez sur Start Task pour démarrer la tâche arrière.