Tous les produits
Search
Centre de documentation

Data Transmission Service:Synchroniser une base de données Oracle autogérée vers PolarDB for PostgreSQL (compatible avec Oracle)

Dernière mise à jour :Aug 10, 2026

Utilisez Data Transmission Service (DTS) pour synchroniser en continu les données d'une base de données Oracle autogérée vers un cluster PolarDB for PostgreSQL (Compatible avec Oracle). DTS prend en charge la synchronisation du schéma, la synchronisation complète des données et la synchronisation incrémentielle des données, maintenant ainsi le cluster de destination synchronisé tandis que votre source Oracle continue de gérer le trafic de production.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Facturation

Type de synchronisation Tarification
Synchronisation du schéma et synchronisation complète des données Gratuit
Synchronisation incrémentielle des données Payant. Consultez Présentation de la facturation

Opérations SQL prises en charge

Type d'opération Instructions SQL
LMD (Langage de manipulation de données) INSERT, UPDATE et DELETE
LDD (Langage de définition de données) CREATE TABLE (à l'exclusion de CREATE TABLE AS SELECT et des tables partitionnées ou sous-partitionnées) ; ALTER TABLE (ADD COLUMN, ADD INDEX, DROP COLUMN, DROP INDEX, MODIFY COLUMN, RENAME COLUMN) ; DROP TABLE ; RENAME TABLE ; TRUNCATE TABLE ; CREATE INDEX

Autorisations des comptes de base de données

Base de données Autorisations requises Référence
Oracle autogéré Autorisations granulaires Préparer un compte de base de données, CREATE USER et GRANT
PolarDB for PostgreSQL (Compatible avec Oracle) Autorisations de propriétaire de schéma (compte privilégié recommandé) Créer un compte de base de données et Gestion des bases de données
Important

Activez le mode ARCHIVELOG et la journalisation supplémentaire pour capturer les modifications incrémentielles des données. Consultez Configuration de la base de données.

Limitations

Limitations de la base de données source

Limitation Détails
Clé primaire ou contrainte unique requise Les tables doivent posséder une clé primaire ou une contrainte unique avec des valeurs de champ uniques. Sans cette caractéristique, des données en double apparaissent dans la destination.
Longueur du nom de table (Oracle 12c et versions ultérieures) Les noms de table ne doivent pas dépasser 30 octets.
Nombre maximal de tables par tâche (synchronisation au niveau de la table avec mappage) 1 000 tables. Pour dépasser cette limite, répartissez les tables sur plusieurs tâches ou synchronisez la base de données entière en tant qu'objet unique.
Oracle RAC connecté via Express Connect Si la base de données source est un Oracle RAC connecté via un circuit Express Connect, configurez l'une de ses adresses VIP dans les paramètres de connexion. Si la base de données Oracle autogérée est un cluster RAC, vous ne pouvez pas configurer une adresse IP SCAN ; vous devez utiliser une adresse VIP dans les paramètres de connexion. Le basculement des nœuds RAC n'est pas pris en charge avec cette configuration.
Journaux redo et journaux d'archive Les journaux redo et les journaux d'archive doivent être activés.
Rétention des journaux Pour les tâches incrémentielles uniquement : conservez les journaux pendant au moins 24 heures. Pour les tâches complètes + incrémentielles : conservez les journaux pendant au moins 7 jours ; après la fin de la synchronisation complète, vous pouvez réduire cette durée à 24 heures. Si DTS ne peut pas accéder à ces journaux, la tâche peut échouer ou entraîner une perte de données ; ce scénario n'est pas couvert par l'accord de niveau de service (SLA) de DTS.
Basculement primaire/secondaire Si un basculement primaire/secondaire se produit sur la base de données source pendant la synchronisation, la tâche échoue.
Chaîne vide VARCHAR2 avec contrainte NOT NULL Oracle traite une chaîne VARCHAR2 vide comme nulle. Si la colonne de destination a une contrainte NOT NULL, la tâche échoue.
Politique Fine-Grained Audit (FGA) Si FGA est activé sur une table, DTS ne peut pas détecter la pseudocolonne ORA_ROWSCN et la tâche échoue. Désactivez la politique FGA sur la table ou excluez la table de la synchronisation.
Mise à jour uniquement des champs texte volumineux Non pris en charge. La tâche échoue si une opération UPDATE modifie uniquement des champs texte volumineux.
LDD pendant la synchronisation du schéma ou complète N'exécutez pas d'opérations LDD qui modifient le schéma pendant la synchronisation du schéma ou la synchronisation complète. Les requêtes DTS provoquent des verrous de métadonnées sur la source qui peuvent également bloquer les opérations LDD sur celle-ci.

Autres limitations

Limitation Détails
Oracle Data Pump pendant la synchronisation incrémentielle N'utilisez pas Oracle Data Pump pour écrire dans la base de données source pendant la synchronisation incrémentielle, car cela pourrait entraîner une perte de données.
Tables externes Ne peuvent pas être synchronisées.
Timing de la synchronisation Exécutez la synchronisation pendant les heures creuses. La synchronisation initiale complète des données consomme des ressources de lecture et d'écriture sur les bases de données source et de destination.
Taille du tablespace après la synchronisation complète Les opérations INSERT concurrentes pendant la synchronisation complète provoquent une fragmentation des tables dans la destination. La taille du tablespace de destination sera plus grande que celle de la source après la fin de la synchronisation complète.
Calcul de la latence de synchronisation DTS calcule la latence en fonction de l'horodatage du dernier enregistrement synchronisé et de l'horodatage actuel de la source. Si aucune opération LMD n'est exécutée sur la source pendant une période prolongée, la latence signalée peut être inexacte. Pour maintenir une latence précise, créez une table de pulsation lors de la synchronisation d'une base de données entière ; DTS la met à jour chaque seconde.
Index uniques basés sur ROWID Le cluster de destination génère des index uniques (par exemple, pg_oid_1498503_index) pour correspondre aux valeurs ROWID de la source. La destination aura donc plus d'index que la source.
Terminateur de chaîne '\0' Le cluster de destination ne prend pas en charge le terminateur de chaîne '\0'. DTS supprime ce caractère s'il est présent dans les données source, ce qui entraîne une incohérence des données.
Contraintes CHECK Les contraintes CHECK de la source sont converties en contraintes NOT NULL dans la destination.
Compatibilité des jeux de caractères Les jeux de caractères de la source et de la destination doivent être compatibles. Une incompatibilité entraîne une incohérence des données ou un échec de la tâche.
Compatibilité des types de données Utilisez la fonctionnalité de synchronisation du schéma de DTS pour éviter les échecs dus à des types de données incompatibles.
Fuseau horaire La source et la destination doivent utiliser le même fuseau horaire.
Types définis par l'utilisateur Synchronisés vers la destination. Les objets de type intégré générés automatiquement par Oracle ne sont pas synchronisés, car la destination les prend déjà en charge.
Écritures externes vers la destination pendant la synchronisation N'écrivez pas de données provenant de sources autres que DTS dans la destination pendant la synchronisation, car cela pourrait entraîner une incohérence des données.
Séquences DTS valide le contenu des données mais pas les métadonnées telles que les séquences. Validez les séquences manuellement. Après avoir basculé votre activité vers la destination, les séquences ne s'incrémentent pas à partir de la valeur maximale de la source. Mettez à jour les valeurs de séquence dans la destination avant le basculement. Consultez Mettre à jour la valeur de la séquence dans la base de données de destination.
session_replication_role pour les clés étrangères et les déclencheurs Pour une tâche de synchronisation complète ou incrémentielle, si les tables à synchroniser contiennent des clés étrangères, des déclencheurs ou des déclencheurs d'événement : DTS définit session_replication_role sur replica au niveau de la session lorsque le compte de destination dispose d'autorisations privilégiées ou superutilisateur. Si le compte ne dispose pas de ces autorisations, définissez session_replication_role sur replica manuellement. Les opérations de mise à jour ou de suppression en cascade sur la source alors que ce paramètre est réglé sur replica peuvent entraîner une incohérence des données. Une fois la tâche DTS libérée, remettez session_replication_role sur origin.
Récupération après échec de la tâche Si une tâche échoue, le personnel de support DTS tente de la restaurer dans un délai de 8 heures. Ils peuvent redémarrer la tâche ou ajuster les paramètres de la tâche (mais pas les paramètres de la base de données).
Pendant la synchronisation du schéma, DTS synchronise les clés étrangères de la source vers la destination. Pendant la synchronisation complète et incrémentielle, 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. Une incohérence des données peut survenir si des opérations de mise à jour ou de suppression en cascade sont exécutées sur la source pendant que la tâche est active.

Créer une tâche de synchronisation

Étape 1 : Ouvrir la liste des tâches de synchronisation des données

Ouvrez la liste des tâches à l'aide de la console DTS ou de la console DMS.

Console DTS

  1. Connectez-vous à la console DTS.

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

  3. Dans le coin supérieur gauche, sélectionnez la région où l'instance de synchronisation sera située.

Console DMS

Remarque

Les étapes peuvent varier en fonction du mode et de la disposition de la console DMS. Consultez Console en mode simple et Personnaliser la disposition et le style de la console DMS.

  1. Connectez-vous à la console DMS.

  2. Dans la barre de menus supérieure, choisissez Data + AI > DTS (DTS) > Data Synchronization.

  3. À droite de Data Synchronization Tasks, sélectionnez la région de l'instance de synchronisation.

Étape 2 : Configurer la tâche

  1. Cliquez sur Create Task.

  2. (Facultatif) Dans le coin supérieur droit, cliquez sur New Configuration Page pour passer à la nouvelle interface de configuration.

    Si le bouton indique Back to Previous Version , vous êtes déjà sur la nouvelle page de configuration. La nouvelle version est recommandée.
  3. Configurez les bases de données source et de destination à l'aide des paramètres suivants.

    Paramètres de la tâche

    Paramètre Description
    Task Name DTS génère un nom automatiquement. Spécifiez un nom descriptif pour une identification facile ; le nom n'a pas besoin d'être unique.

    Base de données source

    Paramètre Description
    Select Existing Connection Sélectionnez une instance de base de données enregistrée dans la liste, ou laissez vide et configurez les champs ci-dessous manuellement. Dans la console DMS, ce champ est intitulé Select a DMS database instance.
    Database Type Sélectionnez Oracle.
    Access Method Sélectionnez la méthode qui correspond au déploiement de votre base de données source. Cette rubrique utilise Self-managed Database on ECS à titre d'exemple. Pour d'autres méthodes d'accès et les étapes supplémentaires qu'elles nécessitent, consultez Présentation des préparatifs.
    Instance Region Sélectionnez la région où réside la base de données Oracle source.
    ECS Instance ID Sélectionnez l'ID de l'instance ECS exécutant la base de données Oracle source.
    Port Number Saisissez le port de service de la base de données Oracle source. La valeur par défaut est 1521.
    Oracle Type Sélectionnez Non-RAC Instance et fournissez le SID, ou sélectionnez RAC or PDB Instance et fournissez le Service Name. Cette rubrique utilise RAC or PDB Instance avec un Service Name.
    Database Account Saisissez le compte de base de données. Pour les exigences en matière d'autorisations, consultez Autorisations des comptes de base de données.
    Database Password Saisissez le mot de passe du compte de base de données.
    Encryption Sélectionnez Non-encrypted ou SSL-encrypted. Pour le chiffrement SSL, téléchargez le CA Certificate et saisissez la CA Key. Le chiffrement SSL n'est disponible que lorsque Access Method est Express Connect, VPN Gateway, or Smart Access Gateway et que Oracle Type est RAC or PDB Instance.

    Base de données de destination

    Paramètre Description
    Select Existing Connection Sélectionnez une instance de base de données enregistrée dans la liste, ou laissez vide et configurez les champs ci-dessous manuellement. Dans la console DMS, ce champ est intitulé Select a DMS database instance.
    Database Type Sélectionnez PolarDB (Compatible with Oracle).
    Access Method Sélectionnez Alibaba Cloud Instance.
    Instance Region Sélectionnez la région où se trouve le cluster de destination.
    Instance ID Sélectionnez l'ID du cluster PolarDB for PostgreSQL (Compatible avec Oracle) de destination.
    Database Name Saisissez le nom de la base de données dans le cluster de destination qui recevra les objets synchronisés.
    Database Account Saisissez le compte de base de données pour le cluster de destination. Pour les exigences en matière d'autorisations, consultez Autorisations des comptes de base de données.
    Database Password Saisissez le mot de passe du compte de base de données.
    Encryption Sélectionnez Non-encrypted ou SSL-encrypted. Pour le chiffrement SSL, téléchargez le CA Certificate.
  4. Cliquez sur Test Connectivity and Proceed en bas de la page. Dans la boîte de dialogue CIDR Blocks of DTS Servers, cliquez sur Test Connectivity.

    Les blocs d'adresses IP du serveur DTS doivent être ajoutés aux paramètres de sécurité des bases de données source et de destination avant le test de connectivité. DTS peut les ajouter automatiquement, ou vous pouvez les ajouter manuellement. Consultez Ajouter la liste d'autorisation d'adresses IP des serveurs DTS .

Étape 3 : Sélectionner les objets à synchroniser

  1. Sur la page Configure Objects, définissez les paramètres suivants.

    Paramètre Description
    Synchronization Types DTS sélectionne toujours Incremental Data Synchronization. Par défaut, Schema Synchronization et Full Data Synchronization sont également sélectionnés. DTS utilise les données complètes des objets sélectionnés pour initialiser le cluster de destination avant de démarrer la synchronisation incrémentielle.
    Processing Mode of Conflicting Tables Precheck and Report Errors : Vérifie la présence de tables portant le même nom dans la destination. Si des conflits sont trouvés, la prévalidation signale une erreur et la tâche ne démarre pas. Pour gérer les conflits de nommage sans supprimer ni renommer la table de destination, mappez l'objet sur un nom différent. Consultez Mappage des noms de colonnes de tables de base de données. Ignore Errors and Proceed : Ignore la vérification des conflits de noms.
    Avertissement

    Cette option peut entraîner une incohérence des données. Pendant la synchronisation complète, DTS ignore les enregistrements source qui entrent en conflit avec les enregistrements de destination. Pendant la synchronisation incrémentielle, DTS écrase les enregistrements de destination avec les enregistrements source. Si les schémas sont incohérents, l'initialisation des données peut échouer partiellement ou totalement.

    Capitalization of Object Names in Destination Instance Définit la politique de casse pour les noms de base de données, de tables et de colonnes dans la destination. La valeur par défaut est DTS default policy. Consultez Politique de casse pour les noms d'objets de destination.
    Source Objects Cliquez sur les objets dans la zone Source Objects, puis cliquez sur l'icône de flèche vers la droite pour les déplacer vers la zone Selected Objects. Vous pouvez sélectionner des objets au niveau de la base de données, de la table ou de la colonne.
    Selected Objects Si vous n'utilisez pas de compte privilégié, ou si le nom du schéma source ne correspond pas aux conventions de nommage de PolarDB for PostgreSQL (Compatible avec Oracle), faites un clic droit sur le schéma dans le volet Selected Objects, ouvrez la boîte de dialogue Edit Schema et mettez à jour le Schema Name pour qu'il corresponde à la base de données cible. Consultez Mapper les noms de tables et de colonnes. Pour sélectionner des opérations SQL spécifiques pour une base de données ou une table, faites un clic droit sur l'objet et choisissez les opérations dans la boîte de dialogue. Pour appliquer des filtres de ligne, faites un clic droit sur une table et configurez les conditions de filtre. Consultez Définir les conditions de filtre. Le renommage d'un objet peut interrompre la synchronisation d'autres objets qui en dépendent.
  2. Cliquez sur Next: Advanced Settings et configurez les paramètres suivants.

    Paramètre Description
    Dedicated Cluster for Task Scheduling DTS utilise un cluster partagé par défaut. Pour une meilleure stabilité des tâches, achetez un cluster dédié. Consultez Qu'est-ce qu'un cluster dédié DTS ?
    Retry Time for Failed Connections Durée pendant laquelle DTS effectue des tentatives après un échec de connexion. Valeur par défaut : 720 minutes. Plage valide : 10–1 440 minutes. Définissez une valeur de 30 minutes ou plus. Si la connexion est rétablie dans ce délai, la tâche reprend automatiquement.
    Remarque

    Lorsque plusieurs instances DTS partagent une source ou une destination, DTS applique la durée de nouvelle tentative la plus courte configurée parmi toutes les instances. DTS facture l'exécution pendant les nouvelles tentatives de connexion.

    Retry Time for Other Issues Durée pendant laquelle DTS effectue des tentatives après des erreurs autres que les erreurs de connexion (par exemple, erreurs d'exécution LDD ou LMD). Valeur par défaut : 10 minutes. Plage valide : 1–1 440 minutes. Définissez une valeur de 10 minutes ou plus. Cette valeur doit être inférieure à Retry Time for Failed Connections.
    Enable Throttling for Full Data Synchronization Limite les taux de lecture/écriture de la synchronisation complète pour réduire la charge sur la destination. Définissez Queries per second (QPS) to the source database, RPS of Full Data Migration et Data migration speed for full migration (MB/s). Disponible uniquement lorsque Full Data Synchronization est sélectionné. Vous pouvez également ajuster le taux pendant l'exécution de la tâche.
    Enable Throttling for Incremental Data Synchronization Limite les taux de synchronisation incrémentielle. Définissez RPS of Incremental Data Synchronization et Data synchronization speed for incremental synchronization (MB/s).
    Environment Tag Attachez un tag d'environnement à l'instance pour l'identification.
    Actual Write Code Sélectionnez le type d'encodage pour les données écrites dans la destination.
    Configure ETL Choisissez si vous souhaitez activer l'extraction, la transformation et le chargement (ETL). Sélectionnez Yesalert notifications pour saisir des instructions de traitement des données dans l'éditeur de code. Consultez Configurer ETL dans une tâche de migration ou de synchronisation de données. Sélectionnez No pour désactiver ETL. Pour plus d'informations sur ETL, consultez Qu'est-ce que ETL ?
    Monitoring and Alerting Configurez des alertes pour les échecs de tâche ou la latence dépassant un seuil. Sélectionnez Yes pour définir un seuil d'alerte et des contacts de notification. Consultez Configurer la surveillance et les alertes lors de la configuration de la tâche.
  3. Cliquez sur Data Verification pour configurer une tâche de vérification des données. Consultez Configurer la vérification des données.

Étape 4 : Enregistrer la tâche et exécuter la prévalidation

  • Pour afficher un aperçu des paramètres API pour cette configuration, survolez Next: Save Task Settings and Precheck et cliquez sur Preview OpenAPI parameters.

  • Cliquez sur Next: Save Task Settings and Precheck pour enregistrer la configuration et démarrer la prévalidation.

DTS exécute une prévalidation avant de démarrer toute tâche de synchronisation. La tâche ne démarre que si la prévalidation est réussie.
Si la prévalidation échoue, cliquez sur View Details à côté de l'élément ayant échoué, corrigez le problème et relancez la prévalidation.
Si la prévalidation génère des avertissements non ignorables, cliquez sur View Details , corrigez le problème et relancez la validation.
Si la prévalidation génère des avertissements ignorables, cliquez sur Confirm Alert Details > Ignore > OK , puis cliquez sur Precheck Again pour continuer. Ignorer les avertissements peut entraîner une incohérence des données.

Étape 5 : Acheter l'instance

  1. Lorsque le Success Rate atteint 100 %, cliquez sur Next: Purchase Instance.

  2. Sur la page Purchase, sélectionnez la méthode de facturation et les spécifications de l'instance.

    Paramètre Description
    Billing Method Subscription : Payez à l'avance pour une durée fixe. Rentable pour les tâches continues à long terme. Pay-as-you-go : Facturé à l'heure pour l'utilisation réelle. Convient aux tâches à court terme ou de test ; libérez l'instance à tout moment pour arrêter les frais.
    Resource Group Settings Le groupe de ressources pour l'instance. Valeur par défaut : default resource group. Consultez Qu'est-ce que Resource Management ?
    Instance Class Détermine les performances de synchronisation. Sélectionnez en fonction de votre volume de données et de vos exigences de débit. Consultez Spécifications des liens de synchronisation de données.
    Subscription Duration Disponible uniquement pour la facturation par abonnement. Options mensuelles : 1–9 mois. Options annuelles : 1, 2, 3 ou 5 ans.
  3. Cochez la case Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Cliquez sur Buy and Start, puis cliquez sur OK dans la boîte de dialogue de confirmation.

Surveillez la tâche sur la page de synchronisation des données.

Étapes suivantes

Après le démarrage de la tâche de synchronisation et l'initialisation complète du cluster de destination, validez les données dans la destination avant de basculer le trafic métier :

  • Mettez à jour les valeurs de séquence dans la destination avant le basculement. Consultez Mettre à jour la valeur de la séquence dans la base de données de destination.

  • Vérifiez que session_replication_role est rétabli sur origin dans la destination après la libération de la tâche DTS.

  • Vérifiez que les jeux de caractères et les fuseaux horaires correspondent entre la source et la destination pour éviter des problèmes de données après le basculement.