Todos los productos
Search
Centro de documentos

Data Transmission Service:Synchronize data from PolarDB-X 2.0 to SelectDB

Última actualización: Sep 07, 2026

Utilice Data Transmission Service (DTS) para replicar datos de una instancia de PolarDB-X 2.0 a una instancia de ApsaraDB for SelectDB. DTS se encarga de la sincronización del esquema, la carga completa de los datos y la replicación incremental continua mediante binlog.

Importante

Esta función se encuentra en fase de pruebas limitadas y solo está disponible para algunos usuarios.

Requisitos previos

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

Facturación

Tipo de sincronización

Costo

Sincronización de esquemas y sincronización completa de datos

Gratuita

Sincronización incremental de datos

De pago. Consulte Descripción general de la facturación.

Limitaciones

Requisitos de la base de datos de origen

  • Ancho de banda: el servidor que aloja la base de datos de origen debe tener como mínimo 100 Mbit/s de ancho de banda de salida. Un ancho de banda menor reduce la velocidad de sincronización.

  • Tipo de instancia: no son compatibles las instancias de solo lectura de PolarDB-X 2.0 Enterprise Edition.

  • Objetos no compatibles: no es posible sincronizar INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER ni FK. Tampoco se admiten los objetos TABLEGROUP ni las bases de datos o esquemas con un atributo Locality.

  • Nombres de tablas: no se pueden sincronizar las tablas cuyos nombres contengan letras mayúsculas.

  • Requisito de clave primaria: las tablas deben tener una restricción PRIMARY KEY o UNIQUE con todos los campos únicos. De lo contrario, el destino podría contener registros duplicados.

  • Límite de tablas por tarea: si selecciona tablas individuales como objetos para sincronizar y necesita cambiarles el nombre a las tablas o columnas en el destino, una sola tarea admite hasta 5,000 tablas. Para más de 5,000 tablas, divida el trabajo en varias tareas o sincronice a nivel de base de datos.

  • Registro binario: el registro binario está habilitado de forma predeterminada en PolarDB-X 2.0. Compruebe que el parámetro binlog_row_image esté establecido en full. Si no es así, la comprobación previa falla y la tarea no puede iniciarse. Consulte Configuración de parámetros.

  • Instrucciones DDL durante la sincronización: no ejecute instrucciones DDL que modifiquen los esquemas de bases de datos o tablas durante la sincronización de esquemas o la sincronización completa de datos. Hacerlo provoca que la tarea falle.

  • Cambios de red: si cambia la configuración de red de la instancia de PolarDB-X 2.0, la instancia de sincronización podría experimentar latencia durante un periodo de tiempo.

Requisitos de la base de datos de destino

  • Tipos de tabla compatibles: los datos solo se pueden sincronizar hacia tablas con motor Unique o Duplicate en SelectDB.

  • Tablas con motor Unique: todas las claves únicas de la tabla de destino deben existir en la tabla de origen e incluirse entre los objetos que se van a sincronizar. La ausencia de claves genera inconsistencias en los datos.

  • Tablas con motor Duplicate: pueden aparecer registros duplicados cuando se reintenta o reinicia la instancia de sincronización, o cuando operaciones DML modifican el mismo registro más de una vez después de iniciar la tarea. DTS convierte las instrucciones UPDATE y DELETE en instrucciones INSERT para las tablas con motor Duplicate. Utilice las columnas adicionales (_is_deleted, _version, _record_id) para eliminar duplicados. Consulte Columnas adicionales para tablas con motor Duplicate.

  • No cree clústeres durante la sincronización: crear clústeres en la instancia de SelectDB de destino mientras la tarea se ejecuta provoca que esta falle. Si la tarea falla, reinicie la instancia de sincronización para reanudarla.

  • No agregue nodos de backend durante la sincronización: agregar nodos de backend a la base de datos de SelectDB durante la sincronización provoca que la tarea falle. Reinicie la instancia de sincronización para reanudarla.

  • Requisitos de nomenclatura: SelectDB solo admite nombres de bases de datos y tablas que comiencen con una letra. Utilice la función de asignación de nombres de objetos para cambiar el nombre de cualquier base de datos o tabla cuyo nombre inicie con un carácter distinto de una letra.

  • Nombres con caracteres chinos: si el nombre de una base de datos, tabla o columna contiene caracteres chinos, utilice la asignación de nombres de objetos para cambiarlo antes de sincronizar. De lo contrario, la tarea podría fallar.

  • Diferencia en la longitud de VARCHAR: en PolarDB-X 2.0, VARCHAR(M) define la longitud en caracteres. En SelectDB, VARCHAR(N) define la longitud en bytes. Si no utiliza la sincronización de esquemas de DTS, establezca la longitud del campo VARCHAR en SelectDB al cuádruple de la longitud correspondiente en PolarDB-X 2.0 para evitar la pérdida de datos.

  • Restricciones de DDL: no es posible modificar operaciones DDL en varias columnas a la vez ni ejecutar operaciones DDL consecutivas sobre la misma tabla.

Consideraciones operativas

  • Escrituras de latido: DTS ejecuta periódicamente CREATE DATABASE IF NOT EXISTS en la base de datos de origen para escribir datos de latido que avanzan la posición del binlog. Si establece Whether to delete SQL operations on heartbeat tables of forward and reverse tasks en Yes (o si la cuenta de origen carece del permiso CREATE DATABASE) y no se ejecutan operaciones DML en el origen durante un periodo prolongado, la latencia de sincronización mostrada podría ser inexacta. Para actualizar la visualización de la latencia, ejecute una operación DML en la base de datos de origen.

  • Parámetro bucket_count: en la sección Selected Objects, especifique el parámetro bucket_count. El valor debe ser un número entero positivo. El valor predeterminado es auto.

  • Carga de la sincronización completa de datos: durante la sincronización completa de datos, DTS consume recursos de lectura y escritura tanto en la base de datos de origen como en la de destino, lo que aumenta la carga del servidor. Ejecute la tarea fuera del horario de mayor actividad, cuando el uso de CPU en ambas bases de datos sea inferior al 30 %.

  • Fragmentación del almacenamiento: las operaciones INSERT simultáneas durante la inicialización completa pueden dejar fragmentos en las tablas de destino. Después de la inicialización completa, las tablas de destino podrían ocupar más espacio de almacenamiento que sus equivalentes de origen.

  • Escrituras externas durante la sincronización: si orígenes distintos de DTS escriben en la base de datos de destino durante la sincronización, pueden producirse inconsistencias en los datos y la tarea podría fallar.

  • Recuperación tras fallos de tareas: si una tarea de DTS falla, el soporte de DTS intenta restaurarla en un plazo de 8 horas. Durante la restauración, la tarea podría reiniciarse y sus parámetros podrían modificarse. Los parámetros de la base de datos no se modifican. Entre los parámetros que podrían modificarse se incluyen, entre otros, los descritos en la sección "Modificar parámetros de instancia" del tema Modificar los parámetros de una instancia de DTS.

Operaciones SQL compatibles con la sincronización incremental

Tipo de operación

Instrucciones SQL

DML

INSERT, UPDATE, DELETE

DDL

ADD COLUMN; DROP COLUMN; DROP TABLE; TRUNCATE TABLE; RENAME TABLE

Importante

RENAME TABLE puede causar inconsistencias en los datos si seleccionó la tabla (y no su base de datos principal) como objeto de sincronización. Si se cambia el nombre de una tabla y su nueva base de datos principal no está incluida entre los objetos sincronizados, los datos de esa tabla dejan de sincronizarse. Para evitarlo, seleccione la base de datos como objeto de sincronización en lugar de tablas individuales.

Permisos obligatorios para las cuentas de base de datos

Base de datos

Permisos obligatorios

Referencias

PolarDB-X 2.0 de origen

REPLICATION SLAVE, REPLICATION CLIENT, SELECT (sobre los objetos que se van a sincronizar)

Manage database accounts y Account permission issues during data synchronization

SelectDB de destino

Usage_priv (acceso al clúster), Select_priv, Load_priv, Alter_priv, Create_priv, Drop_priv

Cluster permission management y Basic permission management

Crear una tarea de sincronización de datos

Este procedimiento consta de siete pasos:

  1. Vaya a la página Data Synchronization.

  2. Configure las bases de datos de origen y de destino.

  3. Seleccione los objetos que desea sincronizar.

  4. Configure los ajustes avanzados.

  5. (Opcional) Configure los campos de bases de datos y tablas.

  6. Ejecute una comprobación previa.

  7. Adquiera una instancia.

Paso 1: Ir a la página Data Synchronization

Utilice la consola de DTS o la consola de DMS.

Consola de DTS:

  1. Inicie sesión en la consola de DTS.

  2. En el panel de navegación izquierdo, haga clic en Data Synchronization.

  3. En la esquina superior izquierda, seleccione la región donde reside la tarea de sincronización de datos.

Consola de DMS:

Los pasos exactos pueden variar según el modo y el diseño de su consola de DMS. Consulte Modo simple y Personalizar el diseño y el estilo de la consola de DMS .
  1. Inicie sesión en la consola de DMS.

  2. En la barra de navegación superior, coloque el puntero sobre Data + AI y elija DTS (DTS) > Data Synchronization.

  3. En la lista desplegable situada a la derecha de Data Synchronization Tasks, seleccione la región donde reside la instancia de sincronización de datos.

Paso 2: Configurar las bases de datos de origen y de destino

  1. Haga clic en Create Task.

  2. Configure los parámetros descritos en la siguiente tabla.

    Sección Parámetro Descripción
    N/A Task Name Nombre descriptivo para esta tarea de DTS. DTS genera un nombre predeterminado. No es necesario que el nombre sea único.
    Source Database Select Existing Connection Seleccione una instancia de base de datos registrada para completar automáticamente los parámetros de conexión o configure la conexión manualmente.
    Database Type Seleccione PolarDB-X 2.0.
    Access Method Seleccione Alibaba Cloud Instance.
    Instance Region Seleccione la región de la instancia de origen de PolarDB-X 2.0.
    Replicate Data Across Alibaba Cloud Accounts Seleccione No para usar una instancia de la cuenta actual de Alibaba Cloud.
    Instance ID Seleccione el ID de la instancia de origen de PolarDB-X 2.0.
    Database Account Introduzca la cuenta de la base de datos de origen. Para conocer los permisos obligatorios, consulte Permisos obligatorios para las cuentas de base de datos.
    Database Password Introduzca la contraseña de la cuenta de la base de datos de origen.
    Destination Database Select Existing Connection Seleccione una instancia de base de datos registrada para completar automáticamente los parámetros de conexión o configure la conexión manualmente.
    Database Type Seleccione SelectDB.
    Access Method Seleccione Alibaba Cloud Instance.
    Instance Region Seleccione la región de la instancia de destino de SelectDB.
    Replicate Data Across Alibaba Cloud Accounts Seleccione No para usar una instancia de la cuenta actual de Alibaba Cloud.
    Instance ID Seleccione el ID de la instancia de destino de SelectDB.
    Database Account Introduzca la cuenta de la base de datos de destino. Para conocer los permisos obligatorios, consulte Permisos obligatorios para las cuentas de base de datos.
    Database Password Introduzca la contraseña de la cuenta de la base de datos de destino.
  3. Haga clic en Test Connectivity and Proceed.

    Los bloques CIDR de los servidores de DTS deben agregarse a la configuración de seguridad de las bases de datos de origen y de destino. Esto puede ocurrir automáticamente o quizás deba agregarlos de forma manual. Consulte Agregar los bloques CIDR de los servidores de DTS .

Paso 3: Seleccionar los objetos que desea sincronizar

En el paso Configure Objects, configure los siguientes parámetros:

Parámetro Descripción
Synchronization Types Seleccione Schema Synchronization, Full Data Synchronization y Incremental Data Synchronization. Incremental Data Synchronization está seleccionado de forma predeterminada. La sincronización completa de datos carga los datos existentes del origen en el destino antes de que comience la sincronización incremental.
Importante

Si no selecciona Schema Synchronization, cree manualmente las tablas con modelo Unique o Duplicate en la instancia de destino de SelectDB antes de iniciar la tarea. Consulte Data type mapping, Columnas adicionales para tablas con motor Duplicate y Data model.

Processing Mode of Conflicting Tables Precheck and Report Errors: la comprobación previa falla si el destino contiene tablas con los mismos nombres que las tablas de origen. Esta es la opción predeterminada segura. Si existen nombres de tabla idénticos que no se pueden eliminar ni cambiar en el destino, utilice la función de asignación de nombres de objetos para cambiarlos. Consulte Asignar nombres de objetos. Ignore Errors and Proceed: omite la comprobación de nombres de tabla idénticos.
Aviso

Esto puede causar inconsistencias en los datos. Durante la sincronización completa, se omiten los registros con valores de clave primaria o única coincidentes y se conserva el registro existente en el destino. Durante la sincronización incremental, los registros coincidentes sobrescriben los del destino. Si los esquemas difieren, la inicialización podría fallar o solo se sincronizarían algunas columnas.

Capitalization of Object Names in Destination Instance Controla el uso de mayúsculas y minúsculas en los nombres de bases de datos, tablas y columnas del destino. El valor predeterminado es DTS default policy. Consulte Especificar el uso de mayúsculas y minúsculas en los nombres de objetos de la instancia de destino.
Source Objects Seleccione bases de datos o tablas en la sección Source Objects y haga clic en el ícono 向右 para moverlas a Selected Objects.
Selected Objects Haga clic con el botón derecho en un objeto para cambiarle el nombre, filtrar filas con condiciones WHERE o seleccionar operaciones SQL específicas para sincronizar. Si seleccionó Schema Synchronization, haga clic con el botón derecho en una tabla, habilite Parameter Settings, establezca bucket_count en un número entero positivo y haga clic en OK.
Nota

Cambiar el nombre de un objeto con la función de asignación de nombres de objetos puede provocar que los objetos dependientes no se sincronicen. Consulte Especificar condiciones de filtro.

Paso 4: Configurar los ajustes avanzados

Haga clic en Next: Advanced Settings y configure los siguientes parámetros:

Parámetro

Descripción

Dedicated Cluster for Task Scheduling

De forma predeterminada, DTS utiliza el clúster compartido. Para mayor estabilidad, adquiera y seleccione un clúster dedicado. Consulte ¿Qué es un clúster dedicado de DTS?.

Retry Time for Failed Connections

Tiempo durante el cual DTS reintenta las conexiones con errores antes de marcar la tarea como fallida. Valores válidos: de 10 a 1440 minutos. Valor predeterminado: 720. Se recomienda establecer este parámetro en un valor mayor a 30. Si varias tareas comparten el mismo origen o destino, prevalece el tiempo de reintento más corto. DTS cobra por la instancia durante los reintentos.

Retry Time for Other Issues

Tiempo durante el cual DTS reintenta las operaciones DDL o DML con errores antes de marcar la tarea como fallida. Valores válidos: de 1 a 1440 minutos. Valor predeterminado: 10. Se recomienda establecer este parámetro en un valor mayor a 10. Debe ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Synchronization

Limite la carga de lectura y escritura en el origen y el destino durante la sincronización completa de datos mediante Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Solo está disponible cuando se selecciona Full Data Synchronization.

Enable Throttling for Incremental Data Synchronization

Limite la carga durante la sincronización incremental mediante RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s).

Whether to delete SQL operations on heartbeat tables of forward and reverse tasks

Yes: DTS no escribe operaciones de latido en la base de datos de origen. La latencia de sincronización mostrada podría ser inexacta si no hay actividad DML en el origen durante un periodo prolongado. No: DTS escribe operaciones de latido, lo que puede afectar la copia de seguridad física y la clonación de la base de datos de origen.

Environment Tag

Etiqueta opcional para identificar la instancia de DTS.

Configure ETL

Yes: configura el procesamiento de extracción, transformación y carga (ETL) con instrucciones de procesamiento de datos. Consulte Configurar ETL en una tarea de migración o sincronización de datos. No: omite la configuración de ETL.

Monitoring and Alerting

Yes: configura umbrales de alerta y destinatarios de notificación para fallos de tareas o picos de latencia. Consulte Configurar el monitoreo y las alertas al crear una tarea de DTS. No: sin alertas.

Paso 5: (Opcional) Configurar los campos de bases de datos y tablas

Haga clic en Next: Configure Database and Table Fields para especificar cómo asigna DTS las estructuras de las tablas de origen al destino.

Este paso solo está disponible si se selecciona Schema Synchronization . Establezca Definition Status en All para ver y editar todas las tablas.

Parámetro

Descripción

Primary Key Column

Seleccione una o más columnas como clave primaria en el destino.

Distribution Key

Seleccione una o más columnas de entre las columnas de clave primaria como clave de distribución.

Engine

Seleccione el motor de la tabla de destino: Unique o Duplicate. Si la tabla de origen no tiene clave primaria ni restricción UNIQUE, seleccione duplicate. Usar un motor incorrecto puede provocar que la tarea falle o que se pierdan datos.

Paso 6: Ejecutar una comprobación previa

Haga clic en Next: Save Task Settings and Precheck.

Para obtener una vista previa de los parámetros de la API correspondientes a esta configuración, coloque el puntero sobre el botón y haga clic en Preview OpenAPI parameters antes de continuar.

DTS ejecuta una comprobación previa antes de iniciar la tarea. Si la comprobación previa falla:

  • Haga clic en View Details junto al elemento con errores, corrija el problema reportado y haga clic en Precheck Again.

  • Si un elemento genera una alerta que se puede ignorar, haga clic en Confirm Alert Details, luego en Ignore, después en OK y finalmente en Precheck Again. Ignorar alertas puede generar inconsistencias en los datos.

Paso 7: Adquirir una instancia

  1. Espere hasta que Success Rate alcance el 100% y luego haga clic en Next: Purchase Instance.

  2. En la página buy, configure los siguientes parámetros:

    Sección Parámetro Descripción
    New Instance Class Billing Method Suscripción: pague por adelantado por un plazo fijo. Resulta más rentable para uso a largo plazo. Pay-as-you-go: facturación por hora. Elimine la instancia cuando ya no la necesite para detener los cargos.
    Resource Group Settings El resource group para esta instancia. Valor predeterminado: default resource group. Consulte ¿Qué es Resource Management?
    Instance Class La velocidad de sincronización varía según la clase de instancia. Consulte Clases de instancia de las instancias de sincronización de datos.
    Subscription Duration Solo disponible para el método de facturación de suscripción. Valores válidos: de 1 a 9 meses, 1 año, 2 años, 3 años o 5 años.
  3. Lea y acepte Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Haga clic en Buy and Start y luego en OK en el cuadro de diálogo de confirmación.

La tarea aparece en la lista de tareas. Supervise su progreso desde ahí.

Asignación de tipos de datos

DTS convierte automáticamente los tipos de datos de PolarDB-X 2.0 a tipos compatibles de SelectDB durante la sincronización de esquemas. Revise las asignaciones antes de sincronizar para identificar las columnas que requieran ajustes de esquema.

Categoría Tipo de PolarDB-X 2.0 Tipo de SelectDB Notas
Numérico TINYINT TINYINT
TINYINT UNSIGNED SMALLINT El rango sin signo excede TINYINT; se promueve a SMALLINT.
SMALLINT SMALLINT
SMALLINT UNSIGNED INT
MEDIUMINT INT
MEDIUMINT UNSIGNED BIGINT
INT INT
INT UNSIGNED BIGINT
BIGINT BIGINT
BIGINT UNSIGNED LARGEINT
BIT(M) INT
Decimal DECIMAL DECIMAL zerofill no es compatible.
NUMERIC DECIMAL
FLOAT FLOAT
DOUBLE DOUBLE
BOOL / BOOLEAN BOOLEAN
Fecha y hora DATE DATEV2
DATETIME[(fsp)] DATETIMEV2
TIMESTAMP[(fsp)] DATETIMEV2
TIME[(fsp)] VARCHAR SelectDB no tiene el tipo TIME; se almacena como cadena.
YEAR[(4)] INT
Cadena CHAR, VARCHAR VARCHAR Se convierte a VARCHAR(4xn) para evitar la pérdida de datos, ya que PolarDB-X 2.0 cuenta caracteres mientras que SelectDB cuenta bytes. Si no se especifica una longitud, el valor predeterminado es VARCHAR(65533). Si la longitud convertida supera 65533, el tipo pasa a ser STRING.
BINARY, VARBINARY STRING
TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT STRING
TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB STRING
ENUM STRING
SET STRING
JSON STRING

Columnas adicionales para tablas con motor Duplicate

DTS agrega automáticamente las siguientes columnas a las tablas con motor Duplicate en el destino. Si creó la tabla de destino manualmente (sin usar la sincronización de esquemas de DTS), agregue estas columnas antes de iniciar la tarea.

Columna

Tipo de datos

Valor predeterminado

Descripción

_is_deleted

INT

0

Indica si el registro se eliminó. 0 para INSERT y UPDATE; 1 para DELETE.

_version

BIGINT

0

Marca de tiempo de versión. 0 para los registros cargados durante la sincronización completa. Para los registros incrementales, es la marca de tiempo (en segundos) del binlog de origen.

_record_id

BIGINT

0

Identificador único del registro. 0 para los registros de sincronización completa. Para los registros incrementales, es el ID de registro único y ascendente del registro incremental.

Utilice estas columnas para identificar y quitar registros duplicados cuando se requiera eliminar duplicados.