Data Transmission Service (DTS) migra datos desde una base de datos TiDB autogestionada hacia un clúster de AnalyticDB for MySQL V3.0. DTS admite la migración de esquemas, la migración completa de datos y la migración incremental de datos.
Funcionamiento de la migración
La migración se ejecuta en hasta tres fases secuenciales:
Migración de esquemas: DTS replica las definiciones de tablas al clúster de destino.
Migración completa de datos: DTS lee todos los datos existentes de TiDB y los carga en AnalyticDB for MySQL V3.0.
Migración incremental de datos (opcional): DTS lee los eventos de cambio desde un clúster de Kafka y los aplica al destino, lo que mantiene sincronizados el origen y el destino durante el traspaso.
Elija su ruta:
Solo migración completa (esquema + datos completos): Complete los Requisitos previos y luego vaya a Crear una tarea de migración.
Migración completa + incremental: Complete los Requisitos previos, luego Configure la recopilación de datos incrementales y finalmente Cree una tarea de migración.
Requisitos previos
Antes de empezar:
Cree un clúster de AnalyticDB for MySQL V3.0 con almacenamiento disponible superior al tamaño total de los datos en la base de datos TiDB de origen. Consulte Create a cluster.
Otorgue los permisos obligatorios de cuenta de base de datos que se enumeran en Permisos obligatorios.
(Solo para migración incremental) Configure un clúster de Kafka. Consulte Configurar la recopilación de datos incrementales.
Permisos obligatorios
|
Database |
Required permissions |
|
Base de datos TiDB |
SELECT en los objetos a migrar, SHOW VIEW |
|
Clúster de AnalyticDB for MySQL V3.0 |
Permisos de lectura y escritura en la base de datos de destino. Consulte Create a database account. |
Facturación
|
Migration type |
Instance configuration fee |
Internet traffic fee |
|
Migración de esquemas y migración completa de datos |
Gratis |
Se cobra solo cuando el Access Method del destino es Public IP Address. Consulte Descripción general de facturación. |
|
Migración incremental de datos |
De pago. Consulte Descripción general de facturación. |
Configurar la recopilación de datos incrementales
Omita esta sección si solo necesita la migración de esquemas y la migración completa de datos.
La migración incremental de datos requiere que TiDB transmita eventos de cambio a un clúster de Kafka. Elija uno de los siguientes métodos según su versión de TiDB.
Elegir un método
|
Method |
When to use |
|
TiDB Binlog |
Clústeres de TiDB que ya usan Pump y Drainer para la replicación de binlog |
|
TiCDC |
TiDB v4.0 y versiones posteriores; preferido para nuevos despliegues |
Configurar parámetros de Kafka
Antes de conectarse a DTS, aumente los siguientes parámetros de Kafka. Sin estos cambios, el clúster de Kafka podría rechazar cargas útiles grandes de registro binario provenientes de TiDB.
|
Component |
Parameter |
Action |
|
Broker de Kafka |
|
Auméntelo para alojar mensajes de registro binario de TiDB |
|
Broker de Kafka |
|
Auméntelo para igualar |
|
Consumidor de Kafka |
|
Auméntelo para igualar |
Preparar un clúster de Kafka
Utilice una de las siguientes opciones:
Clúster de Kafka autogestionado: Despliegue su propio clúster. Consulte el sitio web oficial de Apache Kafka.
Instancia de ApsaraMQ for Kafka: Cree una instancia gestionada. Consulte Descripción general de inicio rápido. Despliegue la instancia en la misma virtual private cloud (VPC) que el servidor de la base de datos TiDB.
Despliegue el servidor de la base de datos TiDB, Pump (si usa TiDB Binlog), Drainer y el clúster de Kafka en la misma red interna para minimizar la latencia de red.
Una vez que el clúster de Kafka esté listo, cree un tema con exactly one partition. DTS lee únicamente desde la partición con ID 0. Las particiones adicionales provocan pérdida de datos.
Usar TiDB Binlog
Despliegue Pump y Drainer en servidores dentro de la misma red interna que la base de datos TiDB. Consulte Despliegue de clúster de TiDB Binlog.
Edite el archivo de configuración de Drainer para apuntar al clúster de Kafka. Consulte Guía de usuario del cliente consumidor de binlog.
Compruebe que el servidor de TiDB pueda alcanzar el clúster de Kafka.
Agregue los bloques CIDR de los servidores DTS a la lista de permitidos de la base de datos TiDB. Consulte Agregar los bloques CIDR de los servidores DTS.
Usar TiCDC
Instale TiCDC mediante TiUP para agregar un nuevo nodo de TiCDC o escalar horizontalmente un nodo existente en el clúster de TiDB. Consulte Desplegar y mantener TiCDC.
Cree un changefeed para replicar datos incrementales a Kafka. Utilice
tiup cdc cli changefeed createcomo comando inicial. Consulte Replicar datos a Kafka.Compruebe que el servidor de TiDB pueda alcanzar el clúster de Kafka.
Límites
Revise estos límites antes de iniciar la tarea.
Base de datos de origen
El servidor de TiDB debe tener suficiente ancho de banda de salida. Un ancho de banda bajo reduce la velocidad de migración.
Las tablas a migrar deben tener restricciones PRIMARY KEY o UNIQUE con todos los campos únicos. Las tablas sin estas restricciones pueden generar registros duplicados en el destino.
Si cambia el nombre de tablas o columnas durante la migración, una sola tarea admite hasta 1,000 tablas. Para más de 1,000 tablas, divida la migración en varias tareas o migre toda la base de datos en una sola tarea.
Si desea migrar datos incrementales desde la base de datos TiDB de origen, debe desplegar un clúster de Kafka e instalar los componentes relacionados para que la base de datos TiDB recopile los datos incrementales.
Los índices de prefijo no se pueden migrar. Si la base de datos de origen contiene índices de prefijo, la tarea de migración puede fallar.
Migración incremental
DTS lee datos únicamente desde la partición con ID 0 del tema de Kafka. Configure el tema con exactamente una partición.
Después de crear una tarea de migración incremental, realice operaciones en la base de datos de origen o inserte datos de prueba rápidamente para actualizar la información de desplazamiento de la tarea. Retrasos prolongados antes del primer evento de datos pueden causar errores en la tarea.
Comportamiento del destino y de la tarea
Especifique una clave primaria personalizada en la base de datos de destino o configure Primary Key Column en el paso Configurations for Databases, Tables, and Columns. La falta de configuración de la clave primaria provoca errores en la migración de datos.
Si se realiza una copia de seguridad del clúster de AnalyticDB for MySQL V3.0 mientras se ejecuta la tarea de DTS, la tarea falla.
Si el uso de disco en los nodos de AnalyticDB for MySQL V3.0 supera el 80%, la tarea de migración se retrasa y se devuelven errores. Estime el espacio en disco necesario antes de comenzar.
La migración completa de datos aumenta la carga tanto en la base de datos de origen como en la de destino. Ejecute las migraciones fuera de horas pico, cuando la carga de CPU sea inferior al 30%.
La migración completa de datos utiliza operaciones INSERT simultáneas, lo que causa fragmentación en las tablas de destino. Una vez completada la migración completa, el tamaño del tablespace de destino será mayor que el del origen.
Si otros orígenes escriben en el destino durante la migración, puede producirse inconsistencia en los datos.
DTS utiliza la función
ROUND(COLUMN,PRECISION)para recuperar valores FLOAT y DOUBLE. La precisión predeterminada es de 38 dígitos para FLOAT y 308 dígitos para DOUBLE. Compruebe que estos valores predeterminados cumplan con sus requisitos antes de comenzar.Durante la migración de esquemas, DTS no admite la migración de vistas materializadas a la instancia de destino de AnalyticDB for MySQL. Para usar vistas materializadas, créelas manualmente en la instancia de destino una vez finalizada la migración.
DTS intenta reanudar automáticamente las tareas con errores durante un máximo de siete días. Antes de cambiar las cargas de trabajo al destino, detenga o libere cualquier tarea con errores, o ejecute la instrucción
REVOKEpara eliminar los permisos de escritura de las cuentas de DTS. De lo contrario, una tarea reanudada podría sobrescribir los datos de destino.Si las instrucciones DDL fallan en el destino, la tarea de DTS continúa ejecutándose. Consulte las instrucciones DDL con errores en los registros de la tarea. Véase Ver registros de tareas.
Si una tarea de DTS falla, el soporte técnico de DTS intenta restaurarla en un plazo de 8 horas. Durante la restauración, la tarea puede reiniciarse y modificarse sus parámetros (no los de la base de datos). Para obtener una lista de los parámetros que pueden cambiar, consulte Modificar parámetros de instancia.
Si el destino es un clúster de AnalyticDB for MySQL, DTS solo admite la escritura de tipos de datos compatibles de forma nativa con AnalyticDB for MySQL. Esto incluye tipos de datos básicos y tipos de datos complejos como ARRAY, MAP y JSON. No se admiten tipos de datos como MULTIVALUE.
Operaciones SQL compatibles para la migración incremental
|
Operation type |
Supported statements |
|
DML |
INSERT, UPDATE, DELETE. Las instrucciones UPDATE se convierten automáticamente a REPLACE INTO. Si UPDATE afecta a la clave primaria, se convierte en DELETE seguido de INSERT. |
|
DDL |
CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN |
Asignaciones de tipos de datos
Para consultar la asignación completa entre los tipos de datos de TiDB y AnalyticDB for MySQL V3.0, véase Asignaciones de tipos de datos entre bases de datos heterogéneas.
Crear una tarea de migración
Paso 1: Ir a la página Data Migration
Utilice la consola de DTS o la consola de DMS.
Consola de DTS
Inicie sesión en la 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 residirá la instancia de migración.
Consola de DMS
Los pasos pueden variar según el modo y el diseño de la consola de DMS. Consulte Modo simple y Personalizar el diseño y estilo de la consola de DMS .
Inicie sesión en la consola de DMS.
En la barra de navegación superior, pase el puntero sobre Data + AI > DTS (DTS) > Data Migration.
En la lista desplegable a la derecha de Data Migration Tasks, seleccione la región donde residirá la instancia de migración.
Paso 2: Configurar las bases de datos de origen y destino
Haga clic en Create Task.
Introduzca un Task Name. DTS genera un nombre automáticamente; especifique un nombre descriptivo para facilitar la identificación posterior de la tarea.
-
Configure la base de datos de origen:
Parameter
Description
Select Existing Connection
Seleccione una instancia de base de datos registrada para completar automáticamente los parámetros siguientes, o déjelo en blanco e introduzca los detalles de conexión manualmente.
Database Type
Seleccione TiDB.
Access Method
Seleccione el método de acceso según dónde esté desplegado TiDB. Este ejemplo utiliza Self-managed Database on ECS. Para otros métodos de acceso, prepare primero el entorno necesario. Consulte Preparation overview.
Instance Region
La región donde reside la base de datos TiDB.
ECS Instance ID
El ID de la instancia de ECS que aloja TiDB.
Port Number
El puerto del servicio TiDB. Valor predeterminado: 4000.
Database Account
La cuenta de la base de datos TiDB.
Database Password
La contraseña de la cuenta de la base de datos.
Migrate Incremental Data
Seleccione Yes si desea realizar una migración incremental de datos y luego introduzca los detalles del clúster de Kafka en la sección Kafka cluster configuration.
-
Configure la base de datos de destino:
Parameter
Description
Select Existing Connection
Seleccione una instancia registrada para completar automáticamente los parámetros siguientes, o déjelo en blanco e introduzca los detalles de conexión manualmente.
Database Type
Seleccione AnalyticDB for MySQL 3.0.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
La región donde reside el clúster de destino.
Instance ID
El ID del clúster de destino de AnalyticDB for MySQL V3.0.
Database Account
La cuenta de la base de datos para el clúster de destino. Consulte Permisos obligatorios.
Database Password
La contraseña de la cuenta de la base de datos.
-
Haga clic en Test Connectivity and Proceed. En el cuadro de diálogo CIDR Blocks of DTS Servers, haga clic en Test Connectivity.
Los bloques CIDR de DTS deben agregarse a la configuración de seguridad tanto de la base de datos de origen como de la de destino. Consulte Agregar los bloques CIDR de los servidores DTS .
Paso 3: Configurar los objetos a migrar
En la página Configure Objects, establezca los siguientes parámetros:
|
Parameter |
Description |
|
Migration Types |
Seleccione las fases de migración a ejecutar: Schema Migration, Full Data Migration y, opcionalmente, Incremental Data Migration. Si no selecciona Schema Migration, cree la base de datos y la tabla de destino antes de iniciar la tarea. Si no selecciona Incremental Data Migration, evite escribir en la base de datos de origen durante la migración para mantener la consistencia de los datos. |
|
Merge Tables |
Yes agrega una columna |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors: falla la comprobación previa si el origen y el destino tienen tablas con el mismo nombre. Utilice la asignación de nombres de objetos para cambiar el nombre de las tablas en conflicto antes de comenzar. Ignore Errors and Proceed: omite la comprobación previa. Durante la migración completa, DTS conserva los registros de destino existentes para claves primarias en conflicto. Durante la migración incremental, DTS los sobrescribe. Si los esquemas difieren entre el origen y el destino, solo se migran las columnas coincidentes o la tarea puede fallar. |
|
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 en el destino. Valor predeterminado: DTS default policy. Consulte Especificar el uso de mayúsculas en nombres de objetos en la instancia de destino. |
|
Source Objects |
Seleccione las tablas o bases de datos a migrar y luego haga clic en el icono de flecha para moverlas a Selected Objects. |
|
Selected Objects |
Haga clic derecho en un objeto para cambiarle el nombre o agregar condiciones de filtro WHERE. Haga clic en Batch Edit para cambiar el nombre de varios objetos a la vez. Cambiar el nombre de un objeto puede provocar que los objetos dependientes fallen en la migración. |
Haga clic en Next: Advanced Settings.
Paso 4: Configurar ajustes avanzados
|
Parameter |
Description |
|
Retry Time for Failed Connections |
Tiempo durante el cual DTS reintenta tras un fallo de conexión. Rango válido: 10–1,440 minutos. Valor predeterminado: 720 minutos. Establézcalo en 30 minutos como mínimo. Si varias tareas comparten la misma base de datos de origen o destino, se aplica el valor establecido más recientemente. DTS cobra por la instancia durante los periodos de reintento. |
|
Retry Time for Other Issues |
Tiempo durante el cual DTS reintenta tras fallos de DDL o DML. Rango válido: 1–1,440 minutos. Valor predeterminado: 10 minutos. Establézcalo en 10 minutos como mínimo. Debe ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Limita el uso de recursos de lectura/escritura durante la migración completa. Configure QPS (queries per second) 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 el uso de recursos durante 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 |
Una etiqueta opcional para identificar la instancia de DTS. |
|
Configure ETL |
Seleccione Yes para habilitar extracción, transformación y carga (ETL) e introducir instrucciones de procesamiento de datos. Consulte Configurar ETL en una tarea de migración o sincronización de datos. Seleccione No para omitirlo. |
|
Monitoring and Alerting |
Seleccione Yes para recibir notificaciones cuando la tarea falle o la latencia de migración supere un umbral. Configure umbrales de alerta y contactos. Consulte Configurar monitoreo y alertas. |
Paso 5: Configurar la verificación de datos (opcional)
Haga clic en Next Step: Data Verification para configurar una tarea de verificación de datos. Consulte Configurar una tarea de verificación de datos.
Paso 6: Configurar campos de bases de datos y tablas (opcional)
Haga clic en Next: Configure Database and Table Fields para establecer el Type, Primary Key Column, Distribution Key, Partition Key, Partitioning Rules y Partition Lifecycle para las tablas de destino.
Este paso está disponible solo si se selecciona Schema Migration . Establezca Definition Status en All para ver y editar todas las tablas. Para formar una clave primaria compuesta, especifique varias columnas en Primary Key Column y designe una o más como Distribution Key y Partition Key . Consulte CREATE TABLE .
Paso 7: Ejecutar la comprobación previa
Haga clic en Next: Save Task Settings and Precheck.
Para ver los parámetros de API de esta configuración de tarea, pase el cursor sobre el botón 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 previa falla:
Haga clic en View Details junto al elemento fallido, resuelva el problema y haga clic en Precheck Again.
Para elementos de alerta que puedan ignorarse de forma segura, haga clic en Confirm Alert Details > Ignore > OK y luego haga clic en Precheck Again. Ignorar alertas puede resultar en inconsistencia de datos.
Paso 8: Adquirir una instancia e iniciar la tarea
Espere hasta que Success Rate alcance el 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 para la instancia de migración. Valor predeterminado: default resource group. Consulte ¿Qué es Resource Management?.
Instance Class
La clase de instancia determina la velocidad de migración. Consulte Clases de instancias de migración de datos.
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms.
Haga clic en Buy and Start y luego haga clic en OK en el cuadro de diálogo de confirmación.
Monitoree el progreso de la tarea en la página Data Migration.
Las tareas sin migración incremental se detienen automáticamente al finalizar. El estado muestra Completed.
Las tareas con migración incremental se ejecutan continuamente. El estado muestra Running. Detenga la tarea manualmente después del traspaso.
Configuración del clúster de Kafka
Cuando Migrate Incremental Data está configurado en Yes, configure el clúster de Kafka con los siguientes parámetros:
|
Parameter |
Description |
|
Kafka Cluster Type |
La ubicación de despliegue del clúster de Kafka. Este ejemplo utiliza Self-managed Database on ECS. Si selecciona Express Connect, VPN Gateway, or Smart Access Gateway, seleccione también una VPC en Connected VPC y especifique Domain Name or IP. |
|
Kafka Data Source Component |
Seleccione Use the default binlog format of the TiDB database o Use the TiCDC Canal-JSON format según su configuración. |
|
ECS Instance ID |
El ID de la instancia de ECS que aloja el clúster de Kafka. |
|
Port Number |
El puerto del servicio Kafka. |
|
Kafka Cluster Account |
El nombre de usuario de Kafka. Déjelo en blanco si la autenticación está deshabilitada. |
|
Kafka Cluster Password |
La contraseña de Kafka. Déjela en blanco si la autenticación está deshabilitada. |
|
Kafka Version |
La versión del clúster de Kafka. Seleccione 1.0 si la versión es 1.0 o posterior. |
|
Encryption |
Seleccione Non-encrypted o SCRAM-SHA-256 según sus requisitos de seguridad. |
|
Topic |
El tema de Kafka que recibe los datos incrementales. |