Data Transmission Service (DTS) admite la migración de datos desde una instancia de RDS for MySQL hacia el motor de tablas anchas de una instancia de Lindorm. DTS gestiona la replicación basada en registros binarios, lo que permite completar la migración con un tiempo de inactividad mínimo. Esto contrasta con mysqldump, que exige periodos prolongados de inactividad y resulta poco práctico para conjuntos de datos grandes. Usted puede elegir únicamente la migración completa o combinarla con una migración incremental continua para mantener sincronizado el destino mientras su aplicación sigue en línea.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de Lindorm de destino que utilice el motor de tablas anchas, con un espacio de almacenamiento mayor al que ocupa la instancia de origen de RDS for MySQL. Consulte Create an instance.
El endpoint de conexión compatible con MySQL habilitado en la instancia de Lindorm de destino. Consulte Enable the MySQL-compatible feature.
-
Una base de datos (namespace) creada en la instancia de Lindorm de destino para recibir los datos migrados. Si no selecciona Schema Migration, también debe crear una tabla ancha (se recomienda aplicar un preparticionamiento basado en los datos completos para mejorar el rendimiento). El preparticionamiento determina cómo se distribuyen los datos en el clúster de Lindorm. Elija una columna de alta cardinalidad como clave de partición para distribuir los datos de manera uniforme y evitar puntos críticos que ralenticen las lecturas y escrituras después de la migración. Una selección deficiente de la clave de partición también puede generar problemas durante la fase de CDC si las actualizaciones afectan las columnas de dicha clave. Para obtener instrucciones sobre cómo crear la base de datos y la tabla, consulte Connect to and use the wide table engine using the MySQL command line, Connect to and use the wide table engine using Lindorm-cli, Access the wide table engine using Lindorm Shell y CREATE TABLE. Para conocer la compatibilidad de tipos de datos, consulte Data type mapping.
Los objetos que cree deben cumplir con naming constraints and object limits for Lindorm instances .
Facturación
|
Migration type |
Task configuration fee |
Data transfer fee |
|
Migración completa de datos |
Gratuita |
Gratuita, salvo que Access Method esté configurada como Public IP Address. En ese caso, aplican las tarifas estándar de tráfico de Internet. Para más detalles, consulte Billable items. |
|
Migración incremental de datos |
De pago. Para más detalles, consulte Billing overview. |
— |
Operaciones SQL compatibles con la migración incremental
|
Operation type |
SQL operations |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, DROP TABLE, ADD COLUMN |
Debido a las limitaciones de LindormTable , DTS no migra atributos adicionales de columna en las instrucciones ADD COLUMN. Por ejemplo, si en el origen se ejecutaALTER TABLE test ADD COLUMN col INT DEFAULT 0;, DTS ejecutaráALTER TABLE test ADD COLUMN col INT;en el destino.
Permisos de las cuentas de base de datos
Base de datos | Migración completa | Migración incremental |
RDS for MySQL de origen | SELECT | Lectura y escritura |
Lindorm de destino | Lectura y escritura en el namespace de destino | |
Si la cuenta de la base de datos de origen no se creó ni recibió permisos desde la consola de RDS for MySQL, asegúrese de que cuente con los permisos REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW y SELECT. Para crear una cuenta y otorgar permisos mediante la consola, consulte Create an account y Modify the permissions of an account .
Para gestionar las cuentas de Lindorm, consulte User management.
Límites
Límites de la base de datos de origen
El servidor que aloja la base de datos de origen debe contar con suficiente ancho de banda de salida. De lo contrario, se verá afectada la velocidad de migración de datos.
Las tablas por migrar deben tener claves primarias y campos únicos. Sin ellos, podrían aparecer datos duplicados en el destino.
Si realiza la migración a nivel de tabla y edita objetos (como asignar nombres de tablas o columnas), una sola tarea admite un máximo de 1,000 tablas. Si supera este límite, divida las tablas en varias tareas o configure la tarea para migrar toda la base de datos.
-
Si el origen es MySQL 8.0.23 o posterior y los datos incluyen columnas invisibles, DTS no podrá leer dichas columnas y se perderán datos. Para hacer visibles las columnas invisibles antes de la migración, ejecute:
ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;Para más información, consulte Invisible Columns. Las tablas sin claves primarias explícitas generan automáticamente claves primarias invisibles; también debe hacerlas visibles. Consulte Generated Invisible Primary Keys.
Incremental migration only:
-
El registro binario debe estar habilitado con la configuración que se muestra a continuación. Sin estos ajustes, la comprobación previa falla y la tarea no puede iniciar. Requisitos de retención del registro binario: si los registros binarios se eliminan antes de que DTS pueda leerlos, la tarea podría fallar o generarse inconsistencias en los datos, y el Acuerdo de Nivel de Servicio (SLA) de DTS podría no aplicar.
ApsaraDB RDS for MySQL: como mínimo 3 días (se recomiendan 7 días). Consulte Configure parameters based on which the system automatically deletes the binary log files of an RDS instance.
MySQL autogestionado: como mínimo 7 días.
Parameter
Required value
Effect if not set
binlog_formatROWConfigurar este parámetro como
STATEMENToMIXEDpuede provocar inconsistencias de datos en el destino.binlog_row_imagefullLas imágenes parciales de fila pueden generar una replicación incompleta de los datos.
log_slave_updatesONObligatorio solo para MySQL autogestionado en un clúster de doble primario. Sin este ajuste, DTS no puede obtener todos los registros binarios.
Solo para migración completa:
-
No ejecute operaciones DDL en el origen durante la migración completa, ya que podrían provocar que la tarea falle.
Durante la migración completa, DTS consulta la base de datos de origen y crea bloqueos de metadatos que pueden impedir las operaciones DDL en el origen.
No escriba datos nuevos en el origen si selecciona únicamente Full Data Migration. Para mantener sincronizados el origen y el destino durante toda la migración, seleccione tanto Full Data Migration como Incremental Data Migration.
-
La migración completa de datos no se puede ejecutar si la instancia de RDS for MySQL de origen tiene habilitada la función EncDB.
Las instancias de RDS for MySQL con Transparent Data Encryption (TDE) habilitado admiten la migración de esquemas, la migración completa de datos y la migración incremental de datos.
Otros límites
La migración de esquemas hacia Lindorm depende de las capacidades propias de Lindorm para crear dichos esquemas.
Lindorm tiene un límite predeterminado en la cantidad de columnas para los índices en columnas que no son clave primaria. DTS no puede crear estos índices durante la migración de esquemas cuando la cantidad de columnas supera dicho límite. Si necesita utilizarlos, créelos manualmente. Para más detalles, consulte ALTER SYSTEM.
No se admite la migración de objetos INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER ni de claves externas.
No se admite la migración del tipo de dato BIT.
No es posible migrar únicamente los campos de clave primaria. Los datos deben contener como mínimo un campo que no sea clave primaria.
Los datos solo se pueden escribir en el motor de tablas anchas de una instancia de Lindorm.
Tanto DTS como Lindorm tratan las cadenas vacías del tipo VARBINARY como valores nulos.
Si la precisión de un campo DECIMAL en el destino difiere de la del origen, la tarea falla.
Los datos escritos en Lindorm deben cumplir con limits on data requests. Las solicitudes que superen estos límites provocarán que la tarea falle.
La migración completa ejecuta operaciones INSERT simultáneas, lo que fragmenta el espacio de tablas en el destino. Una vez finalizada la inicialización completa, el espacio de tablas del destino será mayor que el del origen.
No ejecute herramientas DDL en línea, como pt-online-schema-change, sobre los objetos de migración en el origen durante el proceso. Hacerlo provoca que la migración falle.
Si durante la migración se escriben datos en el destino desde orígenes distintos a DTS, podrían generarse inconsistencias.
-
Los datos generados por operaciones de cambio en el registro binario (como los restaurados desde una copia de seguridad física o mediante operaciones en cascada) no se migran al destino.
Si estos datos no se migran, puede volver a ejecutar una migración completa siempre que no afecte su operación.
Si una instancia de DTS presenta errores, el equipo de soporte de DTS intentará recuperarla en un plazo de 8 horas. Las operaciones de recuperación pueden incluir reiniciar la instancia y ajustar parámetros de la instancia de DTS (no parámetros de la base de datos). Para conocer los parámetros que podrían ajustarse, consulte Modify instance parameters.
Casos especiales
Origen MySQL autogestionado:
Si ocurre un cambio entre primario y secundario en el origen mientras la tarea de migración está en ejecución, la tarea falla.
DTS ejecuta periódicamente
CREATE DATABASE IF NOT EXISTSen el origen para avanzar la posición del archivo de registro binario.Si no se ejecutan operaciones DML en el origen durante un periodo prolongado, las lecturas de latencia de la migración podrían ser imprecisas. Ejecute una operación DML en el origen para actualizar la latencia. Si selecciona una base de datos completa como objeto de migración, cree una tabla de latidos que reciba actualizaciones cada segundo.
Origen ApsaraDB RDS for MySQL:
Incremental migration only: No es posible usar una instancia de solo lectura de RDS for MySQL V5.6 como origen porque no registra los logs de transacciones.
DTS ejecuta periódicamente
CREATE DATABASE IF NOT EXISTSen el origen para avanzar la posición del archivo de registro binario.
Creación de una tarea de migración
Paso 1: Abrir la página Data Migration
Utilice uno de los métodos que se describen a continuación:
Consola de DTS
Inicie sesión en la consola de DTS.consola de DTS
En el panel de navegación izquierdo, haga clic en Data Migration.
En la esquina superior izquierda, seleccione la región donde reside la instancia de migración.
Consola de DMS
Nota
La navegación exacta puede variar según el modo y el diseño de la consola de DMS. Para más información, consulte Simple mode y Customize the layout and style of the DMS console.
Inicie sesión en la consola de DMS.consola de DMS
En la barra de navegación superior, vaya a Data + AI > DTS (DTS) > Data Migration.
A la derecha de Data Migration Tasks, seleccione la región en la lista desplegable.
Paso 2: Configurar las bases de datos de origen y de destino
Haga clic en Create Task.
-
Configure las bases de datos de origen y de destino con los siguientes parámetros:
Base de datos de origen:
Parameter
Description
Task Name
Nombre de la tarea de DTS. DTS genera un nombre automáticamente. Especifique un nombre descriptivo para identificar fácilmente la tarea. No es obligatorio que el nombre sea único.
Select Existing Connection
Si la instancia de origen ya está registrada en DTS, selecciónela en la lista desplegable para que DTS complete automáticamente los parámetros de la base de datos. De lo contrario, configure manualmente los parámetros que se muestran a continuación.
Database Type
Seleccione MySQL.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región donde reside la instancia de RDS for MySQL de origen.
Replicate Data Across Alibaba Cloud Accounts
Seleccione No si el origen se encuentra en la misma cuenta de Alibaba Cloud.
RDS Instance ID
Seleccione el ID de la instancia de RDS for MySQL de origen.
Database Account
Introduzca la cuenta de la base de datos de la instancia de origen. Para conocer los permisos obligatorios, consulte Database account permissions.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
Seleccione Non-encrypted o SSL-encrypted. Para usar el cifrado SSL, primero habilítelo en la instancia de RDS for MySQL. Consulte Use a cloud certificate to enable SSL encryption.
Base de datos de destino:
Parameter
Description
Select Existing Connection
Si la instancia de destino ya está registrada en DTS, selecciónela en la lista desplegable. De lo contrario, configure manualmente los parámetros que se muestran a continuación.
Database Type
Seleccione Lindorm.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región donde reside la instancia de Lindorm de destino.
Instance ID
Seleccione el ID de la instancia de Lindorm de destino.
Database Account
Introduzca la cuenta de la base de datos de la instancia de destino.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
-
Haga clic en Test Connectivity and Proceed.
Asegúrese de que los bloques CIDR 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 Add DTS server IP addresses to a whitelist . Si el origen o el destino es una base de datos autogestionada a la que no se accede mediante Alibaba Cloud Instance , haga clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers .
Paso 3: Configurar los objetos por migrar
-
En la página Configure Objects, establezca los siguientes parámetros:
Si no selecciona Incremental Data Migration , no escriba datos nuevos en el origen durante la migración para garantizar la consistencia de los datos.
Parameter
Description
Migration Types
Seleccione Full Data Migration para una migración única. Seleccione tanto Full Data Migration como Incremental Data Migration para mantener el destino sincronizado con el origen durante toda la migración.
Processing Mode of Conflicting Tables
Mantenga el valor predeterminado.
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. Para más información, consulte Capitalization policy for object names in the destination database.
Source Objects
Seleccione las bases de datos o tablas por migrar y luego haga clic en
para moverlas a Selected Objects.Selected Objects
Si los nombres de bases de datos, tablas o columnas en la instancia de Lindorm de destino difieren de los del origen, utilice la asignación de nombres de objetos. Para más detalles, consulte Map object names. Para aplicar filtros a nivel de fila, haga clic derecho sobre una tabla y especifique las condiciones WHERE. Consulte Specify filter conditions. Para elegir qué operaciones SQL incluir en la migración incremental, haga clic derecho sobre un objeto y seleccione las operaciones correspondientes.
-
Haga clic en Next: Advanced Settings y configure lo siguiente:
Parameter
Description
Dedicated Cluster for Task Scheduling
De forma predeterminada, DTS utiliza el clúster compartido. Para mejorar la estabilidad, 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 si el origen o el destino no están disponibles. Valores válidos: de 10 a 1,440 minutos. Valor predeterminado: 720 minutos. Establezca este valor en más de 30 minutos. Si DTS restablece la conexión dentro de esta ventana, reanuda la tarea; de lo contrario, la tarea falla. Nota: si varias tareas comparten el mismo origen o destino, aplica el valor configurado más recientemente. Se le cobrará por la instancia de DTS durante los reintentos.
Retry Time for Other Issues
Tiempo durante el cual DTS reintenta las operaciones DDL o DML con errores. Valores válidos: de 1 a 1,440 minutos. Valor predeterminado: 10 minutos. Establezca este valor en más de 10 minutos. Debe ser menor que Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Limita la velocidad de la migración completa para reducir la carga en el origen y el destino. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Disponible solo cuando se selecciona Full Data Migration.
Enable Throttling for Incremental Data Migration
Limita la velocidad de la migración incremental. Configure RPS of Incremental Data Migration y Data migration speed for incremental migration (MB/s). Disponible solo cuando se selecciona Incremental Data Migration.
Environment Tag
Seleccione una etiqueta para identificar la instancia. Este ejemplo no requiere ninguna etiqueta.
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks
Controla si DTS escribe operaciones SQL de la tabla de latidos en el origen mientras la instancia está en ejecución. Seleccione Yesconfiguración de notificaciones de alerta para omitir la escritura (podría mostrarse un valor de latencia en la instancia de DTS). Seleccione No para escribir las operaciones de latidos (esto podría afectar la copia de seguridad física y la clonación del origen).
Configure ETL
Seleccione Yes para configurar reglas de extracción, transformación y carga (ETL) en el editor de código. Consulte Configure ETL in a data migration or data synchronization task. Seleccione No para omitir la configuración de ETL.
Monitoring and Alerting
Seleccione Yes para recibir alertas cuando la tarea falle o la latencia de migración supere el umbral. Configure el umbral de alerta y los ajustes de notificación. Consulte Configure monitoring and alerting when you create a DTS task.
Paso 4: Ejecutar la comprobación previa
Haga clic en Next: Save Task Settings and Precheck.
Para ver los parámetros de openapi de esta configuración de tarea, coloque el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters antes de continuar.
DTS ejecuta una comprobación previa antes de iniciar la migración. Si la comprobación falla:
Haga clic en View Details junto a cada elemento con errores, resuelva el problema y luego haga clic en Precheck Again.
Si una alerta de la comprobación previa se puede ignorar, haga clic en Confirm Alert Details, luego en Ignore en el cuadro de diálogo, después en OK y finalmente en Precheck Again. Ignorar alertas puede generar inconsistencias en los datos.
Paso 5: Adquirir e iniciar la instancia
Espere hasta que Success Rate alcance 100% y luego haga clic en Next: Purchase Instance.
-
En la página Purchase Instance, configure lo siguiente:
Parameter
Description
Resource Group
El resource group de la instancia de migración. Valor predeterminado: default resource group. Consulte What is Resource Management?
Instance Class
DTS ofrece clases de instancia que varían en velocidad de migración. Seleccione una clase de instancia según su escenario de negocio. Consulte Instance classes of data migration instances.
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms, y luego haga clic en Buy and Start. Haga clic en OK en el mensaje de confirmación.
Puede consultar el progreso de la tarea en la página Data Migration.
Si una tarea de migración de datos no sirve para migrar datos incrementales, se detiene automáticamente y se muestra el estado Completed .
Si una tarea de migración de datos sirve para migrar datos incrementales, no se detiene automáticamente. La tarea de migración incremental se ejecuta de forma continua y se muestra el estado Running .