Tous les produits
Search
Centre de documentation

ApsaraDB for OceanBase (Deprecated):Migrate data from an Oracle database to an OceanBase Oracle tenant

Dernière mise à jour :Aug 20, 2026

Cette rubrique explique comment utiliser Data Transmission Service (DTS) pour migrer des données d'une base de données Oracle vers un locataire OceanBase Oracle.

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 durée de conservation 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.

Prérequis

  • Data Transmission Service (DTS) dispose des autorisations requises pour accéder aux ressources cloud. Pour plus d'informations, consultez la section Autoriser DTS à effectuer la migration de données.

  • Vous avez créé des utilisateurs de base de données dédiés pour la migration des données dans la base de données source Oracle et le locataire de destination OceanBase Oracle, et vous leur avez accordé les autorisations nécessaires. Pour plus d'informations, consultez la section Créer des utilisateurs de base de données.

  • Vous avez créé la base de données correspondante dans le locataire OceanBase Oracle de destination. La fonctionnalité de migration de données d'OceanBase prend en charge la migration des tables et des colonnes, mais pas celle des bases de données. Par conséquent, vous devez créer la base de données dans le locataire de destination au préalable.

  • Avant la réplication des données incrémentielles, l'instance source Oracle doit avoir Archive Log activé et un basculement de LogFile doit s'être produit.

  • L'instance source Oracle doit avoir l'outil LogMiner installé et activé.

    L'outil LogMiner vous permet d'obtenir le contenu des fichiers journaux redo archivés d'Oracle.

  • Confirmez que la journalisation supplémentaire au niveau de la base de données ou de la table est activée pour l'instance Oracle.

  • L'activation de la journalisation supplémentaire au niveau de la base de données pour les clés primaires (PK) et les clés uniques (UK) peut exercer une pression sur LogMiner Reader et la base de données Oracle. Cela s'explique par le fait que les tables qui ne nécessitent pas de synchronisation génèrent de nombreux journaux inutiles. Pour cette raison, DTS prend uniquement en charge l'activation de la journalisation supplémentaire au niveau de la table pour les PK et les UK. Toutefois, si vous configurez un filtrage ETL (extract, transform, load) sur des colonnes autres que les PK ou les UK, vous devez activer la journalisation supplémentaire pour ces colonnes ou pour toutes les colonnes.

  • Vous devez synchroniser les horloges entre la machine Oracle et la machine de transmission de données, par exemple en configurant un service NTP. Sinon, vos données peuvent être exposées à des risques. Si vous utilisez Oracle RAC, vous devez également synchroniser les horloges entre les multiples instances Oracle.

Limites

  • Limites des opérations sur la base de données source

    N'effectuez pas d'opérations DDL modifiant la structure de la base de données ou des tables pendant la migration du schéma et la migration complète. Cela pourrait interrompre la tâche de migration de données.

  • DTS prend en charge les versions 10G, 11G, 12C, 18C et 19C d'Oracle Database. Les versions 12C et ultérieures incluent Container Database (CDB) et Pluggable Database (PDB).

  • DTS prend uniquement en charge la migration des tables et des vues standard.

  • DTS prend uniquement en charge la migration d'objets dont les noms de base de données, de table et de colonne utilisent des caractères ASCII et ne contiennent pas de caractères spéciaux. Les caractères spéciaux incluent les sauts de ligne, les espaces et des caractères tels que .|"'`()=;/&\.

  • DTS ne prend pas en charge les déclencheurs au niveau de la destination. La présence de déclencheurs au niveau de la destination peut entraîner l'échec de la migration des données.

  • DTS ne prend pas en charge la migration des tables organisées par index (IOT) depuis les bases de données Oracle. Une telle opération interrompt la tâche de migration de données.

  • Limites des types de données

    • La synchronisation incrémentielle des données n'est pas prise en charge pour les tables dont toutes les colonnes sont de types LOB tels que BLOB, CLOB ou NCLOB.

    • Pour les tables sans clé primaire contenant des champs de type LOB, la synchronisation incrémentielle inverse entraînera des problèmes de qualité des données.

  • Les identifiants de source de données et les comptes d'utilisateur doivent être globalement uniques dans le système Data Transmission Service.

  • L'analyse des journaux incrémentiels pour les bases de données Oracle prend en charge un maximum de 5 To par jour.

  • Oracle Database 11G et les versions antérieures ne prennent pas en charge la création d'objets de base de données dont le nom dépasse 30 octets. Lors de l'étape incrémentielle inverse, ne créez pas d'objets de base de données dépassant cette limite dans le locataire OceanBase Oracle.

  • DTS ne prend pas en charge la migration d'objets de base de données, y compris les schémas, les tables et les colonnes, dont le nom dépasse 30 octets depuis Oracle Database 12C et les versions ultérieures. Pour migrer des objets dont le nom dépasse 30 octets, contactez le service d'assistance.

  • DTS ne prend pas en charge certaines commandes UPDATE sur la base de données source Oracle. Voici un exemple de commande UPDATE non prise en charge.

     UPDATE TABLE_NAME SET KEY=KEY+1;

    Dans l'exemple précédent, TABLE_NAME est le nom de la table et KEY est une colonne de type NUMERIC définie comme clé primaire.

  • Le VPC où se trouve la base de données gérée en interne doit être dans la même région que la base de données OceanBase.

Remarques

  • Lorsque vous effectuez une synchronisation incrémentielle pour une base de données Oracle, assurez-vous que chaque objet archivé est inférieur à 2 Go.

  • Conservez les objets archivés Oracle pendant au moins deux jours. Pour récupérer après une augmentation soudaine des données archivées, les objets requis peuvent ne plus être disponibles, ce qui empêche la récupération.

  • Si la base de données source Oracle contient des instructions DML qui échangent des clés primaires, DTS analysera anormalement les journaux, entraînant une perte de données lors de la migration vers la destination. Voici un exemple d'instruction DML échangeant des clés primaires :

    update test set c1=(case when c1=1 then 2 when c1=2 then 1 end) where c1 in (1,2);
  • Le jeu de caractères de l'instance Oracle peut être AL32UTF8, AL16UTF16, ZHS16GBK ou GB18030.

    Si le jeu de caractères source est UTF-8, utilisez un jeu de caractères compatible pour la destination, tel que UTF-8 ou UTF-16. Cela permet d'éviter des problèmes tels que du texte illisible à la destination dus à une incompatibilité des jeux de caractères.

  • Lors de la migration de données d'une base de données Oracle vers un locataire OceanBase Oracle, n'effectuez aucune opération modifiant le ROWID sur une table. De telles opérations incluent l'importation, l'exportation, ALTER TABLE, FLASHBACK TABLE ainsi que le fractionnement ou la fusion de partitions.

    Lorsque des opérations affectant le comportement du ROWID, telles que la mise à jour des clés de partition ou la fusion de partitions, se produisent dans la base de données source Oracle, le locataire OceanBase Oracle de destination ajoute une colonne cachée qui dépend du ROWID. Cela peut entraîner un risque de perte de données.

  • Un décalage d'horloge entre les nœuds, ou entre un terminal client et un serveur, peut entraîner des temps de latence inexacts pour la synchronisation incrémentielle ou la synchronisation incrémentielle inverse.

    Par exemple, si une horloge est en avance sur l'heure standard, la latence peut apparaître comme une valeur négative. Si une horloge est en retard sur l'heure standard, la latence peut sembler plus longue qu'elle ne l'est réellement.

  • En raison de l'utilisation historique de l'heure d'été (DST) en Chine, une différence d'une heure peut exister entre la source et la destination pour le type de données TIMESTAMP(6) WITH TIME ZONE lors de la synchronisation incrémentielle d'une base de données Oracle vers un locataire OceanBase Oracle. Cela peut se produire aux dates de début et de fin de l'heure d'été de 1986 à 1991, ainsi que du 10 au 17 avril 1988.

  • Si la synchronisation DDL n'est pas activée et que vous modifiez un index unique sur la destination, vous devez redémarrer la tâche de migration de données. Sinon, une incohérence des données peut survenir.

  • Si le basculement avant n'est pas activé pour la tâche de migration de données, vous devez supprimer les index uniques et les pseudo-colonnes correspondants de la base de données de destination. Si vous ne les supprimez pas, les données ne peuvent pas être écrites dans la destination et de nouvelles pseudo-colonnes seront générées lors de l'importation des données en aval. Cela provoque des conflits avec les pseudo-colonnes de la base de données source.

    Si le basculement avant est activé pour la tâche de migration de données, DTS supprime automatiquement les colonnes cachées et les index uniques en fonction du type de tâche. Pour plus d'informations, consultez la section Description du mécanisme de colonne cachée dans Data Transmission Service.

  • Pour la synchronisation incrémentielle d'une base de données Oracle vers un locataire OceanBase Oracle, si une nouvelle table sans clé primaire est ajoutée pour la migration, DTS ne supprime pas automatiquement les colonnes cachées et les index uniques ajoutés à la destination. Vous devez les supprimer manuellement avant d'effectuer la migration inverse.

    Vous pouvez consulter le fichier logs/msg/manual_table.log pour identifier les tables sans clés primaires qui ont été ajoutées pendant la phase de synchronisation incrémentielle.

  • Si la source et la destination ont des paramètres d'encodage de caractères différents, la migration du schéma fournit une politique pour étendre la définition de la longueur des champs. Par exemple, la longueur du champ peut être augmentée de 1,5 fois et l'unité de longueur peut passer de BYTE à CHAR.

    Après conversion, les données provenant de différents jeux de caractères dans la source peuvent être migrées avec succès vers la destination. Toutefois, après le basculement, la synchronisation incrémentielle inverse peut échouer si les données dépassent la limite de longueur et ne peuvent pas être réécrites dans la source.

  • Si la source contient des types de données avec des informations de fuseau horaire, tels que TIMESTAMP WITH TIME ZONE, assurez-vous que la base de données de destination prend en charge le fuseau horaire correspondant de la source. Sinon, une incohérence des données peut survenir lors de la migration des données.

  • Dans un scénario d'agrégation de bases de données et de tables :

    • Vous devez utiliser des règles de correspondance pour mapper la relation entre la source et la destination.

    • Vous devez créer le schéma de table au niveau de la destination. Si vous utilisez DTS pour créer le schéma, vous devez ignorer tous les objets ayant échoué lors de l'étape de migration du schéma.

  • Vérifiez les objets dans la corbeille de la base de données Oracle. Si le nombre d'objets est supérieur à 100, un délai d'expiration peut se produire lors de l'interrogation des tables internes. Vous devez nettoyer les objets de la corbeille.

    • Vous pouvez vérifier si la corbeille est activée.

      SELECT Value FROM V$parameter WHERE Name = 'recyclebin';
    • Vérifiez le nombre d'objets dans la corbeille.

      SELECT COUNT(*) FROM RECYCLEBIN;
  • Si vous configurez uniquement Incremental Synchronization lors de la création de la tâche de migration de données, DTS exige que les journaux archivés de la base de données source soient conservés pendant plus de 48 heures.

    Si vous configurez Full Migration et Incremental Synchronization, DTS exige que les journaux archivés de la base de données source soient conservés pendant au moins sept jours. Sinon, DTS peut ne pas réussir à obtenir les journaux incrémentiels, ce qui entraîne l'échec de la tâche de migration de données ou même une incohérence des données entre la source et la destination.

  • Si la source ou la destination contient des objets de table dont les noms ne diffèrent que par la casse, le résultat de la migration de données peut ne pas être conforme aux attentes. Cela peut se produire si la source ou la destination ne distingue pas la casse.

  • Lorsque la destination est un locataire MySQL d'une base de données OceanBase de version 4.1.0 ou ultérieure, la migration du jeu de caractères Latin1 est prise en charge.

  • Pour les tâches de synchronisation incrémentielle utilisant une base de données Oracle comme source (à l'exception des tâches qui obtiennent des données incrémentielles via Kafka), si une seule transaction s'étend sur plusieurs journaux archivés, LogMiner peut ne pas renvoyer de données complètes. Cela peut entraîner une perte de données. Nous vous recommandons de configurer la validation complète des données et la correction des données afin de garantir la cohérence des données.

Types d'instances source et de destination pris en charge

Dans le tableau suivant, un locataire Oracle d'une base de données OceanBase est abrégé en OB_Oracle.

Source

Destination

Oracle (base de données gérée en interne dans un VPC)

OB_Oracle (instance de cluster OceanBase)

Oracle (base de données gérée en interne avec une adresse IP publique)

OB_Oracle (instance de cluster OceanBase)

Mappage des types de données

Important
  • Les données CLOB et BLOB doivent être inférieures à 48 Mo.

  • La migration des types de données ROWID, BFILE, XMLType, UROWID, UNDEFINED et UDT n'est pas prise en charge.

  • La synchronisation incrémentielle n'est pas prise en charge pour les tables avec des types de données LONG ou LONG RAW.

Base de données Oracle

Locataire OceanBase Oracle

CHAR(n CHAR)

CHAR(n CHAR)

CHAR(n BYTE)

CHAR(n BYTE)

NCHAR(n)

NCHAR(n)

VARCHAR2(n)

VARCHAR2(n)

NVARCHAR2(n)

NVARCHAR2(n)

NUMBER(n)

NUMBER(n)

NUMBER (p, s)

NUMBER(p,s)

RAW

RAW

CLOB

CLOB

NCLOB

NVARCHAR2

Remarque

Dans un locataire OceanBase Oracle, les champs NVARCHAR2 ne prennent pas en charge les valeurs nulles. Si une valeur nulle existe dans la source, elle est représentée par la chaîne « NULL ».

BLOB

BLOB

REAL

FLOAT

FLOAT(n)

FLOAT

BINARY_FLOAT

BINARY_FLOAT

BINARY_DOUBLE

BINARY_DOUBLE

DATE

DATE

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR(p) TO MONTH

INTERVAL YEAR(p) TO MONTH

INTERVAL DAY(p) TO SECOND

INTERVAL DAY(p) TO SECOND

LONG

CLOB

Important

Ce type ne prend pas en charge la synchronisation incrémentielle.

LONG RAW

BLOB

Important

Ce type ne prend pas en charge la synchronisation incrémentielle.

SDO_GEOMETRY

SDO_GEOMETRY

Vérifier et modifier la configuration système de l'instance Oracle

Vous devez effectuer les opérations suivantes :

  1. Activer le mode ARCHIVELOG sur la base de données source Oracle

  2. Activer la journalisation supplémentaire sur la base de données source Oracle

  3. (Facultatif) Définir les paramètres système pour la base de données Oracle

Activer le mode ARCHIVELOG sur la base de données source Oracle

SELECT log_mode FROM v$database;

La valeur du champ log_mode doit être archivelog. Si ce n'est pas le cas, modifiez-la comme suit :

  1. Exécutez les commandes suivantes pour activer le mode ARCHIVELOG.

    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE ARCHIVELOG;
    ALTER DATABASE OPEN;
  2. Exécutez la commande suivante pour afficher le chemin et le quota des journaux archivés.

    Vérifiez le chemin et le quota du fichier de récupération. Définissez db_recovery_file_dest_size sur une valeur élevée. Après avoir activé l'archivage, vous devez nettoyer périodiquement les journaux archivés à l'aide d'outils tels que Recovery Manager (RMAN).

    SHOW PARAMETER db_recovery_file_dest;
  3. Modifiez le quota des journaux archivés selon vos besoins.

    ALTER SYSTEM SET db_recovery_file_dest_size =50G SCOPE = BOTH;

Activer la journalisation supplémentaire sur la database Oracle source

Le LogMiner Reader prend en charge les configurations système Oracle où seule la journalisation supplémentaire au niveau de la table est activée. Si une nouvelle table est créée dans la database Oracle source pendant la migration et doit être migrée, vous devez activer la journalisation supplémentaire pour ses clés primaires (PK) et uniques (UK) avant d'effectuer des opérations DML. Dans le cas contraire, DTS signale une erreur de journal incomplet.

Pour éviter des problèmes tels que des incohérences d'index entre la source et la destination, un comportement ETL inattendu et une réduction des performances de migration pour les tables partitionnées, ajoutez les journaux supplémentaires suivants :

  • Ajoutez supplemental_log_data_pk et supplemental_log_data_ui au niveau de la database ou de la table.

  • Ajoutez des colonnes spécifiques au journal supplémentaire

    • Ajoutez toutes les colonnes faisant partie des PK et UK à la fois sur la source et la destination pour résoudre les problèmes d'incohérence d'index.

    • Si vous utilisez ETL, ajoutez les colonnes ETL. Cela résout les problèmes liés à un comportement ETL inattendu.

    • Si la destination est une table partitionnée, ajoutez les colonnes de clé de partition. Cela résout le problème d'impossibilité d'effectuer l'élimination de partitions, ce qui réduit les performances d'écriture.

    Vous pouvez exécuter l'instruction suivante pour vérifier le résultat.

    SELECT log_group_type FROM all_log_groups WHERE OWNER = '<schema_name>' AND table_name = '<table_name>';

    La vérification est réussie si le résultat de la requête inclut ALL COLUMN LOGGING. Si ce n'est pas le cas, vérifiez si la table ALL_LOG_GROUP_COLUMNS contient l'union de toutes les colonnes précédentes.

    Voici un exemple d'ajout de colonnes spécifiques au journal supplémentaire :

    ALTER TABLE <table_name> ADD SUPPLEMENTAL LOG GROUP <table_name_group> (c1, c2) ALWAYS;

Le tableau suivant décrit les risques et les solutions associés aux opérations DDL lors d'une tâche de migration de données.

Opération

Menace

Solution

CREATE TABLE (nécessite une synchronisation)

Si la table de destination est une table partitionnée, si les index source et destination sont incohérents ou si ETL est requis, les performances de migration des données peuvent être affectées et le comportement ETL peut être inattendu.

Vous devez activer la journalisation supplémentaire au niveau de la database pour les PK et les UK. Ajoutez manuellement les colonnes concernées au journal supplémentaire.

Ajouter, supprimer ou modifier une colonne PK, UK ou de clé de partition, ou modifier une colonne ETL

Les règles d'ajout de journaux supplémentaires au démarrage ne seront pas respectées. Cela peut entraîner une incohérence des données ou une réduction des performances de migration des données.

Ajoutez des journaux supplémentaires conformément aux règles précédentes.

Le LogMiner Reader effectue des vérifications de deux manières. Si le LogMiner Reader détecte que la journalisation supplémentaire n'est pas activée, il s'arrête.

  • Activez supplemental_log_data_pk et supplemental_log_data_ui au niveau de la database.

    Vous pouvez exécuter la commande suivante pour vérifier si la journalisation supplémentaire est activée. Si les deux résultats de la requête sont YES, la journalisation supplémentaire est activée.

    SELECT supplemental_log_data_pk, supplemental_log_data_ui FROM v$database;

    Si elle n'est pas activée, vous devez effectuer les opérations suivantes :

    1. Vous pouvez exécuter l'instruction suivante pour activer la journalisation supplémentaire.

      ALTER DATABASE ADD supplemental log DATA(PRIMARY KEY, UNIQUE) columns;
    2. Une fois cette option activée, basculez les journaux archivés deux fois et attendez plus de 5 minutes avant de démarrer la tâche. Si vous utilisez Oracle RAC, basculez entre les instances.

      ALTER SYSTEM SWITCH LOGFILE;

      Dans un environnement Oracle RAC, si vous basculez une instance plusieurs fois avant de passer à une autre instance au lieu d'alterner entre les instances, l'instance basculée ultérieurement peut localiser un journal datant d'avant l'activation de la journalisation supplémentaire lors de la détermination du fichier de extraction initial.

  • Activez supplemental_log_data_pk et supplemental_log_data_ui au niveau de la table.

    1. Vous pouvez exécuter l'instruction suivante pour confirmer que supplemental_log_data_min est activé au niveau de la database.

      SELECT supplemental_log_data_min FROM v$database;

      Un résultat YES ou IMPLICIT indique que la journalisation supplémentaire est activée.

    2. Vous pouvez exécuter l'instruction suivante pour confirmer que la journalisation supplémentaire au niveau de la table est activée pour les tables à synchroniser.

      SELECT log_group_type FROM all_log_groups WHERE OWNER = '<schema_name>' AND table_name = '<table_name>';

      Chaque type de journal supplémentaire renvoie une ligne. Le résultat doit inclure ALL COLUMN LOGGING, ou à la fois PRIMARY KEY LOGGING et UNIQUE KEY LOGGING.

      Si la journalisation supplémentaire au niveau de la table n'est pas activée, vous pouvez exécuter l'instruction suivante.

      ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE) COLUMNS;
    3. Après l'avoir activée, basculez les journaux archivés deux fois et attendez plus de 5 minutes avant de démarrer la tâche. Pour un Oracle RAC, alternez les basculements entre les instances.

      ALTER SYSTEM SWITCH LOGFILE;

Définir les paramètres système pour la database Oracle (facultatif)

Définissez le paramètre système _log_parallelism_max de la database Oracle sur 1. La valeur par défaut est généralement 2.

  1. Interrogez la valeur de _log_parallelism_max. Vous pouvez interroger la valeur de l'une des deux manières suivantes :

    • Méthode 1

      SELECT NAM.KSPPINM,VAL.KSPPSTVL,NAM.KSPPDESC FROM SYS.X$KSPPI NAM,SYS.X$KSPPSV VAL WHERE NAM.INDX= VAL.INDX AND NAM.KSPPINM LIKE '_%' AND UPPER(NAM.KSPPINM) LIKE '%LOG_PARALLEL%';
    • Méthode 2

      SELECT VALUE FROM v$parameter WHERE name = '_log_parallelism_max';
  2. Modifiez la valeur de _log_parallelism_max. La méthode de modification varie selon votre configuration :

    • Modification d'Oracle RAC

      ALTER SYSTEM SET "_log_parallelism_max" = 1 SID = '*' SCOPE = spfile;
    • Modifications pour les environnements non-Oracle RAC

      ALTER SYSTEM SET "_log_parallelism_max" = 1 SCOPE = spfile;

    Si vous recevez l'erreur « write to SPFILE requested but no SPFILE specified at startup » lors de la modification du paramètre _log_parallelism_max dans Oracle Database 10G, vous devez effectuer les opérations suivantes :

    CREATE SPFILE FROM PFILE;
    SHUTDOWN IMMEDIATE;
    STARTUP;
    SHOW PARAMETER SPFILE;
  3. Après avoir modifié le paramètre système _log_parallelism_max, vous devez redémarrer l'instance, basculer le journal archivé deux fois et attendre plus de cinq minutes avant de démarrer la tâche.

Procédure

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

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

  2. Sur la page Data Transmission > Data Migration, cliquez sur Configure pour votre nouvelle tâche de migration de données.

    image.png

    Pour réutiliser la configuration d'une tâche existante, vous pouvez cliquer sur Reference Configuration. Pour plus d'informations, consultez la rubrique Réutiliser la configuration d'une tâche de migration de données.

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

    Parameter

    Description

    Migration Task Name

    Utilisez une combinaison de caractères chinois, de chiffres et de lettres. Le nom ne doit pas contenir d'espaces et sa longueur ne doit pas dépasser 64 caractères.

    Source

    Si vous avez déjà créé une source de données Oracle, sélectionnez-la dans la liste déroulante. Sinon, cliquez sur Create Data Source dans la liste déroulante pour en créer une dans la boîte de dialogue qui s'affiche. Pour plus d'informations sur les paramètres, consultez la rubrique Créer une source de données Oracle.

    Destination

    Si vous avez déjà créé une source de données pour un locataire OceanBase Oracle, sélectionnez-la dans la liste déroulante. Sinon, cliquez sur Create Data Source dans la liste déroulante pour en créer une dans la boîte de dialogue qui s'affiche. Pour plus d'informations sur les paramètres, consultez la rubrique Créer une source de données OceanBase.

    Tags (Optional)

    Cliquez sur la zone de texte et sélectionnez le tag cible dans la liste déroulante. Vous pouvez également cliquer sur Manage Tags pour créer, modifier ou supprimer des tags. Pour plus d'informations, consultez la rubrique Gérer les tâches de migration de données à l'aide de tags.

  4. Cliquez sur Next. Sur la page Select Migration Type, définissez le paramètre Synchronization Topology sur One-way Synchronization.

    Le service Data Transmission prend en charge les options One-way Synchronization et Two-way Synchronization. Cette rubrique décrit les opérations relatives à une tâche de synchronisation unidirectionnelle. Pour plus d'informations sur la synchronisation bidirectionnelle, consultez la rubrique Configurer une tâche de synchronisation bidirectionnelle.

  5. Sélectionnez les types de migration pour la tâche de migration de données.

    Une topologie de synchronisation unidirectionnelle prend en charge les types de migration suivants : Schema Migration, Full Migration, Incremental Synchronization, Full Validation et Reverse Incremental Synchronization.

    image

    Type de migration

    Description

    Schema Migration

    Une fois la tâche de migration de schéma lancée, DTS migre les définitions des objets de données (tables, index, contraintes, commentaires et vues) de la base de données source vers la base de données de destination. Il filtre automatiquement les tables temporaires.

    Full Migration

    Une fois la tâche de migration complète lancée, DTS migre les données existantes des tables de la base de données source vers les tables correspondantes de la base de données de destination. Si vous sélectionnez l'option Full Migration, collectez les statistiques de la base de données Oracle à l'aide de l'instruction GATHER_SCHEMA_STATS ou GATHER_TABLE_STATS avant de migrer les données.

    Incremental Synchronization

    Une fois la tâche de synchronisation incrémentielle lancée, DTS synchronise les modifications de données (ajouts, modifications ou suppressions) de la base de données source vers les tables correspondantes de la base de données de destination.

    L'option Incremental Synchronization inclut les sous-options DML Sync et DDL Sync, que vous pouvez configurer selon vos besoins. Pour plus d'informations, consultez la rubrique Personnaliser la synchronisation DDL et DML. Les limitations suivantes s'appliquent à l'option Incremental Synchronization :

    • La synchronisation DDL n'est pas prise en charge dans les scénarios où plusieurs tables sont agrégées en une seule table.

    • Si vous sélectionnez l'option DDL Sync, la tâche de migration de données peut être interrompue si une opération DDL non prise en charge par DTS se produit dans la base de données source.

    • Si l'opération DDL consiste à ajouter une nouvelle colonne, définissez l'attribut de la colonne sur Null. Sinon, la tâche de migration de données risque d'être interrompue.

    Full Validation

    Une fois la migration complète terminée et les données incrémentielles synchronisées avec la destination (presque en phase avec la source), DTS lance automatiquement une tâche de validation complète des données pour les tables configurées dans les bases de données source et de destination.

    • Si vous sélectionnez l'option Full Validation, collectez les statistiques de la base de données Oracle et du locataire OceanBase Oracle avant le début de la validation.

    • Si vous sélectionnez l'option Incremental Synchronization mais ne cochez pas toutes les options DML sous DML Sync, DTS ne prend pas en charge la validation complète des données pour ce scénario.

    Reverse Incremental

    Une fois la tâche de synchronisation incrémentielle inverse lancée, elle permet de synchroniser en temps réel les modifications de données de la base de données de destination vers la base de données source après un basculement de service.

    La synchronisation incrémentielle inverse réutilise généralement la configuration de la synchronisation incrémentielle, mais vous pouvez également la personnaliser selon vos besoins.

  6. 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 de deux manières : Specify Objects et Matching Rules. Cette rubrique explique 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 la rubrique Configurer et modifier les règles de correspondance.

    Important
    • Les noms des tables à migrer et les 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 l'option DDL Synchronization à l'étape Select Migration Type, nous vous recommandons d'utiliser des 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 l'option Specify Objects.

    2. Dans la zone Select Migration Scope, sélectionnez les objets à migrer dans la liste Source Objects. 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.

    Le service Data Transmission 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 ligne, d'afficher les informations de colonne et de supprimer un objet unique ou tous les objets.

    Remarque

    Lorsque vous sélectionnez des objets de migration à l'aide de la méthode Matching Rules, la syntaxe des règles 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 la rubrique Configurer et modifier les règles de correspondance.

    Opération

    Description

    Importer un objet

    1. Dans la liste située à 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 écrase 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 la base de données, définir des conditions de filtrage de ligne et effectuer d'autres opérations. Pour plus d'informations, consultez la rubrique 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 actuellement pas pris en charge.

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

    Renommer

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

    Paramètres

    Le service Data Transmission prend en charge le filtrage de ligne à l'aide des conditions WHERE. Pour plus d'informations, consultez la rubrique 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

    Le service Data Transmission 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 située à 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 située à 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.

  7. Cliquez sur Next. Configurez les paramètres sur la page Migration Options.

    • Full Migration

      Sur la page Select Migration Type, les paramètres suivants s'affichent uniquement lorsque vous sélectionnez One-way Synchronization > Full Migration.

      image

      Parameter

      Description

      Read Concurrency

      Ce paramètre spécifie le nombre de threads simultanés pour la lecture des données depuis la source lors de la migration complète. La valeur maximale est 512. Un niveau élevé de simultanéité peut exercer une pression excessive sur la source et affecter vos services.

      Write Concurrency

      Ce paramètre spécifie le nombre de threads simultanés pour l'écriture des données dans la destination lors de la migration complète. La valeur maximale est 512. Un niveau élevé de simultanéité peut exercer une pression excessive sur la destination et affecter vos services.

      Full Migration Rate Limit

      Vous pouvez décider d'activer ou non la limitation du débit de migration complète selon vos besoins. Si vous l'activez, définissez les valeurs RPS (nombre maximal de lignes de données pouvant être migrées vers la destination par seconde lors de la migration complète) et BPS (volume maximal de données pouvant être migré vers la destination par seconde lors de la migration complète).

      Remarque

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

      Processing Policy for Existing Records in Destination Table Objects

      La politique de traitement comprend les options Ignore et Stop Migration :

      • Sélectionnez Ignore : si une table de destination contient déjà des données et qu'un conflit survient entre les données en cours d'écriture et les données existantes, Data Transmission Service enregistre les données conflictuelles et conserve les données existantes sans modification.

        Important

        Si vous sélectionnez Ignore, la vérification complète des données utilise le motif IN pour extraire les données. Ce processus ne permet pas de vérifier les scénarios où des données existent dans la destination mais pas dans la source, et les performances de vérification sont dégradées dans une certaine mesure.

      • Si vous conservez la valeur par défaut Stop Migration, la migration complète échoue avec une erreur si la table de destination contient des données. Vous devez traiter les données de la table de destination avant de pouvoir redémarrer la migration.

        Important

        En cas d'erreur, si vous cliquez sur Resume, Data Transmission Service ignorera cette option de configuration et continuera à migrer les données de la table. Procédez avec prudence.

      Is deferred indexing supported?

      Vous pouvez définir si la création d'index doit être autorisée après la fin de la migration complète des données. La fonctionnalité de création d'index différée peut réduire le temps nécessaire à la migration complète. Pour plus d'informations sur la sélection de la création d'index différée, consultez la description située sous le tableau.

      Important
      • Sur la page Select Migration Type , ce paramètre s'affiche uniquement si vous sélectionnez à la fois Schema Migration et Full Migration.

      • Seuls les index non uniques prennent en charge la création différée.

      • Lors de la création d'un index, si la base de données OceanBase de destination rencontre les erreurs suivantes, Data Transmission Service les ignore et considère que l'index a été créé avec succès, sans tenter de le recréer.

        • La base de données OceanBase en mode compatible MySQL signale une erreur Duplicate key name.

        • La base de données OceanBase en mode compatible Oracle signale une erreur name is already used by an existing object.

      Si la destination est une base de données OceanBase et que vous sélectionnez Allow, configurez les paramètres suivants :

      • Simultanéité pour une seule instruction DDL d'index : un degré de parallélisme plus élevé consomme plus de ressources et accélère la vitesse de migration.

      • Nombre maximal d'instructions DDL d'index simultanées : nombre maximal d'instructions DDL d'index différées que le système peut appeler simultanément.

      Si vous autorisez la création d'index différée, nous vous recommandons d'ajuster les paramètres suivants du locataire métier à l'aide d'un outil en ligne de commande, en fonction du matériel de la base de données OceanBase et du trafic de service actuel.

      // File memory buffer limit
      alter system set _temporary_file_io_area_size = '10' tenant = 'xxx'; 
      // V4.x Disable throttling
      alter system set sys_bkgd_net_percentage = 100;  
    • Incremental Synchronization

      Les paramètres suivants s'affichent uniquement lorsque vous sélectionnez One-way Synchronization > Incremental Synchronization sur la page Select Migration Type.

      image

      Parameter

      Description

      Write Concurrency

      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. Un niveau élevé de simultanéité peut exercer une pression excessive sur la destination et affecter vos services.

      Incremental Synchronization Rate Limit

      Vous pouvez décider d'activer ou non la limitation du 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 paramètres RPS et BPS servent uniquement de fonctionnalité de limitation de débit. Les performances réelles de la synchronisation incrémentielle sont influencées par des facteurs tels que la source, la destination et les spécifications de l'instance.

      Incremental Synchronization Start Offset

      • Si vous sélectionnez Full Migration, ce paramètre ne s'affiche pas.

      • Si vous sélectionnez Incremental Synchronization mais pas Full Migration, spécifiez un point dans le temps à partir duquel commencer la migration des données. La valeur par défaut est l'heure système actuelle. Pour plus d'informations, consultez Configurer un décalage de synchronisation incrémentielle.

    • Reverse Incremental

      Sur la page Select Migration Type, les paramètres de cette zone s'affichent uniquement si vous sélectionnez One-way Synchronization > Reverse Incremental. Les paramètres de configuration pour Reverse Incremental utilisent par défaut l'option Reuse Incremental Synchronization Configuration.

      image

      Vous pouvez également choisir de ne pas réutiliser la configuration de synchronisation incrémentielle et la configurer manuellement.

      Parameter

      Description

      Write Concurrency

      Ce paramètre spécifie le nombre de threads simultanés pour l'écriture des données dans la source lors de la synchronisation incrémentielle inverse. La valeur maximale est 512. Un niveau élevé de simultanéité peut exercer une pression excessive sur la source et affecter vos services.

      Reverse Incremental Rate Limit

      Vous pouvez décider d'activer ou non la limitation du débit incrémentiel inverse 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 source par seconde lors de la synchronisation incrémentielle inverse) et BPS (volume maximal de données pouvant être synchronisé vers la source par seconde lors de la synchronisation incrémentielle inverse).

      Remarque

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

      Incremental Synchronization Start Offset

      • Si vous sélectionnez Full Migration, ce paramètre ne s'affiche pas.

      • Si vous ne sélectionnez pas Full Migration mais que vous sélectionnez Incremental Synchronization, le paramètre prend par défaut la valeur du basculement avant (le cas échéant) et ne peut pas être modifié.

    • Advanced Options

      image

      Parameter

      Description

      Character Encoding and Length Definition Options

      Ce paramètre s'affiche uniquement si vous sélectionnez Schema Migration sur la page Select Migration Type et que les jeux de caractères de la source et de la destination ne correspondent pas.

      Remarque

      Si les jeux de caractères de la source et de la destination sont incohérents (par exemple, GBK pour la source et UTF-8 pour la destination), une troncature des champs et une incohérence des données peuvent se produire.

      Lorsque vous sélectionnez Automatically expand destination field length, i.e., N BYTE → 1.5N BYTE, si la longueur étendue dépasse la longueur maximale, le champ est défini sur la longueur maximale.

      Add Hidden Column for Tables Without Non-null Unique Keys

      Lors de la migration des données d'une base de données Oracle vers un locataire OceanBase Oracle, vous devez configurer l'ajout ou non d'une colonne masquée pour les tables qui ne possèdent pas de clé unique non nulle. Pour plus d'informations, consultez Description du mécanisme de colonne masquée dans Data Transmission Service.

      Storage Class for Destination Table Objects

      Cette zone s'affiche uniquement si le locataire OceanBase Oracle de destination est en version 4.3.0 ou ultérieure, et que vous sélectionnez soit Schema Migration, soit Incremental Synchronization > DDL Sync sur la page Select Migration Type .

      Les classes de stockage pour les objets de table de destination incluent Default, Row Store, Column Store et Mixed Row and Column Store. Ce paramètre s'applique aux objets de table de destination lors de la migration de schéma ou de la synchronisation incrémentielle. Pour plus d'informations, consultez default_table_store_format.

      Remarque

      Le comportement de l'option Default est déterminé par la configuration des paramètres de destination. Les objets de table issus d'une migration de schéma ou les nouveaux objets de table issus d'un DDL incrémentiel sont écrits avec une structure correspondant à la classe de stockage définie.

  8. Cliquez sur Precheck pour effectuer une prévérification de la tâche de migration des 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 des données qu'après la réussite de tous les éléments de vérification. En cas d'échec de la prévérification :

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

    • 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.

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

    Si vous ne souhaitez pas démarrer la tâche immédiatement, cliquez sur Save. Vous pourrez ensuite démarrer la tâche manuellement depuis la page Data Migration Task List ou via des opérations par lot. Pour plus d'informations sur les opérations par lot, consultez Opérations par lot sur les tâches de migration de données.

    Data Transmission Service vous permet de modifier les objets de migration et leurs conditions de filtrage de lignes pendant l'exécution d'une tâche de migration de données. Pour plus d'informations, consultez Afficher et modifier les objets de migration et leurs conditions de filtre. Après le démarrage de la tâche de migration des données, celle-ci exécute les étapes de migration séquentiellement en fonction des types de migration sélectionnés. Pour plus d'informations, consultez Afficher les détails de la migration.

Références