Tous les produits
Search
Centre de documentation

Data Transmission Service:Synchroniser Oracle vers AnalyticDB for PostgreSQL

Dernière mise à jour :Sep 22, 2026

Data Transmission Service (DTS) prend en charge la synchronisation de données en temps réel d'une base de données Oracle auto-gérée vers une instance AnalyticDB for PostgreSQL, ce qui vous permet de construire un entrepôt de données en temps réel.

Prérequis

  • La base de données Oracle auto-gérée doit être en version 9i, 10g, 11g, 12c, 18c ou 19c.

  • Le mode ARCHIVELOG est activé sur la base de données Oracle auto-gérée, avec une période de rétention des journaux raisonnable et des journaux archivés accessibles. ARCHIVELOG.

  • La journalisation supplémentaire, supplemental_log_data_pk et supplemental_log_data_ui sont activées sur la base de données Oracle auto-gérée. Supplemental Logging.

  • Une instance de destination AnalyticDB for PostgreSQL a été créée. Créer une instance.

  • Avant de synchroniser les données, examinez les fonctionnalités et les limites de DTS pour les sources Oracle, et utilisez ADAM pour évaluer votre base de données afin d'assurer une migration fluide vers le cloud. Pour plus d'informations, consultez les rubriques Limites et préparations pour les bases de données Oracle et Présentation de l'évaluation de base de données.

Limites

Remarque
  • Lors de la synchronisation du schéma, DTS synchronise les clés étrangères de la base de données source vers la base de données de destination.

  • Pendant la synchronisation complète des données et la synchronisation incrémentielle des données, DTS désactive temporairement les vérifications de contraintes et les opérations en cascade des clés étrangères au niveau de la session. Des incohérences de données peuvent survenir si des opérations de mise à jour ou de suppression en cascade sont effectuées sur la base de données source pendant l'exécution de la tâche.

Catégorie

Description

Limites relatives à la base de données source

  • Exigences relatives aux objets :

    • Les tables doivent disposer de contraintes PRIMARY KEY ou UNIQUE avec tous les champs uniques. Sinon, la base de données de destination peut contenir des données en double.

    • Pour Oracle 12c et versions ultérieures, les noms de table ne peuvent pas dépasser 30 octets.

    • Si vous sélectionnez des tables en tant qu'objets et que vous les modifiez dans la destination (par exemple, en renommant des tables ou des colonnes), une seule tâche prend en charge jusqu'à 1 000 tables. Le dépassement de cette limite entraîne une erreur de requête. Pour synchroniser davantage de tables, répartissez-les sur plusieurs tâches ou synchronisez la base de données entière.

  • Si la base de données Oracle RAC source se connecte via Express Connect, spécifiez une adresse IP virtuelle (VIP) lors de la configuration de la tâche.

  • Pour les bases de données Oracle RAC auto-gérées, utilisez une adresse IP virtuelle (VIP) au lieu d'une adresse IP SCAN. Le basculement de nœud n'est pas pris en charge après avoir spécifié l'adresse VIP.

  • Les fonctionnalités de journalisation redo et de journalisation archive doivent être activées.

    Remarque

    Pour une synchronisation incrémentielle uniquement, conservez les journaux redo et les journaux archive pendant plus de 24 heures. Pour une synchronisation complète + incrémentielle, conservez-les pendant au moins sept jours. Une fois la synchronisation complète terminée, vous pouvez définir la rétention sur plus de 24 heures. Une rétention insuffisante peut entraîner des échecs de tâche, des incohérences de données ou une perte de données, et le SLA DTS peut ne pas s'appliquer.

  • Un basculement primaire/secondaire sur la base de données source pendant la synchronisation entraîne l'échec de la tâche.

  • Si les données contiennent une chaîne vide VARCHAR2 (traitée comme null par Oracle) et que la colonne de destination possède une contrainte NOT NULL, la tâche échoue.

  • Si une table a la politique Fine-Grained Audit (FGA) activée, DTS ne peut pas détecter la pseudocolonne ORA_ROWSCN, ce qui entraîne l'échec de la tâche.

    Remarque

    Désactivez la politique FGA pour la table ou excluez la table de la synchronisation.

  • Ne mettez pas à jour les champs LONGTEXT pendant la synchronisation. Sinon, la tâche échoue.

  • N'exécutez pas d'opérations DDL qui modifient les schémas de base de données ou de tables pendant la synchronisation du schéma ou la synchronisation complète. Sinon, la tâche de synchronisation échoue.

    Remarque

    Pendant la synchronisation complète, DTS interroge la base de données source. Cela crée des verrous de métadonnées qui peuvent bloquer les opérations DDL sur la base de données source.

Autres limites

  • La synchronisation initiale du schéma prend en charge les objets suivants : table, contrainte, fonction, séquence et vue.

    Avertissement

    La cohérence du schéma entre la source et la destination n'est pas garantie après la synchronisation initiale du schéma. Évaluez l'impact de la conversion des types de données sur votre activité pour éviter les échecs de tâche ou les incohérences de données. Mappages de types de données pour la synchronisation du schéma.

  • Les tables externes ne peuvent pas être synchronisées.

  • Les packages, corps de package, vues matérialisées, synonymes, types, corps de type, procédures et index ne peuvent pas être synchronisés.

  • Les déclencheurs ne peuvent pas être synchronisés. Supprimez les déclencheurs de la base de données source pour éviter les incohérences de données. Pour plus d'informations sur la synchronisation des déclencheurs, consultez la rubrique Configurer des tâches pour les bases de données sources avec des déclencheurs.

  • DTS ignore les définitions de partition pour les tables partitionnées. Définissez les partitions dans la base de données de destination.

  • Seules les tables peuvent être sélectionnées en tant qu'objets. Les tables optimisées pour l'ajout (AO) ne sont pas prises en charge.

  • Si le mappage de colonnes est utilisé pour une synchronisation partielle de table, ou si les structures de table source et destination diffèrent, les données des colonnes manquantes dans la destination sont perdues.

  • L'instance de destination AnalyticDB for PostgreSQL ne prend pas en charge le caractère de fin de chaîne '\0'. Si les données contiennent ce caractère, DTS l'ignore, ce qui entraîne une incohérence des données.

  • N'utilisez pas Oracle Data Pump pour écrire des données dans la base de données source pendant la synchronisation incrémentielle. Sinon, une perte de données peut survenir.

  • Synchronisez les données pendant les heures creuses. Lors de la synchronisation complète initiale, DTS consomme des ressources de lecture et d'écriture sur les deux bases de données, ce qui peut augmenter la charge du serveur.

  • Les opérations INSERT concurrentes pendant la synchronisation complète provoquent une fragmentation des tables. Après la synchronisation complète, l'espace de table de destination est plus grand que celui de la source.

  • DTS calcule la latence de synchronisation à partir de l'horodatage des dernières données synchronisées et de l'horodatage actuel de la source. Si aucune opération DML n'est exécutée sur la source pendant une longue période, la latence peut être imprécise. Effectuez une opération DML sur la source pour actualiser la latence.

    Remarque

    Si vous synchronisez une base de données entière, créez une table de heartbeat qui se met à jour chaque seconde.

  • Pendant la synchronisation, utilisez uniquement DTS pour écrire dans la base de données de destination. L'écriture avec d'autres outils (par exemple, DMS online DDL) peut entraîner une perte de données ou des incohérences.

  • En cas d'échec d'une tâche, l'équipe d'assistance DTS tentera de la restaurer dans un délai de huit heures. Pendant la restauration, elle peut redémarrer la tâche ou ajuster ses paramètres.

    Remarque

    Seuls les paramètres de tâche DTS sont modifiés, et non les paramètres de la base de données. Les paramètres susceptibles d'être ajustés incluent ceux répertoriés dans la rubrique Modifier les paramètres de l'instance.

Facturation

Type de synchronisation

Tarification

Synchronisation du schéma et synchronisation complète des données

Gratuit.

Synchronisation incrémentielle des données

Payant. Pour plus d'informations, consultez la rubrique Présentation de la facturation.

Topologies de synchronisation

  • Synchronisation unidirectionnelle un-à-un.

  • Synchronisation unidirectionnelle un-à-plusieurs.

  • Synchronisation unidirectionnelle plusieurs-à-un.

  • Synchronisation en cascade.

Consultez la rubrique Topologies de synchronisation des données.

Opérations SQL prises en charge

Type d'opération

Instruction SQL

DML

INSERT, UPDATE et DELETE

Remarque

Le système convertit automatiquement les instructions UPDATE en instructions REPLACE INTO lors de l'écriture des données dans une instance de destination AnalyticDB for PostgreSQL. Si une instruction UPDATE modifie une clé primaire, le système la convertit plutôt en une instruction DELETE et une instruction INSERT.

DDL

ADD COLUMN

Autorisations du compte de base de données

Base de données

Autorisations

Références

Base de données Oracle auto-gérée

Autorisations granulaires

Préparer un compte de base de données, CREATE USER et GRANT

AnalyticDB for PostgreSQL instance

Autorisations d'écriture sur la base de données de destination

Le compte initial de l'AnalyticDB for PostgreSQL instance de destination dispose des autorisations requises. Créer un compte de base de données.

Remarque

Vous pouvez également utiliser un compte de base de données disposant de l'autorisation RDS_SUPERUSER. Gérer les utilisateurs et les autorisations.

Important

Activez la journalisation des archives et la journalisation supplémentaire pour capturer les données incrémentielles. Configurer une base de données Oracle.

Procédure

  1. Accédez à la page des tâches de synchronisation des données.

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

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

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

    Remarque
  2. Cliquez sur Create Task pour ouvrir la page de configuration de la tâche.

  3. Configurez les bases de données source et de destination.

    Catégorie

    Paramètre

    Description

    N/A

    Task Name

    DTS génère automatiquement un nom de tâche. Nous vous recommandons de spécifier un nom descriptif pour une identification facile. Le nom n'a pas besoin d'être unique.

    Source Database

    Database Type

    Sélectionnez Oracle.

    Connection Type

    Sélectionnez le type de connexion pour la base de données source. Dans cet exemple, l'option Self-managed Database on ECS est sélectionnée.

    Remarque

    Si la source est une base de données autogérée, effectuez les préparatifs requis.

    Instance Region

    Sélectionnez la région de la base de données Oracle autogérée.

    ECS Instance ID

    Sélectionnez l'ID de l'instance ECS qui héberge la base de données Oracle autogérée.

    Port

    Saisissez le port de service de la base de données Oracle autogérée. Valeur par défaut : 1521.

    Oracle Type

    • Non-RAC Instance : si vous sélectionnez cette option, vous devez également spécifier le SID.

    • RAC or PDB Instance : si vous sélectionnez cette option, vous devez également spécifier le Service Name.

    Dans cet exemple, l'option Non-RAC Instance est sélectionnée.

    Database Account

    Saisissez le compte de la base de données Oracle autogérée. Autorisations requises pour les comptes de base de données.

    Database Password

    Saisissez le mot de passe correspondant au compte de base de données.

    Destination Database

    Database Type

    Sélectionnez AnalyticDB for PostgreSQL.

    Connection Type

    Sélectionnez Alibaba Cloud Instance.

    Instance Region

    Sélectionnez la région de l'instance AnalyticDB for PostgreSQL de destination.

    Instance ID

    Sélectionnez l'ID de l'instance AnalyticDB for PostgreSQL de destination.

    Database Name

    Saisissez le nom de la base de données de destination dans l'instance AnalyticDB for PostgreSQL.

    Database Account

    Saisissez le compte de base de données pour l'instance AnalyticDB for PostgreSQL de destination. Autorisations requises pour les comptes de base de données.

    Database Password

    Saisissez le mot de passe correspondant au compte de base de données.

  4. Une fois la configuration terminée, cliquez sur Test Connectivity and Proceed en bas de la page. Dans la boîte de dialogue CIDR Blocks of DTS Servers.

    Remarque

    Assurez-vous que les blocs CIDR des adresses IP des serveurs DTS sont ajoutés aux paramètres de sécurité des bases de données source et de destination pour autoriser l'accès depuis les serveurs DTS. Cette opération peut être effectuée automatiquement ou manuellement. Pour plus d'informations, consultez la rubrique Ajouter les blocs CIDR des adresses IP des serveurs DTS à une liste d'autorisation.

  5. Configurez les objets de la tâche.

    1. Sur la page Test Connectivity pour configurer les paramètres avancés.

      Paramètre

      Description

      Configure Objects

      Par défaut, DTS planifie les tâches sur un cluster partagé et vous n'avez pas besoin de sélectionner un cluster. Pour des performances plus stables, vous pouvez acheter un cluster dédié pour exécuter les tâches de synchronisation DTS. Pour plus d'informations, consultez la rubrique Qu'est-ce qu'un cluster dédié DTS ?.

      Synchronization Types

      Choisissez d'ajouter ou non des guillemets aux noms des objets de destination. Si vous sélectionnez Incremental Data Synchronization et que l'une des conditions suivantes est remplie, DTS ajoute des guillemets simples ou doubles aux noms des objets de destination lors des phases de synchronisation initiale du schéma et de synchronisation incrémentielle des données :

      • L'environnement métier de la base de données source respecte la casse et utilise une casse mixte.

      • Le nom de la table source ne commence pas par une lettre et contient des caractères autres que des lettres, des chiffres ou des caractères spéciaux.

        Remarque

        Seuls les traits de soulignement (_), les signes dièse (#) et les signes dollar ($) sont pris en charge en tant que caractères spéciaux.

      • Le nom du schéma, de la table ou de la colonne à synchroniser est un mot clé, un mot réservé ou un caractère non valide dans la base de données de destination.

      Remarque

      Si vous choisissez d'ajouter des guillemets, vous devez utiliser le nom de l'objet de destination entre guillemets pour les requêtes une fois la tâche de synchronisation des données terminée.

      Schema Synchronization

      Après le démarrage d'une tâche de synchronisation, si la connexion à la base de données source ou de destination échoue, DTS signale une erreur et commence immédiatement à réessayer la connexion. La durée de nouvelle tentative par défaut est de 720 minutes. Vous pouvez également spécifier une durée de nouvelle tentative personnalisée comprise entre 10 et 1 440 minutes. Nous vous recommandons de définir la durée à 30 minutes ou plus. Si DTS se reconnecte avec succès à la base de données dans la durée spécifiée, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.

      Remarque
      • Si vous disposez de plusieurs instances DTS (par exemple, l'instance A et l'instance B) qui partagent la même source ou la même destination, et que vous définissez la durée de nouvelle tentative réseau à 30 minutes pour l'instance A et à 60 minutes pour l'instance B, la durée la plus courte, soit 30 minutes, est utilisée pour les deux.

      • Étant donné que DTS facture le temps d'exécution de la tâche pendant la période de nouvelle tentative de connexion, nous vous recommandons de personnaliser la durée de nouvelle tentative en fonction de vos besoins métier ou de libérer l'instance DTS dès que possible après la libération des instances de base de données source et de destination.

      Full Data Synchronization

      Après le démarrage de la tâche de synchronisation, si d'autres problèmes non liés à la connectivité surviennent avec la base de données source ou de destination (tels que des exceptions d'exécution DDL ou DML), DTS signale une erreur et lance immédiatement des opérations de nouvelle tentative continues. La durée de nouvelle tentative par défaut est de 10 minutes. Vous pouvez également personnaliser la durée de nouvelle tentative dans la plage de 1 à 1 440 minutes. Nous vous recommandons de la définir à 10 minutes ou plus. Si les opérations concernées aboutissent dans la durée de nouvelle tentative définie, la tâche de synchronisation reprend automatiquement. Sinon, la tâche échoue.

      Important

      La valeur de Processing Mode for Existing Tables in Destination doit être inférieure à celle de Precheck and Report Errors.

      Ignore Errors and Proceed

      Pendant la phase de synchronisation complète, DTS consomme des ressources de lecture et d'écriture des bases de données source et de destination, ce qui peut augmenter la charge de la base de données. Pour réduire la charge sur les bases de données source et de destination, vous pouvez définir une limite de débit pour la tâche de synchronisation complète en configurant les paramètres Ignore Errors and Proceed, Merge Multiple Tables et Yes.

      Remarque
      • Cet élément de configuration est disponible uniquement lorsque No est défini sur Select DDL and DML operations for instance-level synchronization.

      • Vous pouvez également ajuster le débit de synchronisation complète une fois l'instance de synchronisation en cours d'exécution.

      Selected Objects

      Vous pouvez également définir une limite de débit pour la tâche de synchronisation incrémentielle. Pour soulager la pression sur la base de données de destination, définissez les paramètres Storage Engine Type et Synchronization Types.

      Schema Synchronization

      Facultatif. Sélectionnez un tag d'environnement pour l'instance.

      Source Objects

      Sélectionnez le format d'encodage pour les données écrites dans la destination.

      Source Objects

      Choisissez d'activer ou non la fonctionnalité extract, transform, and load (ETL). Pour plus d'informations, consultez la rubrique Qu'est-ce que l'ETL ?. Valeurs valides :

      Selected Objects

      Spécifiez si vous souhaitez configurer des alertes. Si la synchronisation échoue ou si la latence dépasse le seuil spécifié, une notification est envoyée à un contact d'alerte.

    2. Cliquez sur Selected Objects pour configurer une tâche de validation des données.

      Si vous souhaitez utiliser la fonctionnalité de validation des données, consultez la rubrique Configurer la validation des données pour obtenir des instructions de configuration.

    3. Une fois la configuration terminée, cliquez sur Selected Objects en bas de la page pour définir la colonne de clé primaire et la colonne de distribution pour la table à synchroniser dans la destination AnalyticDB for PostgreSQL.

  6. Enregistrez la tâche et exécutez une prévérification.

    • Pour afficher les paramètres API pour la configuration de cette instance, placez le curseur sur le bouton Next: Advanced Settings et cliquez sur Dedicated Cluster for Task Scheduling dans l'infobulle.

    • Si vous avez terminé la consultation des paramètres API, cliquez sur Enclose Object Names in Quotation Marks en bas de la page.

    Remarque
    • Avant le démarrage de la tâche de synchronisation, DTS exécute une prévérification. La tâche ne peut démarrer qu'après la réussite de tous les éléments de prévérification.

    • Si la prévérification échoue, cliquez sur Yes pour l'élément ayant échoué. Corrigez le problème comme indiqué, puis exécutez à nouveau la prévérification.

    • Si la prévérification renvoie un avertissement :

      • Si un élément de vérification échoue et ne peut pas être ignoré, cliquez sur Retry Time for Failed Connections à côté de l'élément. Suivez les instructions pour corriger le problème, puis exécutez à nouveau la prévérification.

      • Pour les éléments de vérification qui peuvent être ignorés, vous pouvez cliquer successivement sur Retry Time for Other Issues, Retry Time for Other Issues, Retry Time for Failed Connections et Enable Throttling for Full Data Synchronization pour ignorer l'avertissement et relancer la prévérification. Si vous choisissez de masquer l'élément d'avertissement, cela peut entraîner des problèmes tels qu'une incohérence des données et présenter des risques pour votre activité.

  7. Achetez l'instance.

    1. Lorsque le Queries per second (QPS) to the source database atteint 100 %, cliquez sur RPS of Full Data Migration.

    2. Sur la page Data migration speed for full migration (MB/s).

    3. Cliquez sur Synchronization Types. Dans la boîte de dialogue Full Data Synchronization.

      Vous pouvez consulter la progression de la tâche sur la page Data Synchronization.