Utilice Data Transmission Service (DTS) para migrar datos de una instancia de ApsaraDB RDS for MariaDB TX a una instancia de ApsaraDB RDS for MySQL. DTS admite la migración de esquemas, la migración completa de datos y la migración incremental de datos, lo que le permite migrar datos con un tiempo de inactividad mínimo.
Requisitos previos
Antes de empezar, asegúrese de haber:
Creado la instancia de destino de ApsaraDB RDS for MySQL. Para obtener más información, consulte Create an ApsaraDB RDS for MySQL instance
Comprobado que la instancia de destino tiene suficiente espacio de almacenamiento libre para alojar todos los datos de la instancia de origen
Concedido los permisos necesarios a las cuentas de base de datos. Consulte Permissions required for database accounts
Facturación
|
Tipo de migración |
Tarifa de configuración de tareas |
Tarifa de transferencia de datos |
|
Migración de esquemas y migración completa de datos |
Gratuita |
Gratuita |
|
Migración incremental de datos |
De pago |
Consulte Billing overview |
Permisos necesarios para las cuentas de base de datos
| Base de datos | Migración de esquemas | Migración completa de datos | Migración incremental de datos |
|---|---|---|---|
| Instancia de origen de ApsaraDB RDS for MariaDB TX | SELECT en los objetos que se van a migrar | Lectura y escritura en los objetos que se van a migrar | Lectura y escritura en los objetos que se van a migrar |
| Instancia de destino de ApsaraDB RDS for MySQL | Lectura y escritura en la base de datos de destino | ||
Para obtener instrucciones sobre cómo crear cuentas y conceder los permisos necesarios, consulte:
ApsaraDB RDS for MariaDB TX: Create an account y Modify or reset account permissions
ApsaraDB RDS for MySQL: Create an account y Modify account permissions
Operaciones SQL compatibles con la migración incremental
|
Tipo |
Sentencias compatibles |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE |
Las operaciones RENAME TABLE pueden causar inconsistencia en los datos. Si cambia el nombre de una tabla durante la migración y la tabla está seleccionada como objeto de migración (no la base de datos), los datos de esa tabla no se migrarán. Para evitar esto, seleccione la base de datos como objeto de migración en lugar de la tabla individual. Asegúrese de que tanto la tabla original como la renombrada pertenezcan a bases de datos incluidas en los objetos de migración.
Límites
Comportamiento de claves foráneas
DTS migra las claves foráneas de la base de datos de origen a la base de datos de destino durante la migración de esquemas. Durante la migración completa de datos y la migración incremental de datos, DTS deshabilita temporalmente las comprobaciones de restricciones de clave foránea y las operaciones en cascada a nivel de sesión. Si realiza operaciones en cascada o de eliminación en la base de datos de origen durante la migración, puede producirse inconsistencia en los datos.
Requisitos de la base de datos de origen
|
Requisito |
Detalles |
|
Ancho de banda |
El servidor de origen debe tener suficiente ancho de banda de salida. Un ancho de banda insuficiente reduce la velocidad de migración. |
|
Restricciones de tabla |
Las tablas deben tener restricciones PRIMARY KEY o UNIQUE, y todos los campos deben ser únicos. Sin estas restricciones, la base de datos de destino podría contener registros duplicados. |
|
Límite de recuento de tablas |
Si selecciona tablas como objetos de migración y necesita cambiarles el nombre en la base de datos de destino, una sola tarea de migración admite hasta 1,000 tablas. Para más de 1,000 tablas, divida la tarea o seleccione toda la base de datos como objeto de migración. |
|
Operaciones DDL |
No realice operaciones DDL en la base de datos de origen durante la migración de esquemas o la migración completa de datos. |
|
Operaciones de escritura |
Si ejecuta solo la migración completa de datos (sin migración incremental), no escriba en la base de datos de origen durante la migración. Para garantizar la consistencia de los datos, seleccione conjuntamente la migración de esquemas, la migración completa de datos y la migración incremental de datos. |
Requisitos de binlog para la migración incremental de datos
Para habilitar la migración incremental de datos, configure los siguientes parámetros en la instancia de origen:
|
Parámetro |
Valor obligatorio |
Motivo |
|
Registro binario |
Habilitado |
DTS lee los cambios de los registros binarios para la migración incremental. |
|
|
|
El formato basado en filas captura los cambios completos a nivel de fila requeridos por DTS. |
|
|
|
La imagen completa captura los valores anteriores y posteriores para cada cambio de fila. |
Establezca el período de retención del registro binario según su tipo de migración:
Solo migración incremental: Retenga los registros binarios durante más de 24 horas.
Migración completa de datos + migración incremental de datos: Retenga los registros binarios durante al menos 7 días. Una vez completada la migración completa de datos, puede reducir el período de retención a más de 24 horas.
Si DTS no puede recuperar los registros binarios necesarios, la tarea fallará o podría producirse pérdida de datos. Establecer períodos de retención inferiores a estos mínimos anula el acuerdo de nivel de servicio (SLA) de DTS.
Otros límites
Momento de ejecución: Evalúe el impacto en el rendimiento de las bases de datos de origen y destino antes de comenzar. Ejecute las migraciones fuera de las horas pico, ya que la migración completa de datos consume recursos de lectura y escritura en ambas instancias.
Tamaño del tablespace: Las operaciones INSERT simultáneas durante la migración completa de datos causan fragmentación en las tablas de destino. Después de la migración, el tablespace de destino suele ser mayor que el de origen.
Precisión FLOAT y DOUBLE: DTS recupera los valores de las columnas FLOAT y DOUBLE mediante
ROUND(COLUMN,PRECISION). Si no se especifica ninguna precisión, DTS utiliza 38 dígitos para FLOAT y 308 dígitos para DOUBLE. Compruebe que estos valores predeterminados cumplen sus requisitos.Reanudación de tareas con errores: DTS reintenta las tareas de migración con errores durante un máximo de 7 días. Antes de cambiar las cargas de trabajo a la base de datos de destino, detenga o libere cualquier tarea con errores. Alternativamente, ejecute la sentencia
REVOKEpara revocar los permisos de escritura de las cuentas de DTS en la base de datos de destino. De lo contrario, una tarea con errores reanudada podría sobrescribir datos en la base de datos de destino.Fallos de DDL en el destino: Si las sentencias DDL fallan en la base de datos de destino, la tarea de DTS continúa ejecutándose. Revise los registros de la tarea para ver las sentencias DDL fallidas. Para obtener más información, consulte Ver registros de tareas.
Column name case sensitivity: Los nombres de columna de MySQL no distinguen entre mayúsculas y minúsculas. Si la base de datos de origen tiene columnas cuyos nombres difieren solo en el uso de mayúsculas, el resultado de la migración podría no coincidir con lo esperado.
Verificación posterior a la migración: Una vez completada la migración, ejecute
analyze table <table_name>para comprobar que los datos se escribieron en la tabla de destino. En algunos escenarios de conmutación por error de alta disponibilidad (HA), los datos podrían escribirse solo en la memoria de la instancia de origen, lo que provocaría pérdida de datos.
Lista de verificación previa a la migración
Antes de iniciar la tarea de migración, verifique los siguientes elementos. Omitir cualquiera de ellos puede provocar que la tarea falle o que los datos sean inconsistentes.
|
# |
Elemento |
Cómo verificar |
|
1 |
Se creó la instancia de destino de RDS for MySQL y tiene suficiente espacio de almacenamiento |
Compruebe el estado de la instancia y el almacenamiento en la consola de RDS |
|
2 |
Las cuentas de base de datos tienen los permisos necesarios |
Ejecute |
|
3 |
La instancia de origen tiene suficiente ancho de banda de salida |
Compruebe el uso de ancho de banda en la consola de monitoreo |
|
4 |
Las tablas que se van a migrar tienen restricciones PRIMARY KEY o UNIQUE |
Ejecute |
|
5 |
El registro binario está habilitado (solo migración incremental) |
Ejecute |
|
6 |
|
Ejecute |
|
7 |
|
Ejecute |
|
8 |
El período de retención del registro binario cumple los requisitos (solo migración incremental) |
Compruebe la configuración del grupo de parámetros de RDS |
|
9 |
No hay operaciones DDL planificadas durante la migración de esquemas o completa de datos |
Coordínese con su equipo |
|
10 |
La migración está programada fuera de las horas pico |
Revise los patrones de tráfico de la aplicación |
Crear una tarea de migración
Paso 1: Ir a la página Data Migration Tasks
Inicie sesión en la consola de Data Management (DMS).
En la barra de navegación superior, haga clic en DTS.
En el panel de navegación izquierdo, elija DTS (DTS) > Data Migration.
Alternativamente, vaya directamente a la página Data Migration Tasks de la nueva consola de DTS. El diseño de la consola y las operaciones disponibles pueden variar. Para obtener más información, consulte Modo simple y Personalizar el diseño y estilo de la consola de DMS.
Paso 2: Seleccionar la región
En la lista desplegable junto a Data Migration Tasks, seleccione la región donde reside la instancia de migración.
En la nueva consola de DTS, seleccione la región en la esquina superior izquierda.
Paso 3: Configurar las bases de datos de origen y destino
Haga clic en Create Task. En la página Create Task, configure las bases de datos de origen y destino.
Lea los límites mostrados en la parte superior de la página antes de continuar. Omitir este paso puede provocar que la tarea falle o resultar en inconsistencia de datos.
Base de datos de origen
|
Parámetro |
Descripción |
|
Select an existing DMS database instance (opcional) |
Seleccione una instancia existente para completar automáticamente los parámetros de conexión, o déjelo en blanco para configurar manualmente. |
|
Database Type |
Seleccione MariaDB. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
Seleccione la región donde reside la instancia de origen de ApsaraDB RDS for MariaDB TX. |
|
Replicate Data Across Alibaba Cloud Accounts |
Seleccione No para migración dentro de la misma cuenta. |
|
Instance ID |
Seleccione o introduzca el ID de la instancia de origen de ApsaraDB RDS for MariaDB TX. |
|
Database Account |
Introduzca la cuenta de base de datos para la instancia de origen. Consulte Permissions required for database accounts. |
|
Database Password |
Introduzca la contraseña de la cuenta de base de datos. |
|
Encryption |
Seleccione Non-encrypted para este ejemplo. |
Base de datos de destino
|
Parámetro |
Descripción |
|
Select an existing DMS database instance (opcional) |
Seleccione una instancia existente para completar automáticamente los parámetros de conexión, o déjelo en blanco para configurar manualmente. |
|
Database Type |
Seleccione MySQL. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
Seleccione la región donde reside la instancia de destino de ApsaraDB RDS for MySQL. |
|
Replicate Data Across Alibaba Cloud Accounts |
Seleccione No para migración dentro de la misma cuenta. |
|
RDS Instance ID |
Seleccione o introduzca el ID de la instancia de destino de ApsaraDB RDS for MySQL. |
|
Database Account |
Introduzca la cuenta de base de datos para la instancia de destino. Consulte Permissions required for database accounts. |
|
Database Password |
Introduzca la contraseña de la cuenta de base de datos. |
|
Encryption |
Seleccione Non-encrypted o SSL-encrypted. Si selecciona SSL-encrypted, habilite primero el cifrado SSL en la instancia de destino. Consulte Configurar la función de cifrado SSL. |
Paso 4: Probar la conectividad
Haga clic en Test Connectivity and Proceed.
DTS agrega automáticamente sus bloques CIDR de servidor a la lista blanca de direcciones IP de las instancias de base de datos de Alibaba Cloud, y a las reglas de security group de las instancias de Elastic Compute Service (ECS) que alojan bases de datos autogestionadas. Para bases de datos autogestionadas en varias instancias de ECS o bases de datos locales, agregue manualmente los bloques CIDR del servidor DTS. Consulte Agregar los bloques CIDR de los servidores DTS a la configuración de seguridad de bases de datos locales.
Agregar bloques CIDR públicos a listas blancas de direcciones IP o reglas de security group introduce riesgos de seguridad. Antes de usar DTS, tome medidas preventivas que incluyen: fortalecer las contraseñas de las cuentas, limitar los puertos expuestos, autenticar llamadas a API y auditar regularmente las listas blancas de IP y las reglas de security group. Siempre que sea posible, conéctese a DTS mediante Express Connect, VPN Gateway o Smart Access Gateway en lugar de acceso por red pública.
Paso 5: Configurar objetos de migración
Configure los tipos de migración y seleccione los objetos a migrar.
| Parámetro | Descripción |
|---|---|
| Migration Types |
Seleccione los tipos de migración según sus necesidades: - Solo migración completa: Seleccione Schema Migration y Full Data Migration. - Migración con continuidad del servicio: Seleccione Schema Migration, Full Data Migration y Incremental Data Migration. Si no selecciona Incremental Data Migration, no escriba en la base de datos de origen durante la migración. |
| Method to Migrate Triggers in Source Database | Seleccione el método de migración de triggers según sus requisitos. Este parámetro solo está disponible cuando se seleccionan tanto Schema Migration como Incremental Data Migration. Consulte Synchronize or migrate triggers from the source database. |
| Processing Mode of Conflicting Tables |
Precheck and Report Errors (predeterminado): DTS comprueba si existen tablas con nombres idénticos en ambas bases de datos. La tarea falla la verificación previa si existen duplicados. Utilice la función de asignación de nombres de objetos para resolver conflictos de nombres. Consulte Asignar nombres de objetos. Ignore Errors and Proceed: Omite la comprobación de nombres duplicados. Si las tablas de origen y destino comparten el mismo esquema, DTS omite los registros con claves primarias coincidentes. Si los esquemas difieren, solo se migran columnas específicas o la tarea falla. |
| Source Objects | Seleccione los objetos a migrar en la sección Source Objects y luego haga clic en el icono de flecha para agregarlos a Selected Objects. Puede seleccionar columnas, tablas o bases de datos. Al seleccionar tablas o columnas se excluyen vistas, triggers y procedimientos almacenados de la migración. |
| Selected Objects | Para cambiar el nombre de un solo objeto, haga clic derecho sobre él en Selected Objects. Consulte Asignar el nombre de un solo objeto. Para cambiar el nombre de varios objetos a la vez, haga clic en Batch Edit. Consulte Asignar varios nombres de objetos a la vez. Para filtrar datos con condiciones WHERE, haga clic derecho en un objeto y especifique las condiciones. Consulte Set filter conditions. Para especificar operaciones DML o DDL a migrar para un objeto, haga clic derecho en el objeto y seleccione las operaciones. |
Cambiar el nombre de un objeto con la función de asignación de nombres de objetos puede provocar que otros objetos dependientes fallen en la migración.
Paso 6: Configurar ajustes avanzados
Haga clic en Next: Advanced Settings.
|
Parámetro |
Descripción |
|
Select the dedicated cluster used to schedule the task |
De forma predeterminada, DTS utiliza el clúster compartido. Para usar un clúster dedicado, adquiera y especifique uno. Consulte ¿Qué es un clúster dedicado de DTS?. |
|
Set Alerts |
No: Sin alertas. Yes: Se envían alertas cuando la tarea falla o la latencia de migración supera el umbral. Especifique el umbral de alerta y los contactos. Consulte Configurar monitoreo y alertas. |
|
Retry Time for Failed Connections |
La ventana de reintento para fallos de conexión. Valores válidos: 10–1,440 minutos. Predeterminado: 720 minutos. Establezca un valor superior a 30 minutos. Si DTS se reconecta dentro de la ventana de reintento, la tarea se reanuda. De lo contrario, la tarea falla. Varias tareas que comparten la misma base de datos de origen o destino utilizan el tiempo de reintento configurado más recientemente. |
|
The wait time before a retry when other issues occur in the source and destination databases |
La ventana de reintento para problemas distintos a la conexión, como operaciones DML o DDL fallidas. Valores válidos: 1–1,440 minutos. Predeterminado: 10 minutos. Establezca un valor superior a 10 minutos. Este valor debe ser menor que el valor de Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Limita las QPS hacia la base de datos de origen, las RPS de la migración completa de datos y la velocidad de migración (MB/s) para reducir la carga en el destino. Se muestra solo cuando se selecciona Full Data Migration. |
|
Enable Throttling for Incremental Data Migration |
Limita las RPS y la velocidad de migración (MB/s) para la migración incremental. Se muestra solo cuando se selecciona Incremental Data Migration. |
|
Environment Tag |
Una etiqueta opcional para identificar la instancia de DTS. |
|
Configure ETL |
Yes: Abre un editor de código para introducir sentencias de procesamiento de datos. Consulte Configurar ETL en una tarea de migración o sincronización de datos y ¿Qué es ETL?. No: Omite la configuración de ETL. |
Paso 7: Ejecutar la verificación previa
Haga clic en Next: Save Task Settings and Precheck.
Para previsualizar los parámetros de API para esta configuración de tarea, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters.
DTS ejecuta una verificación previa antes de que pueda iniciarse la tarea de migración. Si hay elementos fallidos:
Haga clic en View Details junto al elemento fallido, solucione el problema basándose en el mensaje de error y luego haga clic en Precheck Again.
Para elementos de alerta: si el elemento puede ignorarse, haga clic en Confirm Alert Details > Ignore > OK, y luego haga clic en Precheck Again. Ignorar alertas puede causar inconsistencia en los datos.
Paso 8: Adquirir una instancia de migración
Espere hasta que la tasa de éxito de la verificación previa alcance el 100%, y luego haga clic en Next: Purchase Instance.
En la página Purchase Instance, configure lo siguiente:
| Sección | Parámetro | Descripción |
|---|---|---|
| New Instance Class | Resource Group | El resource group para la instancia de migración. Predeterminado: default resource group. Consulte ¿Qué es Resource Management? |
| Instance Class | Seleccione la clase de instancia según la velocidad de migración requerida. Consulte Especificaciones de instancias de migración de datos. |
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms seleccionando la casilla de verificación, y luego haga clic en Buy and Start.
La tarea de migración se inicia y aparece en la lista de tareas. Monitoree el progreso de la tarea desde la lista de tareas.
Pasos siguientes
Una vez completada la tarea de migración, verifique que los datos se escribieron correctamente ejecutando analyze table <table_name> en la instancia de destino. Luego podrá cambiar sus cargas de trabajo a la instancia de destino de ApsaraDB RDS for MySQL.