Todos los productos
Search
Centro de documentos

Data Transmission Service:Sincronizar tablas sin claves primarias ni restricciones UNIQUE

Última actualización: Sep 07, 2026

Las tablas sin claves primarias ni restricciones UNIQUE no tienen un identificador único de fila, por lo que la sincronización estándar puede escribir la misma fila más de una vez; por ejemplo, cuando el módulo de escritura incremental se reinicie después de una interrupción. La función de escritura Exactly-Once de Data Transmission Service (DTS) evita escrituras duplicadas mediante el seguimiento de cada fila confirmada en tablas transaccionales, de modo que las operaciones que se reproducen se omiten de forma segura.

Cómo funciona

Durante la sincronización completa, DTS examina por completo todas las tablas sin claves primarias ni restricciones UNIQUE y genera instantáneas de tabla para establecer una línea base.

Para la sincronización incremental, DTS mantiene una base de datos llamada dts en la instancia de destino. Esta base de datos contiene tablas transaccionales que registran qué filas ya se escribieron. Cuando el módulo de escritura incremental reproduce un lote —por ejemplo, después de un reinicio—, DTS comprueba estas tablas y omite las filas que ya se confirmaron, con lo que evita duplicados.

Importante

La escritura Exactly-Once solo es compatible con las instancias de sincronización bidireccional.

Integraciones compatibles

La escritura Exactly-Once admite las combinaciones de bases de datos de origen y destino que se muestran a continuación. Todas las combinaciones requieren una instancia de sincronización bidireccional.

Base de datos de origen

Base de datos de destino

MySQL

MySQL, PolarDB for MySQL

PolarDB for MySQL

MySQL, PolarDB for MySQL

Alcance y limitaciones

Antes de que habilite esta función, confirme que su configuración cumple con todos los requisitos que se indican a continuación:

  • La tarea de sincronización debe ser una tarea de full and incremental data synchronization en una instancia de sincronización bidireccional específica. Para los escenarios compatibles, consulte Supported data synchronization scenarios.

  • Multi-master Cluster (Limitless) Edition Los clústeres de PolarDB for MySQL no admiten esta función.

  • Las tareas que usan el método de facturación serverless no admiten esta función.

  • Cuando la habilite, el rendimiento de escritura incremental se limita a 3,000 RPS.

  • Las operaciones DDL no son compatibles. Ejecutar DDL durante una tarea activa puede hacer que la tarea falle. Las operaciones DDL que borran datos, como TRUNCATE, pueden causar inconsistencia de datos.

  • Para tablas sin claves primarias ni restricciones UNIQUE:

    • Si el Database Type de la base de datos de origen es MySQL y el Access Method no es Alibaba Cloud Instance, la base de datos de origen debe estar en modo de identificador global de transacciones (GTID) y las tablas deben usar un motor de almacenamiento transaccional como InnoDB.

    • Una sola tabla no puede superar 200 GB.

Notas de uso

Las tablas se bloquean durante la sincronización

Cuando el Database Type de origen es MySQL o PolarDB for MySQL, las tablas sin claves primarias ni restricciones UNIQUE se bloquean temporalmente durante la sincronización.

Puede haber pérdida de datos después de una operación DDL que borra datos

Ejecutar una operación DDL que borra datos, como TRUNCATE, en la base de datos de origen mientras la escritura Exactly-Once está activa puede causar pérdida de datos, especialmente si el módulo de escritura incremental se reinicia después de la operación. Es responsable de garantizar la consistencia de los datos.

No modifique la base de datos dts en el destino

Las tareas de sincronización completa e incremental crean una base de datos o esquema llamado dts en la instancia de destino y lo llenan con tablas transaccionales. No ejecute operaciones DML en estas tablas mientras la tarea de DTS esté en ejecución.

Las tareas de sincronización remota heredan la configuración de escritura Exactly-Once

En una tarea de sincronización remota, la configuración Enable Exactly-Once Write adopta de forma predeterminada la configuración de la tarea de sincronización directa y no se puede modificar.

Habilite la escritura Exactly-Once

  1. En la configuración de la tarea de sincronización directa, vaya al paso Configure Objects.

    Si está usando la versión anterior de la página de configuración, vaya al paso Configure Objects and Advanced Settings. Para obtener instrucciones de configuración, consulte Overview of synchronization solutions.
  2. Establezca Enable Exactly-Once Write en Yes.

  3. Complete la configuración restante.