Tous les produits
Search
Centre de documentation

ApsaraDB for OceanBase (Deprecated):Synchroniser des données entre bases de données OceanBase en modes de compatibilité différents

Dernière mise à jour :Aug 09, 2026

Cette rubrique explique comment synchroniser des données d'une base de données OceanBase en mode de compatibilité MySQL vers une base de données OceanBase en mode de compatibilité Oracle, ou inversement.

Prérequis

Limites

Le service de transmission de données prend uniquement en charge les objets dont les noms de base de données, de table et de colonne utilisent des caractères ASCII. Ces noms ne doivent pas contenir de caractères spéciaux, tels que des sauts de ligne, des espaces ou l'un des caractères suivants : .|"'()=;/&\`.

Considérations

  • Si les horloges des nœuds ou celles du client et du serveur ne sont pas synchronisées, la latence peut être imprécise lors de la synchronisation incrémentielle.

    Par exemple, si l'horloge est en avance par rapport à l'heure standard, la latence peut être négative. Si l'horloge est en retard par rapport à l'heure standard, la latence peut être positive.

  • Si vous sélectionnez uniquement Incremental Synchronization lors de la création de la tâche de synchronisation des données, le service de transmission de données exige que les journaux incrémentiels locaux de la base de données source soient conservés pendant au moins 48 heures.

    Si vous sélectionnez Full Synchronization et Incremental Synchronization lors de la création de la tâche de synchronisation des données, le service de transmission de données exige que les journaux incrémentiels locaux de la base de données source soient conservés pendant au moins sept jours. Dans le cas contraire, la tâche de synchronisation des données peut échouer ou les données sources et cibles peuvent devenir incohérentes, car le service de transmission de données ne peut pas obtenir les journaux incrémentiels.

  • Si la source ou la cible contient des objets de table qui ne diffèrent que par la casse, les résultats de la synchronisation des données peuvent ne pas être conformes aux attentes en raison de l'insensibilité à la casse de la source ou de la cible.

  • Sensibilité à la casse

    • Lorsque vous synchronisez des données d'une base de données OceanBase en mode de compatibilité MySQL vers une base de données OceanBase en mode de compatibilité Oracle, le nom de la table cible et les noms des colonnes de la table sont convertis en majuscules.

    • Lorsque vous synchronisez des données d'une base de données OceanBase en mode de compatibilité Oracle vers une base de données OceanBase en mode de compatibilité MySQL, le nom de la table cible et les noms des colonnes de la table sont convertis en minuscules.

  • Lorsque vous synchronisez des données d'une base de données OceanBase en mode de compatibilité MySQL vers une base de données OceanBase en mode de compatibilité Oracle, une perte de données peut se produire si une colonne avec une contrainte UNIQUE autorise les valeurs NULL. Plus précisément, si une colonne contenant plusieurs valeurs NULL existe dans la base de données source, seule la première valeur NULL de la colonne est synchronisée avec succès et les valeurs NULL suivantes sont ignorées en raison de la violation de la contrainte UNIQUE.

Types d'instances source et cible pris en charge

|
**Source**
|
**Cible**
| | --- | --- | |
OB_MySQL (instance de cluster OceanBase)
|
OB_Oracle (instance de cluster OceanBase)
| |
OB_MySQL (instance de cluster OceanBase)
|
OB_Oracle (base de données gérée par l'utilisateur dans un VPC)
| |
OB_MySQL (base de données gérée par l'utilisateur dans un VPC)
|
OB_Oracle (instance de cluster OceanBase)
| |
OB_MySQL (base de données gérée par l'utilisateur dans un VPC)
|
OB_Oracle (base de données gérée par l'utilisateur dans un VPC)
| |
OB_Oracle (instance de cluster OceanBase)
|
OB_MySQL (instance de cluster OceanBase)
| |
OB_Oracle (instance de cluster OceanBase)
|
OB_MySQL (base de données gérée par l'utilisateur dans un VPC)
| |
OB_Oracle (base de données gérée par l'utilisateur dans un VPC)
|
OB_MySQL (instance de cluster OceanBase)
| |
OB_Oracle (base de données gérée par l'utilisateur dans un VPC)
|
OB_MySQL (base de données gérée par l'utilisateur dans un VPC)
|



































Mappages de types de données

Mappage de OB_MySQL vers OB_Oracle

OB_MySQL

OB_Oracle

INT

NUMBER(10,0)

TINYINT

NUMBER(3,0)

SMALLINT

NUMBER(5,0)

DECIMAL(p,s)

NUMBER(p,s)

NUMERIC(p,s)

NUMBER(p,s)

FLOAT(10,2)

BINARY_FLOAT

DOUBLE(10,2)

BINARY_DOUBLE

BIT(1)

BIT(n)

BIT(64)

RAW(1)

RAW(n/8+1)

RAW(9)

MEDIUMINT

NUMBER(7,0)

BIGINT

NUMBER(19,0)

TIMESTAMP

TIMESTAMP

TIME

TIMESTAMP(0)

TIME(n)

TIMESTAMP(n)

DATE

DATE

DATETIME

TIMESTAMP

YEAR

NUMBER(4)

VARCHAR(n)

VARCHAR2(n)

n=information_schema. CHARACTER_OCTET_LENGTH

CHAR(n)

CHAR(n)

n=information_schema. CHARACTER_OCTET_LENGTH

BINARY(n)

RAW(n)

VARBINARY(n)

(n <= 2000) RAW(n)

(n > 2000) BLOB

TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB

BLOB

TINYTEXT/TEXT/MEDIUMTEXT/LONGTEXT

CLOB

ENUM/SET

VARCHAR2(32767)

JSON

  • Versions antérieures à la V4.1.0 : CLOB

  • Version V4.1.0 et ultérieure : JSON

Mappage de OB_Oracle vers OB_MySQL

Le tableau suivant prend pour exemple OceanBase Database V4.2.0 en mode de compatibilité Oracle.

|
**OB_Oracle**
|
**OB_MySQL**
| | --- | --- | |
CHAR(n CHAR)
|
VARCHAR(n)
| |
CHAR(n BYTE)
|
CHAR(n)
| |
NCHAR(n)
|
VARCHAR(n)
| |
VARCHAR2(n)
|
VARCHAR(n)
| |
NVARCHAR2(n)
|
VARCHAR(n)
| |
NVARCHAR2(n BYTE)
|
VARCHAR(n)
| |
NUMBER(n)
|
NUMERIC(n)
| |
NUMBER(p, s)
|
DECIMAL(p, s)/NUMERIC(p, s)
| |
RAW
|
VARBINARY
| |
CLOB
|
LONGTEXT
| |
BLOB
|
LONGBLOB
| |
FLOAT(n)
|
DOUBLE (n)
| |
BINARY_FLOAT
|
DOUBLE
| |
BINARY_DOUBLE
|
DOUBLE
| |
DATE
|
DATETIME
| |
TIMESTAMP
|
DATETIME(n)
| |
TIMESTAMP WITH TIME ZONE
|
VARCHAR(50)
| |
TIMESTAMP WITH LOCAL TIME ZONE
|
TIMESTAMP
| |
INTERVAL YEAR(p) TO MONTH
|
VARCHAR(50)
| |
INTERVAL DAY(p) TO SECOND
|
VARCHAR(50)
| |
ROWID
|
CHAR(18)
| |
UROWID(n)
|
VARCHAR(18)
| |
JSON
|
JSON
|































































































Procédure

  1. Connectez-vous à la console de gestion OceanBase et achetez une tâche de synchronisation de données.

    Pour plus d'informations, consultez la section Acheter une tâche de synchronisation de données.

  2. Dans la console Data Transmission Service, accédez à la page Data Synchronization, localisez la nouvelle tâche de synchronisation et cliquez sur Configure.

    image.png

    Si vous souhaitez réutiliser les configurations d'une tâche existante, cliquez sur Reuse Configuration. Pour plus d'informations, consultez la section Réutiliser et effacer les configurations d'une tâche de synchronisation de données.

  3. Sur la page Select Source and Target, configurez les paramètres.

    Paramètre

    Description

    Nom de la tâche de synchronisation

    Nous vous recommandons d'utiliser une combinaison de chiffres et de lettres. Le nom ne doit contenir aucun espace et ne peut pas dépasser 64 caractères.

    Source

    Si vous avez déjà créé une source de données OceanBase, sélectionnez une source de données OceanBase en mode de compatibilité MySQL ou Oracle dans la liste déroulante selon vos besoins. Sinon, cliquez sur New Data Source dans la liste déroulante et créez-en une dans la boîte de dialogue qui s'affiche à droite. Pour plus d'informations sur les paramètres, consultez la section Créer une source de données OceanBase.

    Cible

    Si vous avez déjà créé une source de données OceanBase :

    • Sélectionnez une source de données OceanBase en mode de compatibilité Oracle dans la liste déroulante si la source est une source de données OceanBase en mode de compatibilité MySQL.

    • Sélectionnez une source de données OceanBase en mode de compatibilité MySQL dans la liste déroulante si la source est une source de données OceanBase en mode de compatibilité Oracle.

    Sinon, cliquez sur New Data Source dans la liste déroulante et créez-en une dans la boîte de dialogue qui s'affiche à droite.

    Tag (facultatif)

    Sélectionnez un tag cible dans la liste déroulante. Vous pouvez également cliquer sur Manage Tags pour créer, modifier et supprimer des tags. Pour plus d'informations, consultez la section Utiliser des tags pour gérer les tâches de synchronisation de données.

  4. Cliquez sur Next. Sur la page Select Synchronization Types, sélectionnez les types de synchronisation.

    image

    Les types de synchronisation incluent Structure Synchronization, Full Synchronization et Incremental Synchronization. Incremental Synchronization comprend DML Synchronization (incluant INSERT, DELETE et UPDATE) et DDL Synchronization. Sélectionnez les types selon vos besoins. Pour plus d'informations, consultez les sections Personnaliser DDL/DML et Portée de la synchronisation DDL.

  5. Cliquez sur Next. Sur la page Select Sync Objects, sélectionnez les objets à synchroniser.

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

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

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

    • Si vous avez sélectionné DDL Synchronization à l'étape Select Sync Type, utilisez des règles de correspondance pour sélectionner les objets à synchroniser. Cela garantit que tous les nouveaux objets correspondant aux règles sont inclus dans la synchronisation. Si vous spécifiez directement des objets au lieu d'utiliser des règles, les nouveaux objets ou les objets renommés ne seront pas synchronisés.

    image.png

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

    2. Dans la section Select Sync Scope, sélectionnez les objets à synchroniser dans la liste Source Objects. Vous pouvez sélectionner des tables d'une ou plusieurs bases de données comme objets de synchronisation.

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

    Le service de transmission de données vous permet d'importer des objets depuis un fichier texte. Vous pouvez également renommer les objets de destination, définir des filtres de lignes et supprimer un objet unique ou tous les objets.

    Remarque

    Lorsque vous utilisez Matching Rules pour sélectionner des objets à synchroniser, la syntaxe des règles de correspondance gère le renommage des objets. Vous pouvez uniquement définir des conditions de filtrage, sélectionner des colonnes de shard et sélectionner des colonnes à synchroniser. Pour plus d'informations, consultez la section Configurer et modifier les règles de correspondance.

    Opération

    Description

    Importer des objets

    1. Dans la liste de droite, cliquez sur Import Objects dans le coin supérieur droit.

    2. Dans la boîte de dialogue, cliquez sur OK.

      Important

      L'importation écrasera les sélections précédentes. Procédez avec prudence.

    3. Dans la boîte de dialogue Import Sync Objects, importez les objets à synchroniser. Vous pouvez importer un fichier CSV pour renommer les tables de base de données, définir des conditions de filtre de lignes et effectuer d'autres opérations. Pour plus d'informations, consultez la section Télécharger et importer les configurations des objets de synchronisation.

    4. Cliquez sur Check Validity.

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

    Renommer

    Le service de transmission de données vous permet de renommer les objets de synchronisation. Pour plus d'informations, consultez la section Renommer les objets de base de données et de table.

    Paramètres

    Le service de transmission de données prend en charge le filtrage des lignes avec une clause WHERE. Pour plus d'informations, consultez la section Filtrer les données avec des conditions SQL.

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

    Supprimer/Supprimer tout

    Le service de transmission de données 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 synchronisation

      Dans la liste de droite, placez le curseur sur l'objet cible et cliquez sur l'icône Remove qui apparaît. Cela supprime l'objet de synchronisation.

    • Supprimer tous les objets de synchronisation

      Dans la liste de droite, cliquez sur Remove All dans le coin supérieur droit. Dans la boîte de dialogue, cliquez sur OK pour supprimer tous les objets de synchronisation.

  6. Cliquez sur Next. Sur la page Synchronization Options, configurez les paramètres.

    • Synchronisation complète

      Les paramètres suivants s'affichent uniquement si vous sélectionnez Full Synchronization sur la page Choose Sync Type.

      image

      Paramètre

      Description

      Concurrence en lecture

      Ce paramètre spécifie le nombre de threads simultanés pour la lecture des données depuis la source lors de la synchronisation complète. La valeur maximale est 512. Une concurrence élevée peut augmenter la charge sur la base de données source et affecter votre activité.

      Concurrence en écriture

      Ce paramètre spécifie le nombre de threads simultanés pour l'écriture des données dans la destination lors de la synchronisation complète. La valeur maximale est 512. Une concurrence élevée peut augmenter la charge sur la base de données de destination et affecter votre activité.

      Limite de débit de synchronisation complète

      Vous pouvez activer la limite de débit de synchronisation complète selon vos besoins. Si vous l'activez, définissez les valeurs RPS et BPS. RPS représente le nombre maximal de lignes de données pouvant être synchronisées vers la destination par seconde lors de la synchronisation complète. BPS représente le volume maximal de données pouvant être synchronisé vers la destination par seconde lors de la synchronisation complète.

      Remarque

      Les paramètres RPS et BPS servent uniquement de capacité de limitation de débit. Les performances réelles de la synchronisation complète sont affectées par des facteurs tels que la source, la destination et les spécifications de l'instance.

      Stratégie pour les enregistrements existants dans la table de destination

      • Sélectionnez Ignore : Si des données existent dans la table de destination et qu'un conflit survient entre les données existantes et les données en cours d'écriture, le service de transmission de données enregistre le conflit et conserve les données existantes.

        Important

        Si vous sélectionnez Ignore, la validation complète extrait les données en mode IN. Ce mode ne peut pas valider les scénarios où des données supplémentaires existent dans la destination, et les performances de validation sont quelque peu dégradées.

      • Sélectionnez la valeur par défaut Stop Migration : Si des données existent dans la table de destination, une erreur est signalée pour la migration complète. Vous devez traiter les données dans la destination avant de pouvoir poursuivre la migration.

        Important

        Si une erreur se produit et que vous cliquez sur Resume, le service de transmission de données ignore ce paramètre et continue à migrer les données de la table. Procédez avec prudence.

    • Synchronisation incrémentielle

      Les paramètres suivants s'affichent uniquement si vous sélectionnez Incremental Synchronization sur la page Choose Synchronization Types.

      image

      Paramètre

      Description

      Concurrence en écriture

      Ce paramètre spécifie le nombre de threads simultanés pour l'écriture des données dans la destination lors de la synchronisation incrémentielle. La valeur maximale est 512. Une concurrence élevée peut exercer une pression excessive sur la destination et affecter votre activité.

      Limite de débit de synchronisation incrémentielle

      Vous pouvez décider d'activer ou non la limite de débit de synchronisation incrémentielle selon vos besoins. Si vous l'activez, définissez les valeurs RPS (nombre maximal de lignes de données pouvant être synchronisées vers la destination par seconde lors de la synchronisation incrémentielle) et BPS (volume maximal de données pouvant être synchronisé vers la destination par seconde lors de la synchronisation incrémentielle).

      Remarque

      Les valeurs RPS et BPS définies ici servent uniquement à la limitation de débit. Les performances réelles de la synchronisation incrémentielle sont affectées par des facteurs tels que la source, la destination et les spécifications de l'instance.

      Décalage de début de synchronisation incrémentielle

      • Si vous sélectionnez Full Synchronization lors de la sélection du type de synchronisation, vous ne pouvez pas modifier ce paramètre.

      • Si vous ne sélectionnez pas Full Synchronization mais que vous sélectionnez Incremental Synchronization lors de la sélection du type de synchronisation, spécifiez un point dans le temps à partir duquel vous souhaitez synchroniser les données. La valeur par défaut est l'heure système actuelle. Pour plus d'informations, consultez la section Définir le décalage de début pour la synchronisation incrémentielle.

    • Paramètres avancés

      image

      Paramètre

      Description

      Type de stockage de la table cible

      Cette section s'affiche uniquement si la cible est OceanBase Database V4.3.0 ou ultérieure et que vous avez sélectionné Schema Synchronization ou sélectionné DDL synchronization pour Incremental Synchronization sur la page Select Synchronization Type.

      Ce paramètre spécifie le type de stockage pour les objets de table cible lors de la synchronisation de schéma ou de la synchronisation incrémentielle. Les types de stockage pris en charge pour les objets de table cible sont Default, Row storage, Column storage et Hybrid columnar storage. Pour plus d'informations, consultez la section default_table_store_format.

      Ce paramètre spécifie le type de stockage pour les objets de table cible lors de la synchronisation de schéma ou de la synchronisation incrémentielle. Les types de stockage pris en charge pour les objets de table cible sont Default, Row storage, Column storage et Hybrid columnar storage. Pour plus d'informations, consultez la section default_table_store_format.

      Remarque

      La valeur Default signifie que les autres paramètres sont automatiquement définis en fonction des configurations de paramètres de la cible. Les objets de table dans la synchronisation de schéma ou les nouveaux objets de table dans la synchronisation DDL incrémentielle sont écrits dans les schémas correspondants en fonction du type de stockage spécifié.

      Ajouter des colonnes masquées pour les tables sans clés uniques non nulles

      Ce paramètre s'affiche uniquement si vous avez sélectionné Schema Synchronization ou sélectionné DDL synchronization pour Incremental Synchronization sur la page Select Synchronization Type lors de la création d'une tâche qui synchronise des données entre des bases de données OceanBase de modes de compatibilité différents. Pour plus d'informations, consultez la section Mécanisme de colonne masquée du service de transmission de données.

  7. Cliquez sur Precheck.

    Pendant la pré-vérification, le service de transmission de données vérifie les privilèges de lecture et d'écriture des utilisateurs de base de données ainsi que la connectivité réseau des bases de données. Une tâche de synchronisation de données ne peut être démarrée qu'après avoir réussi tous les éléments de vérification. Si une erreur est renvoyée lors de la pré-vérification, vous pouvez effectuer les opérations suivantes :

    • Identifiez et résolvez le problème, puis effectuez à nouveau la pré-vérification.

    • Cliquez sur Skip dans la colonne Actions de l'élément de pré-vérification ayant échoué. Dans la boîte de dialogue indiquant les conséquences de l'opération, cliquez sur OK.

  8. Une fois la pré-vérification réussie, cliquez sur Start Task.

    Si vous n'avez pas besoin de démarrer la tâche immédiatement, cliquez sur Save. Vous pourrez ensuite démarrer la tâche manuellement sur la page Sync Task List ou l'inclure dans une opération par lot. Pour plus d'informations sur les opérations par lot, consultez la section Effectuer des opérations par lot sur les tâches de synchronisation de données.

    DTS vous permet de modifier les objets de synchronisation pendant l'exécution d'une tâche de synchronisation de données. Pour plus d'informations, consultez la section Afficher et modifier les objets de synchronisation et leurs conditions de filtrage. Après le démarrage de la tâche de synchronisation de données, elle s'exécute en fonction des types de synchronisation sélectionnés. Pour plus d'informations, consultez la section Afficher les détails de la synchronisation.

Si une tâche de synchronisation de données échoue, généralement en raison de problèmes de connexion réseau ou d'un démarrage lent du processus, vous pouvez cliquer sur Resume dans la liste des tâches ou sur la page du produit.

Références