AnalyticDB for MySQL admite análisis multidimensionales con latencia de milisegundos. Con Data Transmission Service (DTS), puede sincronizar datos de RDS MySQL o RDS MySQL Serverless hacia AnalyticDB for MySQL. Esto le permite construir rápidamente sistemas de BI empresarial, consultas interactivas y reportes en tiempo real.
o RDS MySQL Serverless
Requisitos previos
Todas las tablas que se van a sincronizar en la instancia de origen RDS MySQL deben tener una clave primaria.
Se creó un clúster de destino de AnalyticDB for MySQL. Para obtener más información, consulte Create a cluster.
Compruebe que el clúster de destino de AnalyticDB for MySQL tenga suficiente espacio de almacenamiento.
Limitaciones
Durante la inicialización completa de datos, DTS consume recursos de lectura y escritura de las bases de datos de origen y destino, lo que puede aumentar la carga de la base de datos. Cuando las bases de datos tienen bajo rendimiento, especificaciones reducidas o cargas de trabajo pesadas (por ejemplo, una gran cantidad de sentencias SQL lentas, tablas sin claves primarias o bloqueos mutuos en la base de datos de destino), la presión sobre la base de datos puede incrementarse aún más y los servicios pueden dejar de estar disponibles. Por lo tanto, debe evaluar el rendimiento de las bases de datos de origen y destino antes de iniciar la sincronización de datos. Se recomienda ejecutar la sincronización durante las horas de menor actividad (por ejemplo, cuando la carga de CPU de ambas bases de datos sea inferior al 30 %).
-
No utilice herramientas como gh-ost o pt-online-schema-change para ejecutar operaciones DDL en línea sobre los objetos que se van a sincronizar en la base de datos de origen durante la sincronización de datos. De lo contrario, la tarea de sincronización presentará errores.
Debido a una limitación de uso de AnalyticDB for MySQL, si el uso de disco de cualquier nodo del clúster supera el 80 %, el clúster se bloquea. Antes de comenzar, calcule el espacio de almacenamiento necesario para los objetos que se van a sincronizar y compruebe que el clúster de destino tenga capacidad suficiente.
Los índices de prefijo no se pueden sincronizar. Si la base de datos de origen contiene índices de prefijo, la sincronización de datos podría presentar errores.
Si el clúster de destino de AnalyticDB for MySQL 3.0 está creando una copia de seguridad mientras se ejecuta la tarea de DTS, la tarea presentará errores.
Facturación
|
Tipo de sincronización |
Precio |
|
Sincronización de esquemas y sincronización completa de datos |
Sin costo. |
|
Sincronización incremental de datos |
Con costo. Para obtener más información, consulte Billing overview. |
Operaciones SQL compatibles
Operaciones DDL: CREATE TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, ADD COLUMN, DROP COLUMN y MODIFY COLUMN
Operaciones DML: INSERT, UPDATE y DELETE
Si cambia el tipo de dato de un campo en la tabla de origen durante la sincronización de datos, la tarea de sincronización reportará un error y se interrumpirá. Puede corregir el problema manualmente si sigue las instrucciones al final de este tema. Para obtener más información, consulte Fix synchronization failures caused by field type changes.
Si cambia el tipo de dato de un campo en la tabla de origen durante la sincronización de datos, la tarea de sincronización reportará un error y se interrumpirá. Puede corregir el problema manualmente si sigue las instrucciones al final de este tema. Para obtener más información, consulte Fix synchronization failures caused by field type changes.
Permisos obligatorios de la cuenta de base de datos
|
Base de datos |
Permisos obligatorios |
|
RDS MySQL |
Los permisos REPLICATION CLIENT, REPLICATION SLAVE y SHOW VIEW, además del permiso SELECT sobre todos los objetos que se van a sincronizar. |
|
AnalyticDB for MySQL |
Los permisos READ y WRITE. |
Correspondencias de tipos de datos
Los tipos de datos de MySQL y de AnalyticDB for MySQL no tienen una correspondencia uno a uno. Durante la inicialización del esquema, DTS asigna los tipos de datos según sus definiciones. Para obtener más información, consulte Schema initialization: Data type mappings.
Procedimiento
-
Adquiera una tarea de sincronización de datos. Para obtener más información, consulte Purchase a DTS instance.
NotaCuando adquiera la tarea, establezca la instancia de origen en MySQL, la instancia de destino en AnalyticDB MySQL y la topología de sincronización en One-way Synchronization.
Inicie sesión en la consola de Data Transmission Service.
En el panel de navegación izquierdo, haga clic en Data Synchronization.
-
En la parte superior de la página Data Synchronization, seleccione la región de la instancia de sincronización de datos.
Busque la instancia de sincronización de datos adquirida y haga clic en Configure Synchronization Channel.
-
Configure las instancias de origen y destino para el canal de sincronización.
Sección
Parámetro
Descripción
N/D
Synchronization Task Name
DTS genera automáticamente un nombre de tarea. Se recomienda especificar un nombre descriptivo para identificarla fácilmente. El nombre no tiene que ser único.
Información de la instancia de origen
Instance Type
Seleccione RDS Instance.
Instance Region
La región de la instancia de origen que seleccionó cuando adquirió la instancia de sincronización de datos. Este parámetro no se puede modificar.
Instance ID
Seleccione el ID de la instancia de RDS de origen.
Database Account
Introduzca la cuenta de la base de datos de la instancia de RDS de origen. Para obtener más información sobre los permisos obligatorios, consulte Required database account permissions.
NotaSi el tipo de base de datos de la instancia de RDS de origen es MySQL 5.5 o MySQL 5.6, no es necesario configurar Database Account ni Database Password.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Connection Method
Seleccione Non-encrypted o SSL-encrypted según sus necesidades. Si selecciona SSL-encrypted, debe habilitar previamente el cifrado SSL para la instancia de RDS. Para obtener más información, consulte Use a cloud certificate to enable SSL encryption.
ImportanteActualmente, Encryption solo se puede configurar en las regiones de China continental y China (Hong Kong).
Información de la instancia de destino
Instance Type
Fijo como ADS. Este parámetro no se puede modificar.
Instance Region
La región de la instancia de destino que seleccionó cuando adquirió la instancia de sincronización de datos. Este parámetro no se puede modificar.
Version
Seleccione 3.0.
Database
Seleccione el ID del clúster de destino de AnalyticDB for MySQL.
Database Account
Introduzca la cuenta de la base de datos del clúster de destino de AnalyticDB for MySQL. Para obtener más información sobre los permisos obligatorios, consulte Required database account permissions.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
-
En la esquina inferior derecha de la página, haga clic en Set Whitelist and Next.
Si la base de datos de origen o de destino es una instancia de base de datos de Alibaba Cloud, como una instancia de ApsaraDB RDS for MySQL o de ApsaraDB for MongoDB, DTS agrega automáticamente los bloques CIDR de los servidores de DTS a la lista blanca de direcciones IP de la instancia. Si la base de datos de origen o de destino es una base de datos autogestionada alojada en una instancia de Elastic Compute Service (ECS), DTS agrega automáticamente los bloques CIDR de los servidores de DTS a las reglas del security group de la instancia de ECS, por lo que debe comprobar que la instancia de ECS pueda acceder a la base de datos. Si la base de datos autogestionada está alojada en varias instancias de ECS, debe agregar manualmente los bloques CIDR de los servidores de DTS a las reglas del security group de cada instancia de ECS. Si la base de datos de origen o de destino es una base de datos autogestionada desplegada en un centro de datos o proporcionada por un proveedor de servicios en la nube externo, debe agregar manualmente los bloques CIDR de los servidores de DTS a la lista blanca de direcciones IP de la base de datos para permitir que DTS acceda a ella. Para obtener más información, consulte Whitelist DTS server IP addresses.
AvisoAgregar los bloques CIDR de direcciones IP públicas de los servidores de DTS, ya sea de forma automática o manual, puede implicar riesgos de seguridad. Al usar este producto, usted reconoce y acepta estos riesgos potenciales. Debe implementar protecciones básicas de seguridad, entre las que se incluyen, sin limitarse a ellas, reforzar la seguridad de las contraseñas, restringir los puertos abiertos para los bloques CIDR, usar autenticación para la comunicación interna de API y revisar periódicamente los bloques CIDR innecesarios para restringirlos. Como alternativa, puede conectarse a la base de datos a través de una red interna, como una línea dedicada, VPN Gateway o Smart Access Gateway.
-
Configure la política y los objetos de sincronización.
Parámetro
Descripción
Initial Synchronization
De forma predeterminada, debe seleccionar tanto Initial Schema Synchronization como Initial Full Data Synchronization. Una vez completada la comprobación previa, DTS inicializa el esquema y los datos de los objetos que se van a sincronizar desde la instancia de origen hacia el clúster de destino, lo cual sirve como línea base para la sincronización incremental posterior.
Processing Mode for Existing Target Tables
-
Precheck and Report Errors: comprueba si la base de datos de destino contiene tablas con los mismos nombres. Si no existen tablas con nombres iguales, la comprobación se aprueba. Si existen tablas con los mismos nombres, se reporta un error durante la comprobación previa y la tarea de sincronización no se inicia.
NotaSi resulta inconveniente eliminar o cambiar el nombre de las tablas con nombres duplicados en la base de datos de destino, puede modificar los nombres de dichas tablas en la base de datos de destino. Para obtener más información, consulte Rename synchronized objects in the destination instance.
-
Ignore Errors and Proceed: omite la comprobación de tablas con los mismos nombres en la base de datos de destino.
AvisoSi selecciona Ignore Errors and Proceed, puede producirse una inconsistencia de datos que represente riesgos para su negocio. Por ejemplo:
-
Si los esquemas de las tablas son iguales y un registro de la base de datos de destino tiene el mismo valor de clave primaria que un registro de la base de datos de origen, se conserva el registro de la base de datos de destino. Es decir, el registro de la base de datos de origen no se sincroniza con la base de datos de destino.
-
Si los esquemas de las tablas son diferentes, la inicialización de datos podría fallar, podrían sincronizarse únicamente los datos de algunas columnas o la sincronización podría presentar errores.
-
Merge Multi Tables
-
Si selecciona Yes: DTS agrega una columna
__dts_data_sourcea cada tabla para almacenar el origen de datos, y la sincronización DDL deja de ser compatible. -
Si selecciona No: opción predeterminada. La sincronización DDL es compatible.
NotaLa función de combinación de tablas opera a nivel de tarea y no a nivel de tabla. Si desea combinar solo algunas tablas, cree dos tareas de sincronización de datos independientes.
Synchronization Type
Seleccione los tipos de operación que se van a sincronizar según los requisitos de su negocio. Para obtener más información sobre las operaciones de sincronización compatibles, consulte Supported SQL operations. Todos los tipos de operación se seleccionan de forma predeterminada.
Objects to Synchronize
En el cuadro Source Objects, seleccione los objetos que se van a sincronizar y luego haga clic en el ícono
para moverlos al cuadro Selected Objects.Puede seleccionar bases de datos o tablas como objetos que se van a sincronizar.
Nota-
Si selecciona una base de datos completa como objeto de sincronización, todos los cambios de esquema de esa base de datos se sincronizan con la base de datos de destino.
-
Si selecciona una tabla como objeto de sincronización, solo las operaciones ADD COLUMN de dicha tabla se sincronizan con la base de datos de destino.
-
De forma predeterminada, los nombres de los objetos sincronizados permanecen sin cambios. Si desea que los objetos sincronizados tengan nombres distintos en el clúster de destino, utilice la función de asignación de nombres de objetos. Para obtener más información, consulte Rename synchronized objects in the destination instance.
Asignación de bibliotecas, tablas y columnas
Modifique los nombres de los objetos sincronizados en la instancia de destino. Para obtener más información, consulte Map databases, tables, and columns.
Replicar tablas temporales durante DDL en línea de DMS
Si utiliza Data Management (DMS) para aplicar cambios DDL en línea en la base de datos de origen, puede elegir si desea sincronizar las tablas temporales generadas por dichos cambios.
-
Yes: sincroniza las tablas temporales generadas por los cambios DDL en línea.
NotaSi los cambios DDL en línea generan una gran cantidad de datos de tablas temporales, la tarea de sincronización de datos podría retrasarse.
-
No: no sincroniza las tablas temporales generadas por los cambios DDL en línea. Solo se sincronizan las operaciones DDL originales de la base de datos de origen.
NotaEsta opción provoca que las tablas de la base de datos de destino se bloqueen.
Duración de reintento de conexión
Si DTS no logra conectarse a la instancia de origen o de destino, reintenta la conexión durante 720 minutos (12 horas) de forma predeterminada. También puede especificar una duración de reintento personalizada. Si DTS se vuelve a conectar a la instancia de origen o de destino dentro del plazo indicado, la tarea de sincronización se reanuda automáticamente. De lo contrario, la tarea presentará errores.
NotaSe le cobra por el tiempo de ejecución de la tarea durante los reintentos de conexión. Personalice la duración de reintento según las necesidades de su negocio o libere la instancia de DTS tan pronto como se liberen las instancias de origen y destino.
-
Después de completar las configuraciones anteriores, haga clic en Next en la esquina inferior derecha de la página.
-
Establezca los tipos de las tablas que se van a sincronizar en la base de datos de destino.
La tabla de configuración también incluye las columnas ADB Table Group, ADB Table Name, Number of Partitions y Definition Status. Cuando coloca el cursor sobre el nombre de una base de datos o de una tabla, DTS muestra el nombre de la tabla de origen.
NotaSi selecciona Initial Schema Synchronization, debe definir las tablas que se van a sincronizar en AnalyticDB for MySQL, incluido el Type, la key column primaria y la partition column. Para obtener más información, consulte CREATE TABLE.
-
Después de completar las configuraciones anteriores, haga clic en Precheck and Start en la esquina inferior derecha de la página.
NotaAntes de que la tarea de sincronización se inicie formalmente, se ejecuta una comprobación previa. La tarea de sincronización solo puede iniciarse después de aprobar esta comprobación.
-
Si la comprobación previa presenta errores, haga clic en el ícono
junto a un elemento de comprobación específico para consultar los detalles del error.Siga las indicaciones para corregir el problema y vuelva a ejecutar la comprobación previa.
Si no necesita corregir los elementos de comprobación con advertencias, también puede seleccionar Ignore, Ignore Warning Items and Rerun Precheck para omitir dichos elementos y volver a ejecutar la comprobación previa.
Cuando aparezca Precheck Passed en el cuadro de diálogo Precheck, cierre el cuadro de diálogo Precheck. La tarea de sincronización se inicia.
-
Espere hasta que finalice la inicialización del enlace y la tarea pase al estado Synchronizing.
Puede ir a la página Data Synchronization para consultar el estado de la tarea de sincronización.
La lista de tareas de sincronización de esta página incluye las columnas Instance ID/Task Name, Status, Sync Overview (latencia y velocidad), Billing Method, Synchronization Topology y Actions. Desde la columna Actions, puede ejecutar operaciones como Pause Synchronization, Switch to Subscription y Upgrade. El encabezado de la página permite buscar por nombre de tarea, así como filtrar u ordenar por estado.
Corregir errores de sincronización causados por cambios en el tipo de campo
Si cambia el tipo de dato de un campo en la tabla de origen durante la sincronización de datos, la tarea de sincronización reportará un error y se interrumpirá. Puede corregir el problema manualmente si sigue estos pasos.
En la instancia de destino, cree una nueva tabla B (por ejemplo, customer_new) basada en la tabla A que presentó errores (por ejemplo, customer) y ajuste los tipos de campo de la tabla B a los tipos necesarios.
Ejecute la sentencia INSERT INTO SELECT para copiar los datos de la tabla A a la nueva tabla B. Compruebe que los datos de ambas tablas sean consistentes.
Cambie el nombre o elimine la tabla A que presentó errores y, a continuación, cambie el nombre de la tabla B a customer.
En la consola de DTS, reinicie la tarea de sincronización de datos.