Todos los productos
Search
Centro de documentos

Data Transmission Service:Migrate data between PolarDB for PostgreSQL clusters

Última actualización: Sep 24, 2026

Use Data Transmission Service (DTS) para migrar datos entre clústeres de PolarDB for PostgreSQL con un tiempo de inactividad mínimo o nulo.

Requisitos previos

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

  • Un clúster de destino de PolarDB for PostgreSQL con más espacio de almacenamiento que el clúster de origen. Consulte Create a database cluster.

  • El parámetro wal_level del clúster de origen establecido en logical. Consulte Set cluster parameters.

  • Una base de datos creada en el clúster de destino para recibir los datos migrados. Consulte Database management.

Facturación

Tipo de migración

Cargo por configuración del enlace

Costo de transferencia de datos

Migración de esquema y migración completa de datos

Sin cargo

Sin cargo para este ejemplo

Migración incremental de datos

De pago. Consulte Billing overview

—

Objetos de migración compatibles

SCHEMA, TABLE (incluye PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, DATATYPE —tipos de datos integrados— y DEFAULT CONSTRAINT).

Las funciones compatibles cuando este tipo de base de datos actúa como origen varían según el tipo de base de datos de destino. La consola muestra las funciones aplicables.

Operaciones SQL compatibles con la migración incremental

Tipo de operación

Instrucciones SQL

DML

INSERT, UPDATE, DELETE

DDL

CREATE TABLE, 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 en PostgreSQL 11 y versiones posteriores), CREATE INDEX ON TABLE

Importante
  • La migración DDL solo se admite en tareas creadas después del 1 de octubre de 2020.

  • Para las tareas creadas antes del 12 de mayo de 2023, cree triggers y funciones en la base de datos de origen para capturar los cambios DDL antes de configurar la tarea. Consulte Uso de triggers y funciones para la migración DDL incremental en PostgreSQL.

  • La migración DDL requiere una cuenta con privilegios en la base de datos de origen.

  • La migración incremental no es compatible con el tipo de dato BIT.

  • No se admiten instrucciones DDL con cláusulas CASCADE o RESTRICT.

  • No se admiten instrucciones DDL ejecutadas en sesiones donde se haya configurado SET session_replication_role = replica.

  • No se admiten instrucciones DDL ejecutadas mediante llamadas a funciones.

  • Si una sola transacción contiene instrucciones DML y DDL, la instrucción DDL no se migra.

  • Si una sola transacción contiene instrucciones DDL para objetos no seleccionados para la migración, dichas instrucciones no se migran.

Permisos de las cuentas de base de datos

Base de datos

Permisos obligatorios

Cómo crearla

PolarDB for PostgreSQL de origen

Cuenta con privilegios

Create a database account

PolarDB for PostgreSQL de destino

Cuenta con privilegios o superusuario

Create a database account

Limitaciones

Revise a continuación las limitaciones antes de iniciar la tarea de migración.

Base de datos de origen:

  • Las tablas que se van a migrar deben tener una clave primaria o un índice único distinto de NULL.

  • Las transacciones de larga duración durante la migración incremental provocan la acumulación de registros WAL (write-ahead log). Esto puede agotar el espacio en disco de la base de datos de origen.

  • El clúster de origen debe ser compatible con Logical Replication Slot Failover y tenerlo habilitado. Si el clúster no lo admite (por ejemplo, si Database Engine es PostgreSQL 14), un cambio por alta disponibilidad (HA) en la base de datos de origen puede provocar un fallo irrecuperable en la instancia de migración.

  • Durante la migración del esquema y la migración completa, no ejecute operaciones DDL que modifiquen la estructura de la base de datos o de las tablas. De hacerlo, la tarea de migración fallará.

  • Durante una migración exclusivamente completa, no escriba datos nuevos en la instancia de origen, ya que se producirá inconsistencia de datos. Para mantener la consistencia en tiempo real, ejecute juntas la migración del esquema, la migración completa de datos y la migración incremental de datos.

  • Si un solo cambio incremental supera los 256 MB, la instancia de migración fallará y no se podrá recuperar. En ese caso, deberá volver a configurar la instancia de migración.

Migration scope:

  • Una sola tarea de migración únicamente puede migrar una base de datos. Configure una tarea independiente por cada base de datos que necesite migrar.

  • DTS no es compatible con tablas de la extensión TimescaleDB, tablas con herencia entre esquemas ni tablas con índices únicos basados en expresiones.

  • Los esquemas creados al instalar complementos no se pueden migrar y no aparecen en la consola al configurar una tarea.

Requisitos de la migración incremental:

  • Ejecute ALTER TABLE schema.table REPLICA IDENTITY FULL; en todas las tablas que se van a migrar en la base de datos de origen antes de escribir datos en ellas. No ejecute operaciones de bloqueo de tablas mientras corre este comando, ya que puede causar interbloqueos. DTS ejecuta este comando automáticamente durante la inicialización de la instancia si usted omite la comprobación previa. Ejecute este comando en las siguientes situaciones:

    • Cuando la instancia se ejecuta por primera vez.

    • Cuando el objeto de migración es un esquema y se crea una tabla nueva en él, o cuando se reconstruye una tabla existente mediante RENAME.

    Reemplace schema y table con los nombres reales. Ejecute este comando fuera del horario de mayor actividad.
  • Si una tabla contiene un campo SERIAL y usted selecciona Schema Migration en Migration Types, seleccione también Sequence o migre el esquema completo. De lo contrario, la instancia de migración podría fallar.

  • DTS crea un slot de replicación con el prefijo dts_sync_ en la base de datos de origen para replicar los datos. Este slot conserva los registros incrementales de los últimos 15 minutos. DTS intenta limpiarlo automáticamente cuando la migración falla o se libera la instancia.

    Si cambia la contraseña de la cuenta de la base de datos de origen o quita las direcciones IP de DTS de la lista blanca durante la migración, el slot de replicación no se limpiará automáticamente. Limpie el slot manualmente para evitar que acumule datos y consuma espacio en disco, lo cual podría dejar la base de datos de origen no disponible. Si ocurre un failover en la base de datos de origen, inicie sesión en la base de datos secundaria para limpiar el slot manualmente.
  • En tareas con claves externas, triggers o event triggers, DTS establece session_replication_role en replica a nivel de sesión si la cuenta de la base de datos de destino tiene privilegios o permisos de superusuario. Si la cuenta de destino no cuenta con estos permisos, establezca session_replication_role en replica manualmente en la base de datos de destino. Una vez liberada la tarea de migración, cambie el parámetro de vuelta a origin.

Base de datos de destino:

  • La migración completa de datos ejecuta operaciones INSERT concurrentes, lo que fragmenta las tablas. Por ello, tras la migración, el espacio de tabla en la base de datos de destino será mayor que en la de origen.

  • DTS valida el contenido de los datos, pero no los metadatos, como las secuencias. Valide los metadatos por su cuenta.

  • Después del corte a la base de datos de destino, las secuencias no comienzan desde el valor máximo de la base de datos de origen. Actualice el valor de la secuencia en la base de datos de destino antes del corte. Consulte Actualizar el valor de secuencia de la base de datos de destino.

Tablas particionadas:

  • Incluya tanto la tabla padre como todas las tablas hijas como objetos de migración. En PostgreSQL, las tablas padre no almacenan datos directamente, ya que todos los datos residen en las tablas hijas. Si no incluye las tablas hijas, se producirá inconsistencia de datos.

Recuperación de tareas:

  • DTS intenta recuperar automáticamente las tareas con errores durante siete días. Antes de cambiar su negocio a la instancia de destino, finalice o libere la tarea. También puede usar el comando revoke para revocar los permisos de escritura de la cuenta de DTS en la instancia de destino. Así evita que los datos de origen sobrescriban los de destino tras una recuperación automática.

  • Si una tarea falla, el equipo de soporte de DTS intenta restaurarla en un plazo de ocho horas. Para ello, podrían reiniciar la tarea o ajustar los parámetros de la tarea de DTS (no los parámetros de la base de datos). Consulte Modify instance parameters para ver los parámetros que se podrían ajustar.

Tablas temporales:

  • DTS crea las siguientes tablas temporales en la base de datos de origen para capturar instrucciones DDL, estructuras de tablas incrementales e información de latidos. No las elimine durante la migración, ya que la tarea de DTS fallará. DTS las elimina automáticamente después de liberar la instancia: 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, public.aliyun_dts_instance

Comportamiento de la migración de esquemas:

  • DTS migra las claves externas de la base de datos de origen a la de destino durante la migración del esquema.

  • Durante la migración completa e incremental, DTS deshabilita temporalmente las comprobaciones de restricciones y las operaciones en cascada de claves externas a nivel de sesión. Si ocurren actualizaciones o eliminaciones en cascada en la base de datos de origen mientras la tarea está en ejecución, podría generarse inconsistencia de datos.

Crear una tarea de migración

Paso 1: Ir a la migración de datos

Vaya a la lista de tareas de migración de datos mediante uno de los métodos a continuación.

Desde la consola de DTS

  1. Inicie sesión en Data Transmission Service (DTS) console.

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

  3. En la esquina superior izquierda, seleccione la región donde se encuentra la instancia de migración.

Desde la consola de DMS

Nota

Las operaciones reales pueden variar según el modo y el diseño de la consola de DMS. Para obtener más información, consulte Consola en modo simple y Personalizar el diseño y el estilo de la consola de DMS.

  1. Inicie sesión en Data Management (DMS) console.

  2. En la barra de menú superior, vaya a Data + AI > Data Transmission (DTS) > Data Migration > > .

  3. A la derecha de Data Migration Tasks, seleccione la región donde se encuentra la instancia de migración.

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

  1. Haga clic en Create Task.

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

    Parámetro

    Descripción

    Task Name

    DTS genera un nombre de tarea automáticamente. Especifique un nombre descriptivo para identificarla fácilmente. No es obligatorio que sea único.

    Source Database — Select Existing Connection

    Seleccione una instancia de base de datos que ya esté agregada al sistema. Los detalles de conexión se completan automáticamente. Si no existe ninguna instancia registrada o prefiere no usar una, complete los detalles de conexión manualmente.

    Database Type (origen)

    Seleccione PolarDB for PostgreSQL.

    Access Method (origen)

    Seleccione Alibaba Cloud Instance.

    Instance Region (origen)

    Seleccione la región donde reside el clúster de origen.

    Replicate Data Across Alibaba Cloud Accounts

    Seleccione No para migraciones dentro de la misma cuenta de Alibaba Cloud.

    Instance ID (origen)

    Seleccione el ID del clúster de origen de PolarDB for PostgreSQL.

    Database Name (origen)

    Introduzca el nombre de la base de datos de origen que contiene los objetos por migrar.

    Database Account (origen)

    Introduzca la cuenta de la base de datos. Consulte Database account permissions para ver los permisos obligatorios.

    Database Password (origen)

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

    Destination Database — Select Existing Connection

    Seleccione una instancia de base de datos registrada o complete los detalles de conexión manualmente.

    Database Type (destino)

    Seleccione PolarDB for PostgreSQL.

    Access Method (destino)

    Seleccione Alibaba Cloud Instance.

    Instance Region (destino)

    Seleccione la región donde reside el clúster de destino.

    Instance ID (destino)

    Seleccione el ID del clúster de destino de PolarDB for PostgreSQL.

    Database Name (destino)

    Introduzca el nombre de la base de datos de destino que recibirá los datos.

    Database Account (destino)

    Introduzca la cuenta de la base de datos del clúster de destino.

    Database Password (destino)

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

  3. Haga clic en Test Connectivity and Proceed.

    Asegúrese de que los rangos de direcciones IP de los servidores de DTS estén agregados a la configuración de seguridad de las bases de datos de origen y de destino. Consulte Agregar direcciones IP de servidores de DTS a una lista blanca .

Paso 3: Configurar los objetos de migración

En la página Configure Objects, configure qué elementos desea migrar.

Parámetro

Descripción

Migration Types

Seleccione los tipos de migración según su escenario: Schema Migration solo copia el esquema. Schema Migration + Full Data Migration copia el esquema y todos los datos existentes; es adecuada para una migración única con tiempo de inactividad planificado. Schema Migration + Full Data Migration + Incremental Data Migration copia el esquema, todos los datos existentes y los cambios continuos; utilícela para migraciones sin tiempo de inactividad.

Processing Mode of Conflicting Tables

Precheck and Report Errors: DTS comprueba si existen tablas con el mismo nombre en la base de datos de destino. Si hay conflictos, la comprobación previa falla y la tarea no se inicia. Para resolverlos sin eliminar ni renombrar las tablas de destino, use la asignación de nombres de objetos. Ignore Errors and Proceed: DTS omite la comprobación de conflictos. Durante la migración completa, se conservan los registros conflictivos en el destino. Durante la migración incremental, los registros de origen sobrescriben los de destino. Si los esquemas de las tablas son inconsistentes, es posible que solo se migren algunas columnas o que la migración falle.

Capitalization of Object Names in Destination Instance

Establezca la política de distinción entre mayúsculas y minúsculas para los nombres de los objetos migrados (bases de datos, tablas y columnas). El valor predeterminado es DTS default policy. Consulte Distinción entre mayúsculas y minúsculas en los nombres de objetos.

Source Objects

Haga clic en los objetos del cuadro Source Objects y luego en la flecha derecha para moverlos al cuadro Selected Objects. Puede seleccionar a nivel de esquema o de tabla. Al seleccionar tablas no se migran vistas, triggers ni procedimientos almacenados. Si una tabla tiene un campo SERIAL y usted selecciona Schema Migration, seleccione también Sequence o migre el esquema completo.

Selected Objects

Para renombrar un objeto migrado, haga clic derecho sobre él en Selected Objects. Consulte Asignación de nombres de objetos. Para renombrar varios objetos a la vez, haga clic en Batch Edit. Consulte Asignar varios nombres de objetos. Para filtrar filas, haga clic derecho en una tabla y establezca una cláusula WHERE. Consulte Set a filter condition.

Si no selecciona Schema Migration , asegúrese de que ya existan una base de datos y tablas para recibir los datos en la base de datos de destino. También puede usar la función de asignación de nombres de objetos en el cuadro Selected Objects según lo requiera. Usar esta asignación puede provocar que los objetos dependientes no se migren.

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 programa las tareas en un clúster compartido. Para obtener tareas más estables, adquiera un dedicated cluster.

Retry Time for Failed Connections

Si la conexión con la base de datos de origen o de destino falla después de iniciar la tarea, DTS reintenta de inmediato. Valor predeterminado: 720 minutos. Rango: de 10 a 1440 minutos. Se recomienda establecer un valor superior a 30 minutos. Si DTS se vuelve a conectar dentro del periodo de reintento, la tarea se reanuda automáticamente.

Retry Time for Other Issues

Si ocurre un problema que no es de conectividad (como un error de ejecución DDL o DML), DTS reintenta de inmediato. Valor predeterminado: 10 minutos. Rango: de 1 a 1440 minutos. Se recomienda establecer un valor superior a 10 minutos. Debe ser menor que Retry Time for Failed Connections.

Enable Throttling for Full Data Migration

Limite la carga de lectura y escritura en las bases de datos de origen y de destino durante la migración completa. Configure 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 Migration. También puede ajustar la velocidad de la migración completa después de iniciar la tarea.

Enable Throttling for Incremental Data Migration

Limite la carga durante la migración incremental. Configure RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s). Solo está disponible cuando se selecciona Incremental Data Migration. También puede ajustar la velocidad de la migración incremental después de iniciar la tarea.

Environment Tag

Opcionalmente, etiquete la instancia para identificar su entorno.

Configure ETL

Habilite la función de extracción, transformación y carga (ETL) para transformar los datos durante la migración. Consulte ¿Qué es ETL? y Configurar ETL.

Monitoring and Alerting

Configure alertas para recibir notificaciones cuando la migración falle o la latencia supere un umbral. Consulte Configurar monitoreo y alertas.

Paso 5: Configurar la validación de datos (opcional)

Haga clic en Next: Data Validation para configurar una tarea de validación de datos. Consulte Configurar la validación de datos.

Paso 6: 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, pase el cursor sobre el botón y haga clic en Preview OpenAPI parameters .

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

  • Para los elementos con errores: haga clic en View Details, corrija el problema y vuelva a ejecutar la comprobación previa.

  • Para las advertencias que no se pueden ignorar: haga clic en View Details, corrija el problema y vuelva a ejecutar la comprobación previa.

  • Para las advertencias que sí se pueden ignorar: haga clic en Confirm Alert Details > Ignore > OK > Precheck Again para omitir el elemento. Ignorar advertencias puede generar inconsistencia de datos.

Paso 7: Adquirir e iniciar la instancia

  1. Cuando Success Rate alcance el 100 %, haga clic en Next: Purchase Instance.

  2. En la página Purchase, configure la clase de la instancia.

    Parámetro

    Descripción

    Resource Group Settings

    Seleccione el resource group para la instancia. Valor predeterminado: el resource group predeterminado. Consulte What is Resource Management?

    Instance Class

    Seleccione una especificación según sus requisitos de rendimiento. La especificación del enlace afecta la velocidad de migración. Consulte Especificaciones de enlaces de migración de datos.

  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.

Verificar la migración

Monitoree el progreso de la tarea en la página Data Migration Tasks:

  • Las tareas sin migración incremental se detienen automáticamente cuando termina la migración completa. Status cambia a Completed.

  • Las tareas con migración incremental continúan ejecutándose. Status muestra Running mientras la migración incremental está activa.

Pasos siguientes

Antes de hacer el corte a la base de datos de destino:

  • Actualice el valor de la secuencia en la base de datos de destino. Después del corte, las secuencias no se reanudan desde el valor máximo de la base de datos de origen. Consulte Actualizar el valor de secuencia de la base de datos de destino.

  • Finalice o libere la tarea de DTS, o bien revoque los permisos de escritura de la cuenta de DTS en la instancia de destino mediante el comando revoke. Así evita que las tareas recuperadas automáticamente sobrescriban los datos de destino.