Tous les produits
Search
Centre de documentation

Data Transmission Service:Synchroniser PostgreSQL autonome vers PolarDB for PostgreSQL (Compatible avec Oracle)

Dernière mise à jour :Aug 27, 2026

Accédez à la page de liste des tâches de synchronisation de la région de destination. Vous pouvez utiliser l'une des deux méthodes suivantes :

Depuis la console DTS

  1. Connectez-vous à la console Data Transmission Service (DTS).

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

  3. Dans l'angle supérieur gauche de la page, sélectionnez la région où se trouve l'instance de synchronisation.

Depuis la console DMS

Remarque

Les opérations réelles peuvent varier en fonction du mode et de la disposition de la console DMS. Pour plus d'informations, consultez Mode simple et Personnaliser la disposition et le style de l'interface DMS.

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

  2. Dans la barre de menu supérieure, choisissez Schema Synchronization > Data Transmission (DTS) > Data Synchronization.

  3. À droite de Data Synchronization TasksData Synchronization Tasks, sélectionnez la région où se trouve l'instance de synchronisation.

  • Cliquez sur Create TaskCreate Task pour ouvrir la page de configuration de la tâche.

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

    Catégorie

    Paramètre

    Description

    N/A

    Data Synchronization

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

    Data + AI

    Select Existing Connection

    • Pour utiliser une instance de base de données ajoutée au système (nouvellement créée ou enregistrée), sélectionnez l'instance de base de données dans la liste déroulante. Les informations de la base de données sont configurées automatiquement.

      Remarque

      Dans la console DMS, cet élément de configuration est nommé Select a DMS database instance..

    • Si vous n'avez pas ajouté l'instance de base de données au système, ou si vous n'avez pas besoin d'utiliser une instance déjà ajoutée, configurez manuellement les informations de base de données suivantes.

    Database Type

    Sélectionnez PostgreSQL.

    Task Name

    Sélectionnez Source Database.

    Instance Region

    Sélectionnez la région où réside la base de données PostgreSQL auto-gérée.

    Cross-account

    Si vous synchronisez des données au sein du même compte Alibaba Cloud, sélectionnez No.

    Connected VPC

    Sélectionnez le VPC connecté à la base de données PostgreSQL auto-gérée.

    Access Method

    Saisissez le nom de domaine ou l'adresse IP de la base de données PostgreSQL auto-gérée.

    Cloud Enterprise Network (CEN)

    Saisissez le numéro de port utilisé par la base de données PostgreSQL auto-gérée. La valeur par défaut est 5432.

    Database Name

    Saisissez le nom de la base de données contenant les objets à synchroniser.

    Database Account

    Saisissez le compte de base de données pour la base de données PostgreSQL auto-gérée. Pour plus d'informations sur les autorisations requises, consultez Autorisations du compte de base de données.

    Database Password

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

    Encryption

    Indique s'il faut chiffrer la connexion à la base de données source. Vous pouvez configurer ce paramètre en fonction de vos besoins métier. Dans cet exemple, IP address est sélectionné.

    Si vous souhaitez établir une connexion chiffrée SSL à la base de données source, effectuez les étapes suivantes : Sélectionnez Port, téléchargez le CA Certificate, le Client Certificate et la Private Key of Client Certificate selon vos besoins, puis spécifiez le Private Key Password of Client Certificate.

    Remarque
    • Si vous définissez le chiffrement sur Non-encrypted pour une base de données PostgreSQL auto-gérée, vous devez télécharger le SSL-encrypted.

    • Si vous souhaitez utiliser le certificat client, vous devez télécharger le Client Certificate et la Private Key of Client Certificate et spécifier le Private Key Password of Client Certificate.

    • Pour plus d'informations sur la configuration du chiffrement SSL pour une instance ApsaraDB RDS for PostgreSQL, consultez Chiffrement SSL.

    Destination Database

    SSL-encrypted

    • Pour utiliser une instance de base de données ajoutée au système (nouvellement créée ou enregistrée), sélectionnez l'instance de base de données dans la liste déroulante. Les informations de la base de données sont configurées automatiquement.

      Remarque

      Dans la console DMS, cet élément de configuration est nommé CA Certificate.

    • Si vous n'avez pas ajouté l'instance de base de données au système, ou si vous n'avez pas besoin d'utiliser une instance déjà ajoutée, configurez manuellement les informations de base de données suivantes.

    Database Type

    Sélectionnez PolarDB (Compatible with Oracle).

    Connection Type

    Sélectionnez Express Connect, VPN Gateway, or Smart Access Gateway.

    Select Existing Connection

    Sélectionnez la région où réside le cluster PolarDB for PostgreSQL (Compatible avec Oracle) de destination.

    Select a DMS database instance.

    Sélectionnez le VPC connecté au cluster PolarDB for PostgreSQL (Compatible avec Oracle).

    Domain Name or IP Address

    Saisissez l'endpoint du nœud principal du cluster PolarDB for PostgreSQL (Compatible avec Oracle) de destination.

    Remarque

    Vous pouvez exécuter la commande ping sur votre ordinateur pour obtenir l'adresse IP de l'endpoint de connexion directe du cluster PolarDB for PostgreSQL (Compatible avec Oracle) de destination.

    Port

    Saisissez le numéro de port utilisé par la base de données de destination. La valeur par défaut est 1521.

    Database Name

    Saisissez le nom de la base de données de destination contenant les objets à synchroniser dans l'instance PolarDB for PostgreSQL (Compatible avec Oracle).

    Database Account

    Saisissez le compte de base de données pour l'instance PolarDB for PostgreSQL (Compatible avec Oracle) de destination. Pour plus d'informations sur les autorisations requises, consultez Autorisations du compte de base de données.

    Instance Region

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

  • Une fois la configuration terminée, cliquez sur Test Connectivity and ProceedConnected VPC en bas de la page.

    Remarque
    • Assurez-vous que les blocs CIDR d'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 Ajouter les blocs CIDR d'adresses IP des serveurs DTS à une liste d'autorisation.

    • Si la base de données source ou de destination est une base de données auto-gérée (où la Méthode d'accèsAccess Method n'est pas Alibaba Cloud InstanceAlibaba Cloud Instance), vous devez également cliquer sur Test ConnectivityTest Connectivity dans la boîte de dialogue CIDR Blocks of DTS ServersCIDR Blocks of DTS Servers.

  • Configurez les objets de la tâche.

    1. Sur la page Database Password, configurez les objets à synchroniser.

      Parameter

      Description

      Test Connectivity and Proceed

      Incremental Data Synchronization is selected. By default, you must also select Configure Objects and Synchronization Types. After the precheck is complete, DTS performs a full data synchronization of the selected objects from the source instance to the destination cluster. This serves as the baseline data for subsequent incremental data synchronization.

      Incremental Data Synchronization

      • Full Data Synchronization : vérifie si une table portant le même nom existe dans la base de données de destination. Si aucune table du même nom n'existe, la prévérification est validée. Si une table du même nom existe, la prévérification échoue et la tâche de synchronisation des données ne démarre pas.

        Remarque

        Si vous ne pouvez pas supprimer ou renommer la table portant le même nom dans la base de données de destination, vous pouvez la mapper vers un autre nom de table. Pour plus d'informations, consultez Map table and column names.

      • Schema Synchronization : ignore la vérification des noms de tables en double dans la base de données de destination.

        Avertissement

        La sélection de l'option Incremental Data Synchronization peut entraîner des incohérences de données et présenter des risques pour votre activité. Par exemple :

        • Si les schémas de table sont identiques et qu'un enregistrement de la base de données de destination possède la même valeur de clé primaire ou de clé unique qu'un enregistrement de la base de données source :

          • Lors de la synchronisation complète, DTS conserve l'enregistrement dans le cluster de destination. L'enregistrement correspondant de la base de données source n'est pas synchronisé.

          • Lors de la synchronisation incrémentielle, l'enregistrement de la base de données source écrase l'enregistrement de la base de données de destination.

        • Si les schémas de table diffèrent, la synchronisation initiale des données peut échouer. Cela peut entraîner la synchronisation partielle des données de colonne ou un échec complet de la synchronisation. Procédez avec prudence.

      Schema Synchronization

      Dans la zone Full Data Synchronization, cliquez sur un objet à synchroniser, puis cliquez sur 向右 pour le déplacer vers la zone Processing Mode of Conflicting Tables.

      Remarque
      • Vous pouvez sélectionner des objets de synchronisation au niveau du schéma ou de la table. Si vous sélectionnez des tables, d'autres objets tels que les vues, les déclencheurs et les procédures stockées ne sont pas synchronisés vers la base de données de destination.

      • Si les tables à synchroniser contiennent des colonnes de type SERIAL et que vous sélectionnez des Precheck and Report Errors incluant la Ignore Errors and Proceed, nous vous recommandons de sélectionner également Sequence ou de synchroniser l'intégralité du schéma.

      Ignore Errors and Proceed

      • Pour renommer un seul objet de synchronisation dans l'instance de destination, cliquez avec le bouton droit sur l'objet dans la zone Source Objects. Pour plus d'informations sur le renommage des objets, consultez Map a single database, table, or column.

      • Pour modifier les noms de plusieurs objets de synchronisation dans l'instance de destination par lot, cliquez sur Source Objects dans le coin supérieur droit de la zone Selected Objects. Pour plus d'informations, consultez Map databases, tables, and columns in a batch.

      Remarque
      • Pour sélectionner les opérations SQL à synchroniser pour une base de données ou une table spécifique, cliquez avec le bouton droit sur l'objet dans la zone Synchronization Types et sélectionnez les opérations souhaitées dans la boîte de dialogue qui s'affiche.

      • Pour filtrer les données à l'aide d'une clause WHERE, cliquez avec le bouton droit sur la table dans la zone Schema Synchronization et spécifiez la condition de filtre dans la boîte de dialogue qui s'affiche. Pour plus d'informations, consultez Configure filter conditions.

    2. Cliquez sur Selected Objects pour configurer les paramètres avancés.

      Parameter

      Description

      Selected 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 obtenir 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 What is a DTS dedicated cluster?.

      Batch Edit

      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 tente immédiatement de rétablir 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 parvient à se reconnecter à la base de données dans le délai spécifié, 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 appliquée aux 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 professionnels 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.

      Selected Objects

      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 Selected Objects doit être inférieure à celle de Selected Objects.

      Next: Advanced Settings

      Pendant l'étape 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 Dedicated Cluster for Task Scheduling, Retry Time for Failed Connections et Retry Time for Other Issues.

      Remarque
      • Cet élément de configuration est disponible uniquement lorsque Retry Time for Other Issues est défini sur Retry Time for Failed Connections.

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

      Enable Throttling for Full Data Synchronization

      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 Queries per second (QPS) to the source database et RPS of Full Data Migration.

      Data migration speed for full migration (MB/s)

      Vous pouvez sélectionner un tag d'environnement pour identifier l'instance. Ce paramètre est facultatif. Vous pouvez le laisser non spécifié pour cet exemple.

      Synchronization Types

      Choisissez d'activer ou non la fonctionnalité Extract, Transform, Load (ETL). Pour plus d'informations, consultez What is ETL? Valeurs valides :

      • Full Data Synchronization : active la fonctionnalité ETL. Saisissez les instructions de traitement des données dans l'éditeur de code. Pour plus d'informations, consultez Configure ETL in a data migration or data synchronization task.

      • Enable Throttling for Incremental Data Synchronization : désactive la fonctionnalité ETL.

      RPS of Incremental Data Synchronization

      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.

      • Data synchronization speed for incremental synchronization (MB/s) : aucune alerte n'est configurée.

      • Environment Tag : configurez les alertes en définissant un seuil d'alerte et en spécifiant un notification d'alerte. Pour plus d'informations, consultez Configure monitoring and alerting during task configuration.

    3. Cliquez sur Configure ETL pour configurer une tâche de validation des données.

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

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

    • Pour afficher les paramètres API permettant de configurer cette instance, placez le curseur sur le bouton Yes et cliquez sur No dans l'infobulle.

    • Une fois que vous avez consulté les paramètres API, cliquez sur Monitoring and Alerting 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'une fois que tous les éléments de prévérification ont été validés.

    • Si la prévérification échoue, cliquez sur No pour l'élément ayant échoué. Corrigez le problème comme indiqué, puis relancez 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 Yes à côté de l'élément. Suivez les instructions pour corriger le problème, puis relancez la prévérification.

      • Pour les éléments de vérification pouvant être ignorés, vous pouvez cliquer successivement sur Next: Data Validation, Next: Save Task Settings and Precheck, Preview OpenAPI parameters et Next: Save Task Settings and Precheck afin d'ignorer l'avertissement et de relancer la prévérification. Si vous choisissez de masquer l'élément d'avertissement, cela peut entraîner des problèmes tels que des incohérences de données et présenter des risques pour votre activité.

  • Achetez l'instance.

    1. Lorsque le View Details atteint 100 %, cliquez sur View Details.

    2. Sur la page Confirm Alert Details, sélectionnez la méthode de facturation et les spécifications du lien pour l'instance de synchronisation des données. Le tableau suivant décrit ces paramètres en détail.

      Catégorie

      Paramètre

      Description

      Ignore

      Méthode de facturation

      • Abonnement : vous payez lors de la création de l'instance. Cette option convient aux besoins à long terme et s'avère plus économique que le paiement à l'utilisation. Plus la durée de l'abonnement est longue, plus la remise est importante.

      • Paiement à l'utilisation : la facturation est horaire. Cette option est adaptée aux besoins ponctuels. Vous pouvez libérer l'instance immédiatement après utilisation pour réduire les coûts.

      Configuration du groupe de ressources

      Groupe de ressources auquel appartient l'instance. La valeur par défaut est le groupe de ressources par défaut. Pour plus d'informations, consultez Qu'est-ce que la gestion des ressources ?.

      Spécification du lien

      DTS propose des spécifications de synchronisation offrant différents niveaux de performance. La spécification du lien de synchronisation influence le débit de synchronisation. Choisissez une spécification adaptée à votre scénario métier. Pour plus d'informations, consultez Spécifications des liens de synchronisation des données.

      Durée de l'abonnement

      En mode abonnement, sélectionnez la durée et la quantité pour l'instance abonnée. Vous pouvez opter pour un abonnement mensuel de 1 à 9 mois, ou un abonnement annuel de 1, 2, 3 ou 5 ans.

      Remarque

      Cette option n'est disponible que si la méthode de facturation est définie sur OK.

    3. Une fois la configuration terminée, lisez et acceptez les Precheck Again.

    4. Cliquez sur Success Rate. Dans la boîte de dialogue Next: Purchase Instance, cliquez sur Purchase.

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

  • Vous pouvez utiliser Data Transmission Service (DTS) pour synchroniser les données d'une base de données PostgreSQL autonome vers PolarDB for PostgreSQL (Compatible with Oracle).

    Prérequis

    • Vous disposez d'une base de données source PostgreSQL autonome et d'un cluster de destination PolarDB for PostgreSQL (Compatible with Oracle).

      Remarque
    • Le cluster de destination PolarDB for PostgreSQL (Compatible with Oracle) doit disposer d'un espace de stockage supérieur à celui de la base de données source PostgreSQL autonome.

    Notes d'utilisation

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

    Type

    Description

    Limites relatives à la base de données source

    • Les tables que vous synchronisez doivent posséder une clé primaire ou une contrainte d'unicité. À défaut, des données en double peuvent apparaître dans la base de données de destination.

      Remarque

      Si vous créez manuellement la table de destination (sans sélectionner New Instance Class comme Subscription), vous devez vous assurer que la table de destination possède la même clé primaire ou la même contrainte d'unicité non nulle que la table source. À défaut, des données en double peuvent apparaître dans la base de données de destination.

    • Si vous synchronisez des données au niveau des tables et devez modifier les objets, tels que le mappage des noms de tables ou de colonnes, pour plus de 5 000 tables dans une seule tâche de synchronisation des données, nous vous recommandons de les répartir sur plusieurs tâches ou de configurer une tâche pour synchroniser l'intégralité de la base de données. À défaut, la tâche pourrait échouer lors de la soumission.

    • Le nom de la base de données à synchroniser ne doit pas contenir de traits d'union (-), par exemple dts-testdata.

    • Journalisation anticipée (WAL) :

      • Vous devez activer WAL en définissant le paramètre wal_level sur logical.

      • Pour une tâche de synchronisation incrémentielle des données, DTS exige que le WAL de la base de données source soit conservé pendant plus de 24 heures. Pour une tâche effectuant à la fois une synchronisation complète et incrémentielle des données, le WAL doit être conservé pendant au moins sept jours. Vous pouvez modifier la période de rétention à plus de 24 heures une fois la synchronisation complète des données terminée. Si une tâche échoue car DTS ne peut pas obtenir le WAL en raison d'une période de rétention trop courte, cet échec peut entraîner, dans des cas extrêmes, une incohérence ou une perte de données. Les problèmes causés par une période de rétention WAL insuffisante ne sont pas couverts par l'accord de niveau de service (SLA) de DTS.

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

    • Assurez-vous que les valeurs des paramètres max_wal_senders et max_replication_slots sont toutes deux supérieures à la somme du nombre de slots de réplication utilisés dans la base de données et du nombre d'instances DTS que vous souhaitez créer avec cette base de données comme source.

    • Si la base de données source contient des transactions de longue durée et que l'instance est configurée pour la synchronisation incrémentielle des données, les données WAL générées avant la validation de ces transactions ne peuvent pas être effacées. Cela peut provoquer une accumulation des données WAL et entraîner un manque d'espace disque sur la base de données source.

    • Si la source est une instance Cloud SQL for PostgreSQL, vous devez saisir un compte de base de données disposant de l'autorisation cloudsqlsuperuser dans le champ Database Account. Lors de la sélection des objets à synchroniser, vous devez choisir des objets que ce compte est autorisé à gérer, ou accorder l'autorisation OWNER sur ces objets à ce compte. Par exemple, exécutez la commande GRANT <owner_of_objects> TO <source_account_for_task> pour permettre au compte d'effectuer des opérations en tant que propriétaire des objets.

      Remarque

      Un compte disposant de l'autorisation cloudsqlsuperuser ne peut pas gérer les données appartenant à d'autres comptes disposant également de l'autorisation cloudsqlsuperuser.

    • En raison des limitations inhérentes aux abonnements logiques dans la base de données source, si un seul enregistrement de données à synchroniser dépasse 256 Mo après une modification incrémentielle, l'instance de synchronisation échouera et devra être reconfigurée.

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

      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.

    • Si vous effectuez une mise à niveau majeure de la base de données source pendant qu'une instance de synchronisation est en cours d'exécution, celle-ci échouera et devra être reconfigurée.

    Autres limites

    • Pour la synchronisation complète ou incrémentielle des données, si les tables synchronisées contiennent des clés étrangères, des déclencheurs ou des déclencheurs d'événements, DTS définit temporairement le paramètre session_replication_role sur replica au niveau de la session. Si le compte de la base de données de destination ne dispose pas de cette autorisation, vous devez définir manuellement le paramètre session_replication_role sur replica dans la base de données de destination. Pendant cette période (lorsque session_replication_role est défini sur replica), des incohérences de données peuvent survenir si des opérations de mise à jour ou de suppression en cascade se produisent dans la base de données source. Une fois la tâche de synchronisation des données DTS libérée, vous pouvez remettre le paramètre session_replication_role à origin.

    • Si une table à synchroniser contient une colonne de type SERIAL, la base de données source crée automatiquement une séquence pour cette colonne. Par conséquent, lorsque vous configurez les Source Objects, si vous sélectionnez Schema Synchronization pour les Synchronization Types, nous vous recommandons de sélectionner également Sequence ou de synchroniser l'intégralité du schéma. À défaut, l'instance de synchronisation pourrait échouer.

    • Une seule tâche de synchronisation des données ne peut synchroniser qu'une seule base de données. Pour synchroniser plusieurs bases de données, vous devez configurer une tâche distincte pour chacune d'elles.

    • DTS ne prend pas en charge la synchronisation des tables du plug-in TimescaleDB, des tables avec héritage inter-schéma ou des tables avec des index uniques basés sur des expressions.

    • Les schémas créés par l'installation de plug-ins ne sont pas pris en charge pour la synchronisation. Vous ne pouvez pas récupérer les informations sur ces schémas dans la console lors de la configuration d'une tâche.

    • Dans les trois scénarios suivants, vous devez exécuter la commande ALTER TABLE schema.table REPLICA IDENTITY FULL; sur les tables sources avant d'y écrire des données afin de garantir la cohérence des données. N'effectuez pas d'opérations de verrouillage de table pendant l'exécution de cette commande pour éviter les interblocages. Si vous ignorez cette vérification lors de la pré-vérification, DTS exécute automatiquement cette commande lors de l'initialisation de l'instance.

      • Lors de la première exécution de l'instance.

      • Lorsque vous sélectionnez des objets au niveau du schéma et qu'une nouvelle table est créée dans le schéma ou qu'une table est reconstruite à l'aide de la commande RENAME.

      • Lorsque vous utilisez la fonctionnalité de modification des objets de synchronisation.

      Remarque
      • Remplacez schema et table dans la commande par les noms du schéma et de la table à synchroniser.

      • Effectuez cette opération pendant les heures creuses.

    • DTS vérifie le contenu des données mais ne prend pas en charge la vérification des métadonnées telles que les séquences. Vous devez vérifier ces métadonnées vous-même.

    • Après avoir basculé votre activité vers la base de données de destination, les séquences ne reprennent pas automatiquement à partir de la valeur maximale des séquences correspondantes dans la base de données source. Avant le basculement, vous devez mettre à jour les valeurs des séquences dans la base de données de destination. Pour plus d'informations, consultez Mettre à jour les valeurs des séquences dans la base de données de destination.

    • DTS crée les tables temporaires suivantes dans la base de données source pour obtenir les instructions DDL pour les données incrémentielles, le schéma des tables incrémentielles et les informations de pulsation. Ne supprimez pas ces tables temporaires pendant la synchronisation. À défaut, la tâche DTS pourrait échouer. Les tables temporaires sont automatiquement supprimées après la libération de l'instance DTS.

      public.dts_pg_class, public.dts_pg_attribute, public.dts_pg_type, public.dts_pg_enum, public.dts_postgres_heartbeat, public.dts_ddl_command, public.dts_args_session et public.aliyun_dts_instance.

    • Pour garantir l'exactitude de la latence de synchronisation affichée, DTS ajoute une table de pulsation nommée dts_postgres_heartbeat à la base de données source.

    • Pendant la synchronisation des données, DTS crée un slot de réplication avec le préfixe dts_sync_ dans la base de données source pour répliquer les données. Ce slot de réplication permet à DTS d'obtenir les journaux incrémentiels générés au cours des 15 dernières minutes à partir de la base de données source. Lorsqu'une tâche de synchronisation des données échoue ou que l'instance est libérée, DTS tente de supprimer automatiquement ce slot de réplication.

      Remarque
      • Si vous modifiez le mot de passe du compte de la base de données source ou supprimez la liste d'autorisation IP pour DTS pendant la synchronisation des données, le slot de réplication ne sera pas nettoyé automatiquement. Nettoyez manuellement le slot de réplication dans la base de données source pour éviter qu'il ne consomme de l'espace disque et ne rende la base de données source indisponible.

      • Si la base de données source subit un basculement, connectez-vous à la base de données de secours pour effectuer le nettoyage manuellement.

      Exécutez l'instruction SQL SELECT * FROM pg_replication_slots; pour afficher tous les slots de réplication dans la base de données source. Dans les résultats, le slot de réplication DTS correspond à l'enregistrement dont la valeur slot_name commence par dts_sync_ et dont la valeur active est true.

    • Avant de démarrer la synchronisation des données, évaluez les performances des bases de données source et de destination. Effectuez la synchronisation pendant les heures creuses. La synchronisation complète des données consomme des ressources de lecture et d'écriture sur les deux bases de données, ce qui peut augmenter leur charge.

    • La synchronisation complète des données effectue des opérations INSERT concurrentes, ce qui peut provoquer une fragmentation des tables dans la base de données de destination. Par conséquent, l'espace de table de l'instance de destination sera plus grand que celui de l'instance source une fois la synchronisation complète des données terminée.

    • Pour la synchronisation des données au niveau des tables, si aucune donnée provenant d'autres sources que DTS n'est écrite dans la base de données de destination, vous pouvez utiliser DMS pour effectuer des modifications DDL en ligne. Pour plus d'informations, consultez Modifier les schémas sans verrouiller les tables.

    • Pendant la synchronisation DTS, n'écrivez pas de données dans la base de données de destination depuis une autre source. Cela pourrait entraîner une incohérence des données. Par exemple, si vous utilisez Data Management (DMS) pour effectuer des modifications DDL en ligne pendant que des données sont écrites depuis d'autres sources, cela peut provoquer une perte de données dans la base de données de destination.

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

      Remarque

      Seuls les paramètres de la 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 Modifier les paramètres de l'instance.

    • Lorsque vous synchronisez des tables partitionnées, vous devez inclure à la fois la table parente et ses partitions enfants comme objets de synchronisation. À défaut, les données de la table partitionnée pourraient devenir incohérentes.

      Important
      • La table parente d'une table partitionnée PostgreSQL ne stocke pas directement les données. Toutes les données sont stockées dans les partitions enfants. Une tâche de synchronisation des données doit inclure la table parente et toutes ses partitions enfants. À défaut, les données des partitions enfants pourraient être omises, entraînant une incohérence des données entre la source et la destination.

      • La synchronisation de tables partitionnées et de tables d'héritage (tables parent-enfant) entre différentes bases de données n'est pas prise en charge. Assurez-vous que les tables partitionnées et toutes leurs partitions, ainsi que les tables parentes et toutes leurs tables enfants, se trouvent dans la même base de données.

    Tarification

    Type de synchronisation

    Frais

    Synchronisation du schéma et synchronisation complète

    Gratuit.

    Synchronisation incrémentielle

    Des frais s'appliquent. Consultez la rubrique Présentation de la facturation.

    Topologies de synchronisation

    • Synchronisation unidirectionnelle un-à-un

    • Synchronisation unidirectionnelle un-à-plusieurs

    • Synchronisation en cascade unidirectionnelle

    • Synchronisation unidirectionnelle plusieurs-à-un

    Pour plus d'informations sur les topologies de synchronisation, consultez la rubrique Topologies de synchronisation.

    Objets pris en charge

    • SCHEMA, TABLE.

      Remarque

      Cela inclut PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, DATATYPE (types de données intégrés) et DEFAULT CONSTRAINT.

    • VIEW, PROCEDURE (nécessite PostgreSQL 11 ou version ultérieure), FUNCTION, RULE, SEQUENCE, EXTENSION, TRIGGER, AGGREGATE, INDEX, OPERATOR, DOMAIN.

    Opérations SQL prises en charge

    Type d'opération

    Opération SQL

    DML

    INSERT, UPDATE, DELETE

    DDL

    • La synchronisation DDL est prise en charge uniquement pour les tâches de synchronisation des données créées après le .

      Important
    • La tâche de synchronisation prend en charge les opérations DDL suivantes, à condition que le compte de la base de données source dispose de privilèges élevés.

      • CREATE TABLE, DROP TABLE

      • ALTER TABLE (y compris RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK et ALTER COLUMN DROP DEFAULT)

      • TRUNCATE TABLE (nécessite que la base de données source soit PostgreSQL 11 ou version ultérieure)

      • CREATE INDEX ON TABLE

      Important
      • Les instructions DDL contenant des informations supplémentaires, telles que CASCADE ou RESTRICT, ne sont pas prises en charge.

      • Les instructions DDL exécutées dans une session utilisant la commande SET session_replication_role = replica ne sont pas synchronisées.

      • Les instructions DDL exécutées en appelant une FUNCTION ou un bloc de code anonyme ne sont pas prises en charge.

      • Si une validation (commit) contient à la fois des opérations DML et DDL, les opérations DDL ne sont pas synchronisées.

      • Si une validation (commit) contient des opérations DDL sur des objets qui ne sont pas synchronisés, ces opérations ne sont pas synchronisées.

      • Les instructions DDL exécutées directement au sein d'un plugin via l'interface SPI (Server Programming Interface) ne sont pas prises en charge.

    Exigences en matière d'autorisations pour les comptes de base de données

    Base de données

    Autorisations requises

    Création de compte et autorisation

    PostgreSQL autogéré

    Autorisation superuser.

    Utilisez l'instruction CREATE USER et gérez les autorisations des utilisateurs.

    PolarDB for PostgreSQL (compatible Oracle)

    Autorisation de propriétaire (owner) sur la base de données.

    Créer un compte de base de données.

    Remarque

    Vous spécifiez le propriétaire de la base de données lors de sa création.

    Préparation

    Remarque

    Les étapes suivantes s'appliquent aux systèmes Linux.

    Effectuez les préparations suivantes pour toutes les versions de PostgreSQL autogéré.

    1. Connectez-vous au serveur qui héberge la base de données PostgreSQL autogérée.

    2. Exécutez la commande suivante pour vérifier le nombre d'emplacements de réplication actuellement utilisés :

      select count(1) from pg_replication_slots;
    3. Modifiez le fichier de configuration postgresql.conf : définissez wal_level sur logical et assurez-vous que max_wal_senders et max_replication_slots sont tous deux supérieurs à la somme des emplacements de réplication déjà utilisés et du nombre d'instances DTS que vous prévoyez de créer avec cette base de données PostgreSQL autogérée comme source.

      # - Settings -
      wal_level = logical			# minimal, replica, or logical
      					# (change requires restart)
      ......
      # - Sending Server(s) -
      # Set these on the master and on any standby that will send replication data.
      max_wal_senders = 10		# max number of walsender processes
      				# (change requires restart)
      #wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
      #wal_sender_timeout = 60s	# in milliseconds; 0 disables
      max_replication_slots = 10	# max number of replication slots
      				# (change requires restart)
      Remarque

      Après avoir modifié le fichier de configuration, redémarrez la base de données PostgreSQL autogérée pour appliquer les modifications.

    4. Ajoutez les adresses IP DTS au fichier de configuration pg_hba.conf de la base de données PostgreSQL autogérée. Vous devez uniquement ajouter la plage d'adresses IP DTS de la région où réside la base de données de destination. Pour plus d'informations, consultez la rubrique Ajout d'adresses IP de serveurs DTS à la liste d'autorisation.

      Remarque
      • Après avoir modifié le fichier de configuration, exécutez la commande SELECT pg_reload_conf(); ou redémarrez la base de données PostgreSQL autogérée pour appliquer les modifications.

      • Pour plus d'informations sur le fichier de configuration, consultez la page The pg_hba.conf File. Si vous avez déjà défini l'adresse de confiance sur 0.0.0.0/0 (comme indiqué dans l'exemple suivant), vous pouvez ignorer cette étape.

      # "local" is for Unix domain socket connections only
      local   all             all                                     trust
      # IPv4 local connections:
      host    all             all             0.0.0.0/0               md5
      # IPv6 local connections:
      host    all             all             ::1/128                 trust
      # Allow replication connections from localhost, by a user with the
      # replication privilege.
      local   replication     postgres                                trust
      host    replication     postgres        0.0.0.0/0               md5
    5. Dans l'instance de base de données de destination, créez les bases de données et les schémas correspondant aux objets que vous prévoyez de synchroniser.

    Si votre version de PostgreSQL autogéré est comprise entre 9.4.8 et 10.0, vous devez également effectuer les préparations suivantes.

    1. Téléchargez le code source de PostgreSQL, puis compilez et installez-le.

      1. Connectez-vous au serveur qui héberge la base de données PostgreSQL autogérée.

      2. En fonction de la version de la base de données PostgreSQL autogérée source, téléchargez le code source de la version correspondante depuis le site Web officiel de PostgreSQL.

      3. Exécutez successivement les commandes sudo ./configure, sudo make et sudo make install pour configurer, compiler et installer le code source.

        Important
        • Lors de la compilation et de l'installation de PostgreSQL, la version du système d'exploitation de PostgreSQL doit correspondre à la version de GCC (GNU Compiler Collection).

        • Si sudo ./configure échoue, ajustez la commande en fonction du message d'erreur. Par exemple, si l'erreur est readline library not found. Use --without-readline to disable readline support., modifiez la commande en sudo ./configure --without-readline.

        • Si vous installez PostgreSQL d'une autre manière, vous devez compiler ali_decoding dans un environnement de test disposant de la même version du système d'exploitation et de la même version de GCC.

    2. Téléchargez le plug-in ali_decoding fourni par DTS, puis compilez et installez-le.

      1. Téléchargez ali_decoding.

      2. Copiez l'intégralité du répertoire ali_decoding dans le répertoire contrib de PostgreSQL compilé et installé.

        total 1068
        -rw-r--r--  1 1107 1107    384 Sep 27 2016 aclocal.m4
        drwxrwxrwx  2 1107 1107   4096 Sep 27 2016 config
        -rw-r--r--  1 root root 374806 Sep  7 10:10 config.log
        -rwxr-xr-x  1 root root  39032 Sep  7 10:10 config.status
        -rwxr-xr-x  1 1107 1107 471157 Sep 27 2016 configure
        -rw-r--r--  1 1107 1107  75195 Sep 27 2016 configure.in
        drwxrwxrwx 56 1107 1107   4096 Sep  7 10:28 contrib
        -rw-r--r--  1 1107 1107   1192 Sep 27 2016 COPYRIGHT
        drwxrwxrwx  3 1107 1107   4096 Sep 27 2016 doc
        -rw-r--r--  1 root root   3638 Sep  7 10:10 GNUmakefile
        -rw-r--r--  1 1107 1107   3638 Sep 27 2016 GNUmakefile.in
        -rw-r--r--  1 1107 1107    283 Sep 27 2016 HISTORY
        -rw-r--r--  1 1107 1107  75065 Sep 27 2016 INSTALL
        -rw-r--r--  1 1107 1107   1489 Sep 27 2016 Makefile
        -rw-r--r--  1 1107 1107   1209 Sep 27 2016 README
        drwxrwxrwx 16 1107 1107   4096 Sep 27 2016 src
      3. Accédez au répertoire ali_decoding et remplacez le contenu du Makefile par le contenu suivant :

        # contrib/ali_decoding/Makefile
        MODULE_big = ali_decoding
        MODULES = ali_decoding
        OBJS    = ali_decoding.o
        DATA = ali_decoding--0.0.1.sql ali_decoding--unpackaged--0.0.1.sql
        EXTENSION = ali_decoding
        NAME = ali_decoding
        #subdir = contrib/ali_decoding
        #top_builddir = ../..
        #include $(top_builddir)/src/Makefile.global
        #include $(top_srcdir)/contrib/contrib-global.mk
        #PG_CONFIG = /usr/pgsql-9.6/bin/pg_config
        #pgsql_lib_dir := $(shell $(PG_CONFIG) --libdir)
        #PGXS := $(shell $(PG_CONFIG) --pgxs)
        #include $(PGXS)
        # Use the following for source installation
        ifdef USE_PGXS
        PG_CONFIG = pg_config
        PGXS := $(shell $(PG_CONFIG) --pgxs)
        include $(PGXS)
        else
        subdir = contrib/ali_decoding
        top_builddir = ../..
        include $(top_builddir)/src/Makefile.global
        include $(top_srcdir)/contrib/contrib-global.mk
        endif
      4. Accédez au répertoire ali_decoding et exécutez successivement les commandes sudo make et sudo make install pour compiler ali_decoding et générer les fichiers requis pour l'installation d'ali_decoding.

      5. Copiez les fichiers suivants aux emplacements spécifiés.

        /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/ali_decoding.so'
        /usr/bin/install -c -m 644 ./ali_decoding.control '/usr/local/pgsql/share/extension/'
        /usr/bin/install -c -m 644 ./ali_decoding--0.0.1.sql ./ali_decoding--unpackaged--0.0.1.sql  '/usr/local/pgsql/share/extension/'
        /usr/bin/install -c -m 755  ali_decoding.so '/usr/local/pgsql/lib/'
    3. Dans l'instance de base de données de destination, créez les bases de données et les schémas correspondant aux objets que vous prévoyez de synchroniser.