Todos los productos
Search
Centro de documentos

Data Transmission Service:Configurar una política de resolución de conflictos

Última actualización: Sep 05, 2026

Las políticas de resolución de conflictos controlan cómo DTS maneja los conflictos de datos en las instancias de sincronización bidireccional para mantener estables las tareas de sincronización y garantizar la consistencia de los datos.

Funcionamiento

En la sincronización bidireccional, ambos nodos pueden recibir escrituras simultáneamente. Cuando el mismo registro se modifica en ambos nodos casi al mismo tiempo, se produce un conflicto. DTS detecta estos conflictos y los resuelve según la política que configure.

Detección de conflictos: DTS identifica los conflictos por tipo. El comportamiento varía dependiendo de si la instancia es ApsaraDB for MongoDB u otra base de datos compatible:

Sincronización bidireccional de ApsaraDB for MongoDB:

Tipo de conflicto

Condición de activación

Comportamiento de DTS

Conflicto de unicidad en INSERT

Una operación INSERT viola una restricción única en la instancia de destino

DTS ignora automáticamente la operación INSERT

Discrepancia de registro en UPDATE

El registro por actualizar no existe o entra en conflicto con un registro existente en la instancia de destino

DTS ignora automáticamente la operación UPDATE

Registro faltante en DELETE

El registro por eliminar no existe en la instancia de destino

DTS ignora automáticamente la operación DELETE

Otras bases de datos compatibles:

Tipo de conflicto

Condición de activación

Comportamiento de DTS

Conflicto de unicidad en INSERT

Se inserta un registro con la misma clave primaria en ambos nodos casi al mismo tiempo

Uno de los registros insertados falla en la sincronización debido a la clave primaria duplicada

Discrepancia de registro en UPDATE

El registro por actualizar no existe o entra en conflicto con un registro existente en la instancia de destino

DTS convierte la operación UPDATE en INSERT; entonces pueden ocurrir conflictos de unicidad

Registro faltante en DELETE

El registro por eliminar no existe en la instancia de destino

DTS ignora la operación DELETE sin importar la política de resolución de conflictos configurada

Resolución de conflictos: DTS responde a cada conflicto detectado según la política configurada. Hay dos niveles de política disponibles:

  • Política de resolución de conflictos global: se aplica a todos los objetos de la tarea de sincronización.

  • Política de resolución de conflictos independiente: se aplica a columnas específicas y anula la política global para dichas columnas.

DTS no garantiza que la detección evite todos los conflictos. Las diferencias de hora del sistema entre los nodos y la latencia de sincronización pueden permitir que las escrituras conflictivas pasen desapercibidas. Para evitar conflictos, asegúrese de actualizar los registros con la misma clave primaria, clave primaria de negocio o clave única en un solo nodo de sincronización a la vez. Si los registros se actualizan en ambos nodos, DTS responderá a los conflictos según la política de resolución configurada para la tarea.

Instancias compatibles

Tipo de política

Instancias compatibles

Política de resolución de conflictos global

Todas las instancias de sincronización bidireccional, excepto las instancias Tair (Enterprise Edition). Para consultar las instancias compatibles, consulte Two-way synchronization.

Política de resolución de conflictos independiente

Sincronización bidireccional entre bases de datos MySQL; sincronización bidireccional entre bases de datos PolarDB for MySQL

Elegir una política de resolución de conflictos

Políticas globales

Política

Comportamiento

Cuándo usarla

Overwrite

Sobrescribe el registro en conflicto en la instancia de destino con el registro entrante

Los datos entrantes siempre deben tener prioridad; el estado del destino es prescindible

Ignore

Omite la sentencia conflictiva; la tarea continúa con el registro existente en la instancia de destino

Los datos del destino tienen prioridad; los cambios entrantes deben descartarse en caso de conflicto

TaskFailed

Detiene la tarea de sincronización y entra en estado de error, lo que requiere intervención manual

Los conflictos nunca deben pasar desapercibidos; cada conflicto requiere revisión humana

Políticas independientes (nivel de columna)

Las políticas independientes se aplican a columnas específicas en instancias de sincronización bidireccional de MySQL y PolarDB for MySQL. Admiten las mismas tres opciones que las políticas globales, además de dos opciones de comparación numérica:

Política

Comportamiento

Cuándo usarla

Overwrite

Sobrescribe el valor de la columna en conflicto en la instancia de destino

El valor entrante siempre debe tener prioridad

Ignore

Conserva el valor existente en la instancia de destino

El valor del destino tiene prioridad

TaskFailed

Detiene la tarea de sincronización; requiere intervención manual

Cada conflicto requiere revisión

UseMax

Escribe el mayor de los dos valores en conflicto en la instancia de destino. Si el registro de destino está ausente o el tipo de columna es incompatible, recurre a Overwrite.

Contadores, puntuaciones o cualquier columna numérica donde deba prevalecer el valor mayor; por ejemplo, para rastrear un máximo acumulado

UseMin

Escribe el menor de los dos valores en conflicto en la instancia de destino. Si el registro de destino está ausente o el tipo de columna es incompatible, recurre a Ignore.

Columnas numéricas donde deba prevalecer el valor menor; por ejemplo, para rastrear la marca de tiempo más antigua

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Una instancia de sincronización bidireccional con Synchronization Topology establecida en Two-way Synchronization

  • Acceso a la fase Configure Objects para la tarea directa o inversa en la instancia de sincronización bidireccional

Notas de uso

  • Para la sincronización bidireccional entre instancias de ApsaraDB for MongoDB, solo se admite la política Ignore. DTS ignora automáticamente las operaciones INSERT, UPDATE y DELETE conflictivas.

  • Las políticas de resolución de conflictos independientes se aplican únicamente a la sincronización incremental.

  • La política global no afecta a las columnas con una política de resolución de conflictos independiente.

  • Si no configura una política de resolución de conflictos independiente durante la configuración inicial, no podrá agregar una posteriormente al modificar los objetos de sincronización.

  • Si una tarea de sincronización se pausa o reinicia y hay un retraso, la política configurada no surte efecto durante dicho periodo; DTS sobrescribe los datos en la instancia de destino de forma predeterminada.

Configurar una política de resolución de conflictos global

En la fase Configure Objects, seleccione una Global Conflict Resolution Policy.

Para la sincronización bidireccional entre instancias de ApsaraDB for MongoDB, solo Ignore está disponible.

image

Configurar una política de resolución de conflictos independiente

Las políticas de resolución de conflictos independientes se configuran en la base de datos o en la tabla.

En la base de datos

  1. En Selected Objects, haga clic derecho en la base de datos que desea sincronizar.

  2. En el cuadro de diálogo, bajo Independent Conflict Resolution Policy, establezca Enable Independent Conflict Resolution Policy en Yes.

  3. Seleccione una Conflict Resolution Policy.

  4. Haga clic en Columns for Conflict Detection a la derecha de Add Column.

  5. En el campo Column Name, introduzca el nombre de la columna.

    Si la columna utiliza la función de asignación, introduzca el nombre de la columna asignada. Para agregar más columnas, haga clic nuevamente en Columns for Conflict Detection.
  6. Haga clic en OK.

En la tabla

  1. En Selected Objects, haga clic derecho en la tabla que desea sincronizar.

  2. En el cuadro de diálogo, bajo Column, seleccione Independent Conflict Resolution Policy.

  3. En Columns for Conflict Detection, seleccione las columnas a las que desea asignar una política independiente.

    Las columnas con claves primarias y restricciones únicas están seleccionadas de forma predeterminada.
  4. Seleccione una Conflict Resolution Policy.

    Si el sistema selecciona automáticamente Columns for Conflict Detection, UseMax y UseMin no estarán disponibles.
  5. Haga clic en OK.

Preguntas frecuentes

¿Puedo modificar una política de resolución de conflictos después de que la tarea esté en ejecución?

Para cambiar la política de resolución de conflictos global, modify the objects to be synchronized. No es posible agregar políticas de resolución de conflictos independientes después de la configuración inicial.