Utilice Data Transmission Service (DTS) para actualizar los valores de secuencia en la base de datos de destino de una instancia de sincronización o migración. Esto evita conflictos de clave primaria provocados por cambios en las secuencias.
Contexto
Una secuencia es un objeto de base de datos que genera números únicos ascendentes o descendentes, los cuales se usan habitualmente como valores de clave primaria. Después de una sincronización o migración de datos, los cambios en las secuencias pueden causar conflictos de clave primaria en la base de datos de destino. La función de ajuste de valores de secuencia lee el valor actual de la secuencia en la base de datos de origen, le suma un desplazamiento y aplica el resultado en la base de datos de destino.
Por ejemplo, si el valor actual de una secuencia en la base de datos de origen es 12345 y usted establece el desplazamiento en 10000, DTS actualiza el valor de la secuencia correspondiente en la base de datos de destino a 22345.
Bases de datos compatibles
En la siguiente tabla, PostgreSQL hace referencia tanto a instancias de ApsaraDB RDS for PostgreSQL como a bases de datos PostgreSQL autogestionadas.
|
Origen |
Destino |
Documentación |
|
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) |
Requisitos previos
La instancia de sincronización o migración debe cumplir con las siguientes condiciones:
La instancia corresponde a una tarea de sincronización o migración de datos que incluye una tarea incremental.
La instancia ha entrado en la fase de Incremental Data Migration o Incremental Data Synchronization.
El Status de la instancia es Running o Paused.
Consideraciones
Esta función no es compatible con instancias de sincronización bidireccional.
De forma predeterminada, DTS actualiza una secuencia en la base de datos de destino cuando su nombre coincide con una secuencia de la base de datos de origen.
Si se escriben datos incrementales en la base de datos de origen después de actualizar los valores de secuencia, los valores de secuencia en el destino podrían volverse incorrectos.
Procedimiento
-
Vaya a la página de lista de tareas de la región correspondiente mediante uno de los siguientes métodos.
DTS console
Inicie sesión en la consola de Data Transmission Service (DTS).
En el panel de navegación izquierdo, haga clic en Data Synchronization o Data Migration.
En la esquina superior izquierda de la página, seleccione la región donde se encuentra la instancia.
DMS console
NotaLos pasos pueden variar según el modo y el diseño de la consola de Data Management Service (DMS). Para obtener más información, consulte Simple mode console y Customize the layout and style of the DMS console.
Inicie sesión en la consola de Data Management Service (DMS).
En la barra de menú superior, elija o .
En la lista desplegable situada a la derecha de Data Synchronization Tasks o Data Migration Tasks, seleccione la región donde se encuentra la instancia.
Localice la instancia objetivo y haga clic en el ID de la instancia.
-
Actualice los valores de secuencia en la base de datos de destino.
En la página Task Management, haga clic en la pestaña Incremental Write.
En la pestaña Basic Information, haga clic en Sync Sequence.
En el cuadro de diálogo que aparece, establezca el Offset.
En la parte inferior del cuadro de diálogo, haga clic en Synchronize.
-
Consulte el resultado.
Cuando la tarea finaliza, se muestra un mensaje de Synchronized que indica los valores de la secuencia antes y después de la actualización.
Haga clic en Close.