Todos los productos
Search
Centro de documentos

Data Transmission Service:Configure one-way data synchronization between ApsaraDB RDS for PostgreSQL instances

Última actualización: Sep 04, 2026

Data Transmission Service (DTS) permite sincronizar datos en tiempo real desde una instancia de ApsaraDB RDS for PostgreSQL hacia otra. Utilice este flujo de trabajo cuando necesite instancias en espera para recuperación ante desastres, réplicas de lectura para separar cargas de lectura y escritura, migración de bases de datos entre cuentas o una instancia de análisis independiente que se mantenga sincronizada con el entorno de producción.

DTS admite tres fases de sincronización: sincronización de esquemas, sincronización completa de datos y sincronización incremental de datos. También soporta cuatro topologías unidireccionales: uno a uno, uno a varios, en cascada y varios a uno.

Requisitos previos

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

  • Tener creadas tanto la instancia de origen como la de destino de ApsaraDB RDS for PostgreSQL. Consulte Crear una instancia de ApsaraDB RDS for PostgreSQL.

  • La versión de la instancia de destino debe ser igual o superior a la de origen. Una versión más antigua en el destino puede provocar errores de compatibilidad.

  • Espacio de almacenamiento libre suficiente en la instancia de destino; este debe superar el tamaño total de los datos en la instancia de origen.

  • El parámetro wal_level de la instancia de origen debe estar establecido en logical.

  • La retención de registros WAL debe configurarse de la siguiente manera:

    • Solo sincronización incremental de datos: conserve los registros WAL durante más de 24 horas.

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

Importante

Si los registros WAL no se conservan el tiempo suficiente, DTS podría no leerlos correctamente. Esto provocaría el fallo de la tarea y podría causar inconsistencia o pérdida de datos. Asegúrese de establecer el periodo de retención de los registros WAL según los requisitos anteriores. De lo contrario, no se garantizará la fiabilidad ni el rendimiento del servicio especificados en el Acuerdo de Nivel de Servicio (SLA) de DTS.

Para consultar las combinaciones compatibles de versiones de origen y destino, revise la Descripción general de escenarios de sincronización de datos.

Facturación

Tipo de sincronización

Costo

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

Gratis

Sincronización incremental de datos

Con cargo. Consulte la Descripción general de facturación.

Limitaciones

Revise estas limitaciones antes de comenzar.

Requisitos de la base de datos de origen

  • Las tablas deben tener una restricción PRIMARY KEY o UNIQUE, y todos sus campos deben ser únicos. Sin estas restricciones, la base de datos de destino podría contener registros duplicados.

    Si crea la tarea de sincronización sin seleccionar Schema Synchronization , la tabla de destino debe tener las mismas restricciones PRIMARY KEY o NOT NULL UNIQUE que la tabla de origen. De lo contrario, podrían aparecer registros duplicados.
  • Si selecciona tablas como objetos de sincronización y desea cambiar el nombre de tablas o columnas en el destino, una sola tarea admite un máximo de 5,000 tablas. Para más de 5,000 tablas, divida la carga de trabajo en varias tareas o sincronice a nivel de base de datos en lugar de a nivel de tabla.

  • DTS no puede sincronizar tablas temporales, desencadenadores internos ni ciertos procedimientos y funciones internas escritos en C. DTS sí puede sincronizar parámetros personalizados de los tipos COMPOSITE, ENUM y RANGE. Las tablas deben tener restricciones PRIMARY KEY, FOREIGN KEY, UNIQUE o CHECK.

  • DTS crea un slot de replicación con el prefijo dts_sync_ en la base de datos de origen, lo que le permite acceder a los registros incrementales de los últimos 15 minutos. La acumulación de slots de replicación puede agotar el espacio en disco. Configure una alarma de uso de disco en la instancia de origen cuando la replicación lógica esté activa. Comportamiento de limpieza de slots de replicación: Amazon slot查询信息

    • Después de liberar la instancia de DTS, el slot se elimina automáticamente, a menos que haya cambiado la contraseña de la base de datos de origen o eliminado las direcciones IP de DTS de la lista blanca de IP. En esos casos, deberá eliminar el slot manualmente.

    • Si ocurre un cambio de rol primario/secundario en el origen, inicie sesión en la base de datos secundaria y elimine el slot manualmente.

  • DTS crea las siguientes tablas temporales en la base de datos de origen para capturar sentencias DDL, esquemas incrementales de tablas e información de latido. No las elimine mientras la sincronización esté en ejecución, ya que se borran automáticamente al liberar 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

  • DTS agrega una tabla de latido llamada dts_postgres_heartbeat a la base de datos de origen para rastrear con precisión la latencia de sincronización.

  • Para realizar un cambio de rol primario/secundario en la instancia de origen de ApsaraDB RDS for PostgreSQL sin interrumpir la sincronización, habilite primero la función Logical Replication Slot Failover. Consulte Logical Replication Slot Failover.

  • Si un solo cambio incremental de datos supera los 256 MB, la instancia de sincronización en ejecución fallará y no podrá recuperarse; deberá reconfigurar la tarea.

  • Durante la sincronización de esquemas y la sincronización completa de datos, no ejecute sentencias DDL que modifiquen los esquemas de la base de datos o de las tablas. Si lo hace, la tarea fallará.

  • Si la base de datos de origen tiene transacciones de larga duración durante la sincronización incremental de datos, los registros WAL generados antes de que se confirmen dichas transacciones pueden acumularse y agotar el espacio en disco.

  • Si se realiza una actualización de versión principal en la base de datos de origen mientras una instancia de sincronización está en ejecución, la instancia fallará y no podrá recuperarse; deberá reconfigurar la tarea.

Otros requisitos

  • Una sola tarea sincroniza datos de una única base de datos. Para sincronizar varias bases de datos, cree una tarea independiente para cada una.

  • DTS no puede sincronizar tablas que tengan relaciones de herencia entre distintos esquemas.

  • Si selecciona un esquema como objeto de sincronización, ejecute la siguiente sentencia antes de escribir datos en cualquier tabla nueva o renombrada dentro de ese esquema:

    ALTER TABLE schema.table REPLICA IDENTITY FULL;

    Reemplace schema y table por los nombres reales. Ejecute esta sentencia fuera de horas pico y evite bloquear la tabla, ya que hacerlo durante la ejecución puede causar un interbloqueo.

  • DTS no valida metadatos como las secuencias. Compruebe manualmente la validez de las secuencias.

  • Antes de trasladar las cargas de trabajo a la base de datos de destino, actualice el valor inicial de las secuencias en el destino. Después del cambio, las nuevas escrituras en secuencias no continuarán desde el valor máximo registrado en el origen.

  • Cuando la cuenta de destino es privilegiada o de superusuario y las tablas sincronizadas contienen claves externas, desencadenadores o desencadenadores de eventos, DTS establece temporalmente session_replication_role en replica a nivel de sesión. Si la cuenta de destino carece de los permisos necesarios, establezca este parámetro en replica manualmente. Las operaciones UPDATE o DELETE en cascada en el origen durante este periodo pueden causar inconsistencia de datos. Una vez liberada la tarea, restablezca el parámetro a origin.

  • Escribir datos desde otros orígenes en la base de datos de destino durante la sincronización provoca inconsistencia de datos. Por ejemplo, ejecutar sentencias DDL en línea desde DMS mientras otros orígenes escriben en la base de datos de destino puede causar pérdida de datos.

  • Si una tarea falla, el soporte técnico de DTS intentará restaurarla en un plazo de 8 horas. Durante la restauración, la tarea podría reiniciarse y sus parámetros (no los de la base de datos) podrían modificarse.

Requisitos para tipos específicos de bases de datos de origen

Origen ApsaraDB RDS for PostgreSQL

No modifique el endpoint ni la zona de la instancia de origen mientras la sincronización esté en ejecución. Esto provocará el fallo de la tarea.

Origen PostgreSQL autogestionado

Los valores de max_wal_senders y max_replication_slots deben ser mayores, cada uno, que la suma de los slots de replicación actualmente en uso y el número de instancias de DTS que planea crear para esta base de datos.

Origen Cloud SQL for PostgreSQL (Google Cloud)

Establezca Database Account en una cuenta con el permiso cloudsqlsuperuser. Al seleccionar los objetos a sincronizar, elija solo aquellos que la cuenta tenga autorización para gestionar, o concédale el permiso OWNER sobre dichos objetos.

Una cuenta con el permiso cloudsqlsuperuser no puede gestionar datos propiedad de otras cuentas con el mismo permiso.

Objetos compatibles

Tipo de objeto

Detalles

SCHEMA y TABLE

Incluye PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, tipos de datos integrados y restricciones DEFAULT

VIEW, PROCEDURE, FUNCTION, RULE, SEQUENCE, EXTENSION, TRIGGER, AGGREGATE, INDEX, OPERATOR, DOMAIN

PROCEDURE requiere PostgreSQL V11 o posterior

Operaciones SQL que se pueden sincronizar

Tipo

Sentencias

DML

INSERT, UPDATE, DELETE

DDL

Consulte a continuación

La sincronización de DDL solo está disponible para tareas creadas después del 1 de octubre de 2020.

Importante

Para las tareas creadas antes del 12 de mayo de 2023, debe crear desencadenadores y funciones en la base de datos de origen para capturar la información DDL antes de configurar la tarea. Consulte Uso de desencadenadores y funciones para implementar la migración incremental de DDL en bases de datos PostgreSQL.

La sincronización de DDL requiere una cuenta de base de datos privilegiada en la instancia de origen con una versión menor del motor 20210228 o posterior. Para actualizar la versión menor, consulte Actualizar la versión menor del motor.

Sentencias DDL compatibles:

  • CREATE TABLE y DROP TABLE

  • ALTER TABLE: RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK, ALTER COLUMN DROP DEFAULT

  • TRUNCATE TABLE (solo para origen PostgreSQL autogestionado versión 11 o posterior)

  • CREATE INDEX ON TABLE

Limitaciones de DDL:

  • Para utilizar una tarea de sincronización de datos creada antes del 12 de mayo de 2023 con el fin de sincronizar operaciones DDL, debe crear desencadenadores y funciones en la base de datos de origen para capturar la información DDL antes de configurar la tarea. Para obtener más información, consulte Uso de desencadenadores y funciones para implementar la migración incremental de DDL en bases de datos PostgreSQL.

  • Los datos de tipo BIT no se pueden sincronizar durante la sincronización incremental de datos.

  • Las cláusulas DDL adicionales, como CASCADE o RESTRICT, no se sincronizan.

  • Las sentencias DDL provenientes de sesiones que ejecutan SET session_replication_role = replica no se sincronizan.

  • Las sentencias DDL ejecutadas mediante la invocación de funciones no se sincronizan.

  • Si una transacción contiene tanto sentencias DML como DDL, las sentencias DDL no se sincronizan.

  • Las sentencias DDL para objetos fuera del alcance de la sincronización no se sincronizan.

Crear una tarea de sincronización

Paso 1: Abrir la página de sincronización de datos

Utilice la consola de DTS o la consola de DMS.

Consola de DTS

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

  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 instancia de sincronización.

Consola de DMS

Nota

Los pasos pueden variar según el modo y el diseño de la consola de DMS. Consulte

Simple mode

y

Customize the layout and style of the DMS console

.

  1. Inicie sesión en la consola de DMS.DMS console

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

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

Paso 2: Crear la tarea

  1. Haga clic en Create Task.

  2. Si la página muestra un botón New Configuration Page en la esquina superior derecha, haga clic en él.

    Omita este paso si se muestra Back to Previous Version en su lugar. Las páginas de configuración nueva y anterior pueden diferir ligeramente; utilice la versión nueva.

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

Aviso

Después de configurar ambas bases de datos, lea los Limits que se muestran en la página. Omitir esta lectura puede provocar errores en la tarea o inconsistencia en los datos.

Sección

Parámetro

Descripción

N/A

Task Name

DTS genera automáticamente un nombre para la tarea. Se recomienda especificar un nombre descriptivo para facilitar su identificación. El nombre no tiene que ser único.

Source Database

Database Type

El tipo de la base de datos de origen. Seleccione PostgreSQL.

Connection Type

El método de acceso a la base de datos de origen. Seleccione Alibaba Cloud Instance.

Instance Region

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

Replicate Data Across Alibaba Cloud Accounts

Este ejemplo utiliza una instancia de base de datos que pertenece a la cuenta actual de Alibaba Cloud. Seleccione No.

Instance ID

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

Database Name

El nombre de la base de datos desde la cual se sincronizan los objetos en la instancia de origen de ApsaraDB RDS for PostgreSQL.

Database Account

La cuenta de la base de datos de la instancia de origen de ApsaraDB RDS for PostgreSQL. Especifique una cuenta con privilegios que sea propietaria de la base de datos. Para obtener más información sobre cómo crear una cuenta para una instancia de ApsaraDB RDS for PostgreSQL y otorgarle permisos, consulte Create an account y Create a database.

Nota

Si la instancia de origen es una instancia de ApsaraDB RDS for PostgreSQL V9.4 y solo desea sincronizar operaciones DML, la cuenta de la base de datos solo requiere el permiso REPLICATION.

Database Password

Introduzca la contraseña correspondiente a la cuenta de la base de datos.

Encryption

Especifica si se debe cifrar la conexión a la base de datos de origen. Este parámetro se configura según sus necesidades empresariales. En este ejemplo, se selecciona Non-encrypted.

Si desea establecer una conexión cifrada con SSL a la base de datos de origen, realice los siguientes pasos: seleccione SSL-encrypted, cargue el CA Certificate, el Client Certificate y la Private Key of Client Certificate según sea necesario, y luego especifique la Private Key Password of Client Certificate.

Nota
  • Si establece Encryption en SSL-encrypted para una base de datos PostgreSQL autogestionada, debe cargar el CA Certificate.

  • Si desea utilizar el certificado de cliente, debe cargar el Client Certificate y la Private Key of Client Certificate, y especificar la Private Key Password of Client Certificate.

  • Para obtener información sobre cómo configurar el cifrado SSL para una instancia de ApsaraDB RDS for PostgreSQL, consulte SSL encryption.

Destination Database

Database Type

El tipo de la base de datos de destino. Seleccione PostgreSQL.

Connection Type

El método de acceso a la base de datos de destino. Seleccione Alibaba Cloud Instance.

Instance Region

La región donde reside la instancia de destino de ApsaraDB RDS for PostgreSQL.

Instance ID

El ID de la instancia de destino de ApsaraDB RDS for PostgreSQL.

Database Name

El nombre de la base de datos hacia la cual se sincronizan los objetos en la instancia de destino de ApsaraDB RDS for PostgreSQL.

Database Account

La cuenta de la base de datos de la instancia de destino de ApsaraDB RDS for PostgreSQL. La cuenta debe tener permisos de propietario sobre los esquemas. Para obtener información sobre cómo crear una cuenta para una instancia de ApsaraDB RDS for PostgreSQL y otorgarle permisos, consulte Create an account.

Database Password

Introduzca la contraseña correspondiente a la cuenta de la base de datos.

Encryption

Especifica si se debe cifrar la conexión a la base de datos de origen. Este parámetro se configura según sus necesidades empresariales. En este ejemplo, se selecciona Non-encrypted.

Si desea establecer una conexión cifrada con SSL a la base de datos de origen, realice los siguientes pasos: seleccione SSL-encrypted, cargue el CA Certificate, el Client Certificate y la Private Key of Client Certificate según sea necesario, y luego especifique la Private Key Password of Client Certificate.

Nota
  • Si establece Encryption en SSL-encrypted para una base de datos PostgreSQL autogestionada, debe cargar el CA Certificate.

  • Si desea utilizar el certificado de cliente, debe cargar el Client Certificate y la Private Key of Client Certificate, y especificar la Private Key Password of Client Certificate.

  • Para obtener información sobre cómo configurar el cifrado SSL para una instancia de ApsaraDB RDS for PostgreSQL, consulte SSL encryption.

Paso 4: Probar la conectividad

Haga clic en Test Connectivity and Proceed en la parte inferior de la página.

Los bloques CIDR de los servidores de DTS deben agregarse a la configuración de seguridad de ambas bases de datos. Consulte Add the CIDR blocks of DTS servers . Si alguna de las bases de datos es autogestionada y no está configurada con acceso de tipo Alibaba Cloud Instance , haga clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers .

Paso 5: Configurar los objetos a sincronizar

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

Parámetro

Descripción

Synchronization Types

Incremental Data Synchronization está seleccionado de forma predeterminada. Seleccione también Schema Synchronization y Full Data Synchronization para sincronizar los datos históricos como línea base de la sincronización incremental. Al seleccionar Schema Synchronization, DTS sincroniza los esquemas de las tablas, incluidas las claves externas.

Synchronization Topology

Seleccione One-way Synchronization.

Processing Mode of Conflicting Tables

Precheck and Report Errors (predeterminado): la comprobación previa falla si el origen y el destino tienen tablas con el mismo nombre. Utilice el mapeo de nombres de objetos para renombrar las tablas en conflicto en el destino si es necesario. Ignore Errors and Proceed: omite la comprobación de conflictos de nombres. Durante la sincronización completa, se conservan los registros existentes en el destino que coincidan con valores de clave principal o única. Durante la sincronización incremental, estos se sobrescriben. Si los esquemas difieren, la inicialización podría fallar parcialmente. Utilícelo con precaución.

Capitalization of Object Names in Destination Instance

Controla el uso de mayúsculas en los nombres de bases de datos, tablas y columnas en el destino. El valor predeterminado es DTS default policy. Consulte Specify the capitalization of object names.

Source Objects

Seleccione columnas, tablas o esquemas y haga clic en el icono de flecha para moverlos a Selected Objects.

Selected Objects

Haga clic con el botón derecho en un objeto para renombrarlo (consulte Map the name of a single object), filtrar por operación SQL o agregar condiciones WHERE (consulte Set filter conditions). Para renombrar varios objetos a la vez, haga clic en Batch Edit. Tenga en cuenta que renombrar un objeto puede interrumpir la sincronización de los objetos dependientes.

Paso 6: Configurar opciones avanzadas

Haga clic en Next: Advanced Settings y configure lo siguiente:

Parámetro

Descripción

Dedicated Cluster for Task Scheduling

De forma predeterminada, DTS utiliza un clúster compartido. Para mayor estabilidad en las tareas, adquiera un clúster dedicado. Consulte What is a DTS dedicated cluster.

Retry Time for Failed Connections

Tiempo durante el cual DTS reintenta la conexión tras un fallo. Rango válido: 10–1440 minutos. Valor predeterminado: 720 minutos. Establezca un mínimo de 30 minutos. Si DTS se reconecta dentro de este periodo, la tarea se reanuda; de lo contrario, falla. Si varias tareas comparten el mismo origen o destino, se aplica el tiempo de reintento más corto. Los cargos de la instancia de DTS continúan durante los reintentos.

Retry Time for Other Issues

Tiempo durante el cual DTS reintenta tras fallos en operaciones DDL o DML. Rango válido: 1–1440 minutos. Valor predeterminado: 10 minutos. Establezca un mínimo de 10 minutos. Este valor debe ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Migration

Limite las consultas por segundo (QPS) a la base de datos de origen, los registros por segundo (RPS) de la migración completa de datos o la velocidad de migración (MB/s) para reducir la carga durante la sincronización completa. Visible solo cuando se selecciona Full Data Synchronization.

Enable Throttling for Incremental Data Synchronization

Limite los RPS o la velocidad de sincronización (MB/s) para la sincronización incremental a fin de reducir la carga en el destino.

Environment Tag

Una etiqueta opcional para identificar la instancia de DTS.

Configure ETL

Habilite la función de extracción, transformación y carga (ETL) para transformar los datos en tránsito. Seleccione Yesconfiguración de notificaciones de alertas para introducir instrucciones de procesamiento de datos. Consulte Configure ETL in a data migration or data synchronization task.

Monitoring and Alerting

Configure alertas para fallos en tareas o latencia que supere un umbral determinado. Seleccione Yes para configurar el umbral de alerta y los contactos de notificación. Consulte Configure monitoring and alerting when you create a DTS task.

Paso 7: Configurar la verificación de datos (opcional)

Haga clic en Next Step: Data Verification para configurar la verificación. Consulte Configure a data verification task.

Paso 8: Ejecutar la comprobación previa

Haga clic en Next: Save Task Settings and Precheck.

Para previsualizar los parámetros de la API correspondientes a esta configuración de tarea, pase el puntero sobre el botón y haga clic en Preview OpenAPI parameters antes de continuar.

DTS ejecuta una comprobación previa antes de que pueda iniciarse la tarea. Si la comprobación falla:

  • Haga clic en View Details junto a cada elemento fallido, resuelva el problema y luego haga clic en Precheck Again.

  • Si un elemento muestra una alerta que puede ignorarse, haga clic en Confirm Alert Details > Ignore > OK, y luego haga clic en Precheck Again. Ignorar alertas puede provocar inconsistencia en los datos.

Paso 9: Adquirir e iniciar la instancia

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

  2. En la página de compra, configure lo siguiente:

    Sección

    Parámetro

    Descripción

    New Instance Class

    Método de facturación

    • Subscription: Paga por una suscripción al crear una instancia de sincronización de datos. El modelo de facturación por suscripción es más rentable que el modelo pay-as-you-go para uso a largo plazo.

    • Pay-as-you-go: Una instancia pay-as-you-go se factura por hora. El modelo de facturación pay-as-you-go es adecuado para uso a corto plazo. Si ya no necesita una instancia de sincronización de datos pay-as-you-go, puede liberarla para reducir costos.

    Configuración del resource group

    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?

    Clase de instancia

    DTS ofrece clases de instancia que varían en velocidad de sincronización. Puede seleccionar una clase de instancia según sus necesidades empresariales. Para obtener más información, consulte Instance classes of data synchronization instances.

    Duración de la suscripción

    Si selecciona el método de facturación por suscripción, especifique la duración de la misma y la cantidad de instancias de sincronización de datos que desea crear. La duración de la suscripción puede ser de uno a nueve meses, un año, dos años, tres años o cinco años.

    Nota

    Este parámetro solo está disponible si selecciona el método de facturación Subscription.

  3. Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms.

  4. Haga clic en Buy and Start, y luego haga clic en OK en el cuadro de diálogo.

Consulte el progreso de la tarea en la lista de tareas.

Acciones posteriores al inicio de la tarea

Una vez iniciada la tarea, monitoree la latencia de sincronización en la lista de tareas. Antes de cambiar las cargas de trabajo al destino:

  • Actualice el valor inicial de las secuencias en la base de datos de destino. Después del cambio, los nuevos valores de secuencia no continuarán desde el valor máximo del origen.

  • Si utiliza únicamente DTS para escribir datos de tablas en la base de datos de destino, puede usar DMS para realizar operaciones DDL en línea sobre las tablas de origen sin bloquearlas durante la sincronización. Consulte Change schemas without locking tables.

Para consultar las topologías de sincronización compatibles, vea Synchronization topologies.