Todos los productos
Search
Centro de documentos

Data Transmission Service:Synchronize data from an ApsaraDB RDS for PostgreSQL instance to an ApsaraDB RDS for MySQL instance

Última actualización: Sep 22, 2026

Data Transmission Service (DTS) permite sincronizar datos desde una instancia de ApsaraDB RDS for PostgreSQL hacia una instancia de ApsaraDB RDS for MySQL.

Requisitos previos

Facturación

Synchronization type

Cost

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

Sin costo.

Sincronización incremental de datos

Con costo. Para obtener más información, consulte Billing overview.

Topologías de sincronización compatibles

  • Sincronización unidireccional uno a uno

  • Sincronización unidireccional uno a varios

  • Sincronización unidireccional en cascada

  • Sincronización unidireccional varios a uno

Para obtener más información, consulte Synchronization topologies.

Operaciones SQL que se pueden sincronizar

Operation type

SQL statement

DML (Data Manipulation Language)

INSERT, UPDATE y DELETE

Notas de uso

Comportamiento de las claves externas

  • Durante la sincronización de esquemas, DTS sincroniza las claves externas de la base de datos de origen a la de destino.

  • En la sincronización completa e incremental de datos, DTS deshabilita temporalmente las comprobaciones de restricciones y las operaciones en cascada de las claves externas a nivel de sesión.

Nota

Si ejecuta operaciones de actualización y eliminación en cascada en la base de datos de origen durante la sincronización de datos, puede producirse inconsistencia en los datos.

Requisitos de la base de datos de origen

Claves primarias y restricciones únicas

Las tablas que se van a sincronizar deben tener restricciones PRIMARY KEY o UNIQUE, y todos sus campos deben ser únicos. De lo contrario, la base de datos de destino podría contener registros duplicados.

Nota

Si ya existe una tabla de destino porque no se seleccionó Schema Synchronization en el parámetro Synchronization Types, compruebe que dicha tabla tenga las mismas restricciones PRIMARY KEY o NOT NULL UNIQUE que la tabla de origen. En caso contrario, la base de datos de destino podría contener registros duplicados.

Límite de cantidad de tablas

Cuando seleccione tablas como objetos de sincronización y las edite (por ejemplo, para cambiarles el nombre en la base de datos de destino), tenga en cuenta que una sola tarea de sincronización de datos admite hasta 5,000 tablas. Si necesita sincronizar más de 5,000 tablas, configure varias tareas o sincronice la base de datos completa.

Requisitos de los registros WAL

  • Establezca el parámetro wal_level en logical.

  • Sincronización solo incremental: conserve los registros WAL durante más de 24 horas.

  • Sincronización completa e incremental: conserve los registros WAL durante como mínimo siete días. Una vez finalizada la sincronización completa de datos, puede reducir este periodo a más de 24 horas.

Aviso

Si DTS no puede obtener los registros WAL debido a un periodo de retención insuficiente, la tarea podría fallar. En circunstancias excepcionales, esto provoca inconsistencia o pérdida de datos. Cumplir con estos requisitos de retención es obligatorio para que DTS respete el acuerdo de nivel de servicio (SLA).

Operaciones en la base de datos de origen

  • Conmutación principal/secundaria: habilite la función Logical Replication Slot Failover antes de ejecutar una conmutación entre los nodos principal y secundario en la instancia de ApsaraDB RDS for PostgreSQL de origen. Esto evita que se interrumpan las suscripciones lógicas y mantiene la tarea de sincronización de datos en ejecución según lo esperado. Para obtener más información, consulte Logical Replication Slot Failover.

  • Registros de datos grandes: si un registro individual que se va a sincronizar desde la base de datos de origen supera los 256 MB durante los cambios incrementales, la instancia de sincronización de datos en ejecución falla sin posibilidad de recuperación. En ese caso, deberá configurar la tarea nuevamente.

  • Restricciones de DDL: no ejecute instrucciones DDL (Data Definition Language) para modificar los esquemas de bases de datos o tablas durante la sincronización de esquemas ni durante la sincronización completa de datos. De hacerlo, la tarea fallará.

Transacciones de larga duración

Si la base de datos de origen tiene transacciones de larga duración mientras avanza la sincronización incremental de datos, los registros WAL generados antes de confirmar dichas transacciones podrían acumularse. Esta situación agota el espacio en disco de la base de datos de origen.

Actualizaciones de versión principal

No actualice la versión principal de la base de datos de origen mientras haya una instancia de sincronización de datos en ejecución. Este tipo de actualización provoca un fallo irrecuperable en la instancia, por lo que tendrá que configurar la tarea de nuevo.

Requisitos de la base de datos de destino

Juego de caracteres para caracteres de 4 bytes

Si los datos que se van a sincronizar contienen caracteres de cuatro bytes, como emojis o caracteres poco comunes, las bases de datos y tablas de destino deben usar el juego de caracteres utf8mb4.

Nota

Si utiliza la función de sincronización de esquemas de DTS, establezca el parámetro de instancia character_set_server de la base de datos de destino en utf8mb4.

Restricciones de sincronización

Una base de datos por tarea

Una tarea de sincronización de datos solo procesa información de una base de datos. Si necesita sincronizar datos de varias bases de datos, cree una tarea independiente para cada una.

Herencia entre esquemas

DTS no admite la sincronización de tablas con relaciones de herencia entre distintos esquemas.

Tablas nuevas o renombradas en la sincronización a nivel de esquema

Cuando seleccione un esquema como objeto de sincronización y cree una tabla nueva o le cambie el nombre con el comando RENAME, ejecute la siguiente instrucción antes de escribir datos en ella:

ALTER TABLE schema.table REPLICA IDENTITY FULL;

Reemplace schema y table por los nombres reales del esquema y la tabla. Esto garantiza la consistencia de los datos.

Nota

Ejecute esta operación fuera del horario de mayor actividad. No bloquee la tabla al ejecutar esta instrucción, ya que se producirá un interbloqueo.

Distinción entre mayúsculas y minúsculas en los nombres de columna de MySQL

Los nombres de columna en las bases de datos MySQL no distinguen entre mayúsculas y minúsculas. Si varias columnas de la base de datos de origen tienen nombres que solo difieren en el uso de mayúsculas, durante la sincronización se escribirán en la misma columna de la base de datos MySQL de destino. Esto genera resultados inesperados.

Objetos gestionados por DTS en la base de datos de origen

Tablas temporales

DTS crea las siguientes tablas temporales en la base de datos de origen para almacenar instrucciones DDL incrementales, esquemas de tablas e información de latidos. No elimine estas tablas durante la sincronización de datos, ya que se quitan automáticamente cuando se libera la instancia de DTS.

  • public.dts_pg_class

  • public.dts_pg_attribute

  • public.dts_pg_type

  • public.dts_pg_enum

  • public.dts_postgres_heartbeat

  • public.dts_ddl_command

  • public.dts_args_session

Nota

Las instrucciones DDL obtenidas mediante estas tablas temporales no se escriben en la base de datos de destino.

Tabla de latidos

DTS agrega una tabla de latidos llamada dts_postgres_heartbeat a la base de datos de origen para mantener mediciones precisas de la latencia de sincronización.

Ranura de replicación

DTS crea una ranura de replicación con el prefijo dts_sync_ en la base de datos de origen. Esta ranura recupera los registros incrementales de los últimos 15 minutos.

Nota

La ranura de replicación se elimina automáticamente cuando se libera la instancia de DTS. Sin embargo, si cambia la contraseña de la base de datos de origen o quita los bloques CIDR de los servidores de DTS de la lista blanca de direcciones IP, la ranura no se podrá eliminar de forma automática. En ese caso, elimínela manualmente para evitar la acumulación de registros.

Nota

Si la tarea de sincronización de datos se libera o falla, DTS elimina la ranura de replicación automáticamente. Si se ejecuta una conmutación principal/secundaria en la instancia de ApsaraDB RDS for PostgreSQL de origen, inicie sesión en la base de datos secundaria y elimine la ranura de replicación de forma manual.

Rendimiento y operaciones

Consideraciones de rendimiento

  • Evalúe el impacto de la sincronización de datos en las bases de datos de origen y de destino antes de iniciarla. Siempre que sea posible, sincronice los datos fuera del horario de mayor actividad. Durante la sincronización inicial completa, DTS consume recursos de lectura y escritura de ambas bases de datos, lo que aumenta la carga del servidor.

  • En la sincronización inicial completa de datos, las operaciones INSERT simultáneas fragmentan las tablas de destino. Por ello, el espacio de tablas de destino será mayor que el de origen una vez concluida la sincronización completa.

DDL en línea con Data Management Service (DMS)

Si únicamente DTS escribe datos de tablas en la base de datos de destino, puede utilizar DMS para ejecutar operaciones DDL en línea sobre las tablas de origen durante la sincronización. Para obtener más información, consulte Perform lockless schema changes using lockless change tickets.

Aviso

Si durante la sincronización se escriben datos de otras fuentes en la base de datos de destino, se produce inconsistencia en los datos. Además, si usa DMS para ejecutar instrucciones DDL en línea mientras otras fuentes escriben en la base de datos de destino, podría haber pérdida de datos.

Instrucciones DDL con errores

Si alguna instrucción DDL falla al ejecutarse en la base de datos de destino, la tarea de DTS continúa su ejecución. Consulte las instrucciones DDL con errores en los registros de la tarea. Para obtener más información, consulte View task logs.

Verificación posterior a la sincronización

Una vez concluida la sincronización de datos (cuando el Status de la instancia cambia a Completed), ejecute el siguiente comando para comprobar que los datos se escribieron correctamente en la tabla de destino:

analyze table <Table name>
Nota

Si se activa una conmutación por alta disponibilidad (HA) en la base de datos MySQL de origen, los datos podrían escribirse únicamente en memoria, lo que provoca pérdida de información.

Recuperación tras fallos de tareas de DTS

Si una tarea de DTS falla, el equipo de soporte técnico intentará restaurarla en un plazo de 8 horas. Durante este proceso, la tarea podría reiniciarse y sus parámetros podrían modificarse.

Nota

Solo se modifican los parámetros de la tarea; los parámetros de la base de datos permanecen intactos. Entre los parámetros que podrían modificarse se incluyen, entre otros, los descritos en la sección Modify instance parameters del tema Modificación de los parámetros de una instancia de DTS.

Requisitos específicos según el origen

  • Origen en ApsaraDB RDS for PostgreSQL: no modifique el endpoint ni la zona de la instancia de ApsaraDB RDS for PostgreSQL durante la sincronización de datos, ya que la tarea fallaría.

  • Origen en PostgreSQL autogestionado: los valores de los parámetros max_wal_senders y max_replication_slots deben ser mayores que la suma de las ranuras de replicación utilizadas en la base de datos PostgreSQL autogestionada más la cantidad de instancias de DTS que se crearán para dicha base de datos.

  • Origen en Google Cloud SQL for PostgreSQL: establezca el parámetro Database Account con una cuenta de base de datos que tenga el permiso cloudsqlsuperuser. Seleccione únicamente los objetos que esta cuenta esté autorizada a gestionar. Como alternativa, otorgue el permiso OWNER sobre los objetos seleccionados a dicha cuenta.

    Nota

    Una cuenta con el permiso cloudsqlsuperuser no puede gestionar los datos propiedad de otras cuentas que también tengan el permiso cloudsqlsuperuser.

Procedimiento

  1. Vaya a la página Data Synchronization de la nueva consola de DTS.

    Nota

    Como alternativa, inicie sesión en la consola de DMS. En la barra de navegación superior, coloque el puntero sobre Data + AI y elija DTS (DTS) > Data Synchronization.

  2. En la esquina superior izquierda de la página, seleccione la región donde reside la instancia de sincronización de datos.

  3. Haga clic en Create Task. Configure las bases de datos de origen y de destino.

    Aviso

    Después de configurar las bases de datos de origen y de destino, lea los Limits que se muestran en la página. Ignorar estos límites puede provocar el fallo de la tarea o inconsistencia en los datos.

    Nota

    Si la versión de la instancia de ApsaraDB RDS for PostgreSQL de origen es 9.4 y solo sincroniza operaciones DML, la cuenta de la base de datos únicamente requiere el permiso REPLICATION.

    Configuración de la tarea

    Parameter

    Value

    Task Name

    DTS genera un nombre de tarea automáticamente. Especifique un nombre descriptivo que facilite su identificación. No es obligatorio que el nombre sea único.

    Configuración de la base de datos de origen

    Parameter

    Value

    Database Type

    Seleccione PostgreSQL.

    Connection Type

    Seleccione Alibaba Cloud Instance.

    Instance Region

    La región de la instancia de ApsaraDB RDS for PostgreSQL de origen.

    Instance ID

    El identificador de la instancia de ApsaraDB RDS for PostgreSQL de origen.

    Database Name

    El nombre de la base de datos de origen en la instancia de ApsaraDB RDS for PostgreSQL.

    Database Account

    Una cuenta con privilegios de la instancia de ApsaraDB RDS for PostgreSQL de origen. Esta cuenta debe ser propietaria de la base de datos. Para obtener más información, consulte Create an account y Create a database.

    Database Password

    La contraseña de la cuenta de la base de datos.

    Destination Database

    Parameter

    Value

    Database Type

    Seleccione MySQL.

    Connection Type

    Seleccione Alibaba Cloud Instance.

    Instance Region

    La región de la instancia de ApsaraDB RDS for MySQL de destino.

    RDS Instance ID

    El identificador de la instancia de ApsaraDB RDS for MySQL de destino.

    Database Account

    La cuenta de la base de datos de la instancia de ApsaraDB RDS for MySQL de destino. Esta cuenta debe tener permisos de lectura y escritura sobre la base de datos de destino.

    Database Password

    La contraseña de la cuenta de la base de datos.

    Encryption

    Seleccione Non-encrypted o SSL-encrypted según sus necesidades de negocio. Para usar SSL-encrypted, habilite el cifrado SSL en la instancia de ApsaraDB RDS for MySQL antes de configurar la tarea de DTS. Para obtener más información, consulte Use a cloud certificate to enable SSL encryption.

  4. Haga clic en Test Connectivity and Proceed. Si la base de datos de origen o de destino es una instancia de base de datos de Alibaba Cloud (como una instancia de ApsaraDB RDS for MySQL o de ApsaraDB for MongoDB), DTS agrega automáticamente los bloques CIDR de los servidores de DTS a la lista blanca de la instancia. Si se trata de una base de datos autogestionada alojada en una instancia de Elastic Compute Service (ECS), DTS añade dichos bloques CIDR a las reglas del security group de la instancia ECS; en este caso, compruebe que la instancia ECS pueda acceder a la base de datos. Si la base de datos está desplegada en varias instancias ECS, agregue manualmente los bloques CIDR de los servidores de DTS a las reglas del security group de cada instancia ECS. Cuando la base de datos de origen o de destino es autogestionada y está desplegada en un centro de datos o proporcionada por un proveedor de nube externo, añada manualmente los bloques CIDR de los servidores de DTS a la lista blanca de la base de datos. Para obtener más información, consulte la sección Whitelist DTS server IP addresses del tema Adición de los bloques CIDR de los servidores de DTS.

    Aviso

    Agregar los bloques CIDR de los servidores de DTS a la lista blanca de la base de datos o de la instancia, o bien a las reglas del security group de ECS, puede introducir riesgos de seguridad. Antes de usar DTS, comprenda y acepte los riesgos potenciales. Tome medidas preventivas que incluyan, entre otras: reforzar la seguridad de los nombres de usuario y contraseñas, limitar los puertos expuestos, autenticar las llamadas a la API, revisar periódicamente la lista blanca o las reglas del security group de ECS para quitar bloques CIDR no autorizados, o conectar la base de datos a DTS mediante Express Connect, VPN Gateway o Smart Access Gateway.

  5. Configure los objetos que desea sincronizar y los ajustes avanzados.

    Nota
    • Si existen nombres de tabla idénticos en las bases de datos de origen y de destino, y no puede eliminar ni renombrar las tablas de destino, utilice la función de asignación de nombres de objetos. Para obtener más información, consulte Object name mapping. - Si selecciona Ignore Errors and Proceed y ambas bases de datos comparten el mismo esquema con valores coincidentes de clave primaria o única: durante la sincronización completa de datos, DTS no sincroniza el registro conflictivo y conserva el existente en el destino. En la sincronización incremental, DTS sobrescribe el registro existente. Si los esquemas difieren, la inicialización de datos podría fallar, sincronizarse solo algunas columnas o interrumpirse la tarea.

    Nota
    • Para seleccionar operaciones SQL de una base de datos o tabla específica, haga clic con el botón derecho en un objeto dentro de la sección Selected Objects y elija las operaciones que desea sincronizar. Para conocer las operaciones compatibles, consulte la sección SQL operations that can be synchronized. - Para filtrar datos mediante condiciones WHERE, haga clic con el botón derecho en un objeto de la sección Selected Objects y especifique las condiciones de filtro. Para obtener más información, consulte Filter task data with an SQL condition.

    Nota
    • Si especifica intervalos de reintento distintos para varias tareas que comparten la misma base de datos de origen o de destino, prevalecerá el intervalo más corto. - DTS cobra por la instancia durante el periodo de reintento. Establezca el tiempo de reintento según sus necesidades de negocio. Libere la instancia de DTS inmediatamente después de liberar las instancias de origen y de destino.

    Configuración básica

    Parameter

    Value

    Synchronization Types

    Incremental Data Synchronization viene seleccionado de forma predeterminada. Solo puede elegir Full Data Synchronization. No es posible seleccionar Schema Synchronization. Cuando se selecciona Full Data Synchronization, DTS sincroniza los datos históricos de los objetos elegidos desde la base de datos de origen hacia la de destino una vez superada la comprobación previa. Estos datos históricos sirven como base para la sincronización incremental posterior.

    Processing Mode of Conflicting Tables

    Precheck and Report Errors: comprueba si la base de datos de destino contiene tablas con los mismos nombres que las de origen. Si existen nombres idénticos, la comprobación previa devuelve un error y la tarea no puede iniciarse. Ignore Errors and Proceed: omite la comprobación previa de nombres de tabla idénticos. Consulte las notas anteriores para conocer los detalles de este comportamiento.

    Source Objects

    Seleccione uno o varios objetos en la sección Source Objects y haga clic en el ícono de flecha derecha para agregarlos a la sección Selected Objects. Puede elegir columnas, tablas o bases de datos como objetos de sincronización. Si selecciona tablas o columnas, DTS no sincronizará otros objetos como vistas, desencadenadores ni procedimientos almacenados.

    Selected Objects

    Para cambiar el nombre de un objeto en la instancia de destino, haga clic con el botón derecho sobre él en Selected Objects. Para obtener más información, consulte Object name mapping. Si desea renombrar varios objetos a la vez, haga clic en Batch Edit en la esquina superior derecha de la sección Selected Objects. Para obtener más información, consulte Object name mapping.

    Configuración avanzada

    Parameter

    Value

    Monitoring and Alerting

    Indica si se configuran alertas para la tarea. Si la tarea falla o la latencia de sincronización supera el umbral establecido, los contactos de alerta reciben notificaciones. Seleccione No para deshabilitar las alertas, o Yes para configurar los umbrales de alerta y los ajustes de notificación. Para obtener más información, consulte Configure monitoring and alerting.

    Retry Time for Failed Connections

    Duración (en minutos) durante la cual DTS reintenta la conexión si la base de datos de origen o de destino deja de ser accesible después de iniciar la tarea. Valores válidos: de 10 a 1440. Valor predeterminado: 720. Valor recomendado: mayor que 30. Si DTS restablece la conexión dentro de este periodo, la tarea se reanuda; de lo contrario, falla.

    Configure ETL

    Indica si se habilita la extracción, transformación y carga (ETL). Seleccione Yes para introducir instrucciones de procesamiento de datos en el editor de código, o No para omitir este paso. Para obtener más información, consulte What is ETL? y Configure ETL in DTS migration or synchronization tasks.

  6. Guarde la configuración de la tarea y ejecute una comprobación previa.

    • Para consultar los parámetros de la API necesarios para configurar esta tarea de DTS, coloque el puntero sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters.

    • Cuando todo esté listo, haga clic en Next: Save Task Settings and Precheck.

    Nota
    • DTS ejecuta una comprobación previa antes de iniciar la tarea. La tarea solo comienza si supera dicha comprobación. - Si la comprobación previa falla, haga clic en View Details junto a cada elemento con errores, analice las causas, resuelva los problemas y vuelva a ejecutar la comprobación. - Si se activa una alerta durante la comprobación previa: - Si el elemento de alerta no se puede ignorar, haga clic en View Details, resuelva el problema y haga clic en Precheck Again. - Si el elemento de alerta se puede ignorar, haga clic en Confirm Alert Details. En el cuadro de diálogo View Details, haga clic en Ignore y luego en OK. Haga clic en Precheck Again para repetir la comprobación. Ignorar elementos de alerta puede generar inconsistencia en los datos y exponer su negocio a riesgos potenciales.

  7. Espere a que Success Rate alcance 100% y haga clic en Next: Purchase Instance.

  8. En la página buy, configure el método de facturación y la clase de instancia para la instancia de sincronización de datos.

    Sección

    Parámetro

    Valor

    New Instance Class

    Billing Method

    Subscription: pago por adelantado al crear la instancia. Resulta más rentable para uso a largo plazo. Pay-as-you-go: facturación por hora. Recomendado para uso a corto plazo. Libere la instancia cuando ya no la necesite para reducir costos.

    Resource Group Settings

    El resource group al que pertenece la instancia de sincronización de datos. Valor predeterminado: default resource group. Para obtener más información, consulte What is resource management?

    Instance Class

    Seleccione una clase de instancia según sus requisitos de velocidad de sincronización. Para obtener más información, consulte Instance classes of data synchronization instances.

    Subscription Duration

    Disponible únicamente para el método de facturación Subscription. Opciones: de uno a nueve meses, un año, dos años, tres años o cinco años.

  9. Lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.

  10. Haga clic en Buy and Start. En el cuadro de diálogo de confirmación, haga clic en OK. El progreso de la tarea aparecerá en la lista de tareas.