Utilisez Data Transmission Service (DTS) pour mettre à jour les valeurs de séquence dans la base de données de destination d'une instance de synchronisation ou de migration. Cette opération permet d'éviter les conflits de clé primaire causés par des modifications de séquence.
Contexte
Une séquence est un objet de base de données qui génère des nombres uniques croissants ou décroissants, généralement utilisés comme valeurs de clé primaire. Après une synchronisation ou une migration de données, les modifications apportées aux séquences peuvent entraîner des conflits de clé primaire dans la base de données de destination. La fonctionnalité d'ajustement des valeurs de séquence lit la valeur actuelle de la séquence depuis la base de données source, y ajoute un décalage et applique le résultat à la base de données de destination.
Par exemple, si la valeur actuelle d'une séquence dans la base de données source est 12345 et que vous définissez le décalage sur 10000, DTS met à jour la valeur de la séquence correspondante dans la base de données de destination à 22345.
Bases de données prises en charge
Dans le tableau suivant, PostgreSQL désigne à la fois les instances ApsaraDB RDS for PostgreSQL et les bases de données PostgreSQL autogérées.
|
Source |
Destination |
Documentation |
|
PostgreSQL |
PostgreSQL, PolarDB (Compatible with Oracle), PolarDB for PostgreSQL |
|
|
PolarDB for PostgreSQL |
PostgreSQL, PolarDB for PostgreSQL |
|
|
PolarDB (Compatible with Oracle) |
PolarDB (Compatible with Oracle) |
|
|
Oracle |
PolarDB (Compatible with Oracle) |
Prérequis
L'instance de synchronisation ou de migration doit répondre aux conditions suivantes :
L'instance est une instance de synchronisation ou de migration de données qui inclut une tâche incrémentielle.
L'instance a atteint la phase Incremental Data Migration ou Incremental Data Synchronization.
Le Status de l'instance est Running ou Paused.
Considérations
Cette fonctionnalité n'est pas prise en charge pour les instances de synchronisation bidirectionnelle.
Par défaut, DTS met à jour une séquence dans la base de données de destination lorsque son nom correspond à celui d'une séquence dans la base de données source.
Si des données incrémentielles sont écrites dans la base de données source après la mise à jour des valeurs de séquence, les valeurs de séquence de destination peuvent devenir incorrectes.
Procédure
-
Accédez à la page de liste des tâches pour la région appropriée en utilisant l'une des méthodes suivantes.
Console DTS
Connectez-vous à la console Data Transmission Service (DTS).
Dans le volet de navigation de gauche, cliquez sur Data Synchronization ou Data Migration.
Dans le coin supérieur gauche de la page, sélectionnez la région où se trouve l'instance.
Console DMS
RemarqueLes étapes peuvent varier selon le mode et la disposition de la console Data Management Service (DMS). Pour plus d'informations, consultez les rubriques Mode simple de la console et Personnaliser la disposition et le style de la console DMS.
Connectez-vous à la console Data Management Service (DMS).
Dans la barre de menus supérieure, choisissez ou .
Dans la liste déroulante située à droite de Data Synchronization Tasks ou Data Migration Tasks, sélectionnez la région où se trouve l'instance.
Recherchez l'instance cible et cliquez sur son ID.
-
Mettez à jour les valeurs de séquence dans la base de données de destination.
Sur la page Task Management, cliquez sur l'onglet Incremental Write.
Dans l'onglet Basic Information, cliquez sur Sync Sequence.
Dans la boîte de dialogue qui s'affiche, définissez le Offset.
En bas de la boîte de dialogue, cliquez sur Synchronize.
-
Consultez le résultat.
Une fois la tâche terminée, un message Synchronized s'affiche, indiquant les valeurs de séquence avant et après la mise à jour.
Cliquez sur Close.