DTS admite la sincronización de esquemas, así como la sincronización completa e incremental de datos desde una instancia de ApsaraDB RDS for MariaDB TX hacia una instancia de ApsaraDB RDS for MySQL.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia RDS MySQL de destino. Create an ApsaraDB RDS for MySQL instance
Espacio de almacenamiento suficiente en la instancia de destino para todos los datos de origen.
Facturación
|
Tipo de sincronización |
Costo |
|
Sincronización de esquemas y sincronización completa de datos |
Sin costo |
|
Sincronización incremental de datos |
Con costo. Billing overview. |
Permisos necesarios para las cuentas de base de datos
|
Base de datos |
Permiso obligatorio |
Referencias |
|
Instancia RDS MariaDB TX de origen |
Permisos de lectura y escritura sobre los objetos que se van a sincronizar |
|
|
Instancia RDS MySQL de destino |
Permisos de lectura y escritura sobre la base de datos de destino |
Operaciones SQL compatibles para la sincronización incremental
|
Tipo de operación |
Sentencia SQL |
|
DML |
INSERT, UPDATE y DELETE |
|
DDL |
ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE y TRUNCATE TABLE |
RENAME TABLE puede provocar inconsistencia en los datos. Si cambia el nombre de una tabla seleccionada como objeto de sincronización, sus datos dejarán de sincronizarse con el destino. Para evitarlo, seleccione la base de datos que contiene la tabla como objeto de sincronización. Asegúrese de incluir tanto la base de datos anterior al cambio de nombre como la posterior en los objetos de sincronización.
Limitaciones
Requisitos de la base de datos de origen
Las tablas que se van a sincronizar deben tener restricciones PRIMARY KEY o UNIQUE con todos los campos únicos. De lo contrario, el destino podría contener registros duplicados.
Si selecciona tablas como objetos de sincronización y necesita cambiarles el nombre en el destino, una sola tarea admite hasta 1,000 tablas. Para más de 1,000 tablas, utilice varias tareas o sincronice toda la base de datos.
El registro binario está habilitado de forma predeterminada en las instancias RDS MariaDB. Asegúrese de que el parámetro
binlog_row_imageesté establecido enfull. De lo contrario, la comprobación previa fallará y la tarea de sincronización no podrá iniciarse.-
Retención de registros binarios: Si DTS no puede obtener los registros binarios, la tarea podría fallar o podrían producirse inconsistencias y pérdida de datos. El SLA de DTS no cubre problemas causados por una retención insuficiente de registros.
Sincronización solo incremental: como mínimo 24 horas.
Sincronización completa e incremental: como mínimo 7 días. Una vez completada la sincronización completa de datos, establezca el periodo de retención en más de 24 horas.
Comportamiento de claves foráneas
Durante la sincronización de esquemas, DTS sincroniza las claves foráneas con el destino.
Durante la sincronización completa e incremental, DTS deshabilita temporalmente las comprobaciones de restricciones de claves foráneas y las operaciones en cascada a nivel de sesión.
Las operaciones de actualización y eliminación en cascada en la base de datos de origen durante la sincronización pueden causar inconsistencia en los datos.
Restricciones de ejecución
Impacto en el rendimiento: La sincronización completa de datos consume recursos tanto en la base de datos de origen como en la de destino. Programe la sincronización fuera del horario pico.
Fragmentación de tablas: Las operaciones INSERT simultáneas durante la sincronización completa provocan fragmentación en las tablas de destino, lo que hace que el espacio de tablas de destino sea mayor que el de origen.
Operaciones DDL en tablas seleccionadas: Si selecciona tablas específicas (no una base de datos completa) como objetos de sincronización, no utilice pt-online-schema-change ni herramientas similares durante la sincronización. Utilice DMS lock-free DDL operations en su lugar.
Escrituras en la base de datos de destino: Utilice únicamente DTS para escribir en el destino durante la sincronización. Si otras herramientas escriben en el destino, no utilice DMS para operaciones DDL en línea porque podría producirse pérdida de datos.
DDL con errores en el destino: Si las sentencias DDL fallan en el destino, la tarea de DTS continúa ejecutándose. Consulte task logs para obtener más detalles.
Nombres de columnas sin distinción entre mayúsculas y minúsculas: Los nombres de columna de MySQL no distinguen entre mayúsculas y minúsculas. Si varias columnas de origen difieren solo en el uso de mayúsculas, sus datos se escriben en la misma columna de destino, lo que puede provocar resultados inesperados.
Verificación posterior a la sincronización: Después de que el Status de la tarea cambie a Completed, ejecute
analyze table <Table name>para verificar los datos en la tabla de destino. Si ocurre un failover de alta disponibilidad en la instancia MySQL de origen, es posible que los datos existan solo en memoria, lo que provoca pérdida de datos.
Procedimiento
Paso 1: Abrir la página de sincronización de datos
Acceda a la página Data Synchronization y seleccione la región de la instancia de sincronización de datos.
Consola de DTS
Inicie sesión en la DTS console.
En el panel de navegación izquierdo, haga clic en Data Synchronization.
En la esquina superior izquierda de la página, seleccione la región donde reside la instancia de sincronización de datos.
Consola de DMS
Las operaciones pueden variar según el modo y el diseño de la consola de DMS. Simple mode . Customize the layout and style of the DMS console .
Inicie sesión en la DMS console.
En la barra de navegación superior, pase el puntero sobre Data + AI y elija DTS (DTS) > Data Synchronization.
En la lista desplegable a la derecha de Data Synchronization Tasks, seleccione la región donde reside la instancia de sincronización de datos.
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.
Configuración de la tarea
|
Parámetro |
Descripción |
|
Task Name |
DTS genera automáticamente un nombre de tarea. Especifique un nombre descriptivo para identificar la tarea. El nombre no necesita ser único. |
Base de datos de origen
|
Parámetro |
Descripción |
|
Select Existing Connection |
Opcional. Al seleccionar una base de datos existente, se rellenan automáticamente los parámetros de conexión. Si no hay ninguna instancia de base de datos de DMS registrada, omita esta opción. |
|
Database Type |
Seleccione MariaDB. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
La región de la instancia RDS MariaDB TX de origen. |
|
Replicate Data Across Alibaba Cloud Accounts |
Indica si se debe sincronizar entre cuentas de Alibaba Cloud. En este ejemplo, seleccione No. |
|
Instance ID |
El ID de la instancia RDS MariaDB TX de origen. |
|
Database Account |
La cuenta de base de datos de la instancia de origen. Para consultar los permisos obligatorios, consulte Permissions required for database accounts. |
|
Database Password |
La contraseña de la cuenta de base de datos. |
|
Encryption |
Indica si se debe cifrar la conexión a la base de datos de origen. En este ejemplo, seleccione Non-encrypted. |
Base de datos de destino
|
Parámetro |
Descripción |
|
Select Existing Connection |
Opcional. Al seleccionar una base de datos existente, se rellenan automáticamente los parámetros de conexión. Si no hay ninguna instancia de base de datos de DMS registrada, omita esta opción. |
|
Database Type |
Seleccione MySQL. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
La región de la instancia RDS MySQL de destino. |
|
Replicate Data Across Alibaba Cloud Accounts |
Indica si se debe sincronizar entre cuentas de Alibaba Cloud. En este ejemplo, seleccione No. |
|
RDS Instance ID |
El ID de la instancia RDS MySQL de destino. |
|
Database Account |
La cuenta de base de datos de la instancia de destino. Para consultar los permisos obligatorios, consulte Permissions required for database accounts. |
|
Database Password |
La contraseña de la cuenta de base de datos. |
|
Encryption |
Indica si se debe cifrar la conexión. Seleccione Non-encrypted o SSL-encrypted según sus necesidades. Para usar SSL-encrypted, primero debe enable SSL encryption en la instancia RDS MySQL. |
Haga clic en Test Connectivity and Proceed.
DTS agrega automáticamente los bloques CIDR de los servidores de DTS a la lista de permitidos de las instancias de base de datos de Alibaba Cloud (como instancias de ApsaraDB RDS for MySQL o ApsaraDB for MongoDB). Para bases de datos autogestionadas alojadas en instancias de Elastic Compute Service (ECS), DTS agrega automáticamente los bloques CIDR a las reglas del security group de la instancia ECS. Asegúrese de que la instancia ECS pueda acceder a la base de datos. Si la base de datos está desplegada en varias instancias ECS, agregue manualmente los bloques CIDR de los servidores de DTS a las reglas del security group de cada instancia ECS. Para bases de datos autogestionadas en un centro de datos o de un proveedor de nube externo, agregue manualmente los bloques CIDR a la lista de permitidos de la base de datos. CIDR blocks of DTS servers. Agregar bloques CIDR de servidores de DTS a la lista de permitidos, a las reglas de seguridad de la instancia o a las reglas del security group de ECS introduce riesgos de seguridad. Antes de utilizar DTS, tome medidas preventivas que incluyen, entre otras: fortalecer la seguridad de nombres de usuario y contraseñas, limitar los puertos expuestos, autenticar las llamadas a la API, revisar periódicamente la lista de permitidos o las reglas del security group de ECS y eliminar los bloques CIDR no autorizados, o conectar la base de datos a DTS mediante Express Connect, VPN Gateway o Smart Access Gateway.
Paso 3: Seleccionar objetos y configurar los ajustes de sincronización
Configure los objetos de sincronización y la configuración avanzada.
|
Parámetro |
Descripción |
|
Synchronization Types |
De forma predeterminada, Incremental Data Synchronization está seleccionado. Seleccione también Schema Synchronization y Full Data Synchronization. Después de la comprobación previa, DTS sincroniza los datos históricos del origen al destino como base para la sincronización incremental. |
|
Method to Migrate Triggers in Source Database |
El método para sincronizar triggers. Omita esto si no hay triggers que necesiten sincronización. Synchronize or migrate triggers from the source database. Disponible solo cuando Schema Synchronization está seleccionado. |
|
Processing Mode of Conflicting Tables |
Cómo manejar tablas con nombres idénticos en el origen y el destino. Precheck and Report Errors: Reporta un error para nombres de tabla duplicados. Resuelva los conflictos utilizando object name mapping para cambiar el nombre de las tablas de destino. Ignore Errors and Proceed: Omite las comprobaciones de nombres duplicados. Durante la sincronización completa, se omiten los registros con claves primarias duplicadas. Durante la sincronización incremental, dichos registros sobrescriben los existentes. Las discrepancias de esquema pueden causar fallos en la inicialización o una sincronización parcial. |
|
Source Objects |
Seleccione objetos en la sección Source Objects y haga clic en el icono de flecha derecha para agregarlos a Selected Objects. Puede seleccionar bases de datos, tablas o columnas. |
|
Selected Objects |
Para cambiar el nombre de un objeto en la instancia de destino, haga clic derecho sobre él en la sección Selected Objects. Map the name of a single object. Para cambiar nombres en lote, haga clic en Batch Edit en la esquina superior derecha de la sección Selected Objects. Map multiple object names at a time. Para seleccionar operaciones SQL específicas para una base de datos o tabla, haga clic derecho sobre el objeto en la sección Selected Objects. Operaciones SQL compatibles para la sincronización incremental. Para filtrar datos con condiciones WHERE, haga clic derecho sobre una tabla en la sección Selected Objects. Specify filter conditions. Cambiar el nombre de objetos mediante asignación de nombres puede provocar que los objetos dependientes fallen en la sincronización. |
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 mejorar la estabilidad, adquiera un DTS dedicated cluster. |
|
Monitoring and Alerting |
Indica si se deben configurar alertas para la tarea. Si la tarea falla o la latencia de sincronización supera el umbral, los contactos de alerta reciben notificaciones. Seleccione No para deshabilitar las alertas, o Yes para configurar umbrales y notificaciones. Configure monitoring and alerting when you create a DTS task. |
|
Retry Time for Failed Connections |
La duración de reintento cuando falla la conexión a la base de datos de origen o de destino. Valores válidos: de 10 a 1440 minutos. Valor predeterminado: 720 (debe ser mayor que 30). Si DTS se reconecta dentro de la duración especificada, la tarea se reanuda; de lo contrario, la tarea falla. Cuando varias tareas comparten el mismo origen o destino, prevalece la duración de reintento más corta. DTS genera cargos durante el reintento. Libere la instancia inmediatamente después de que se liberen el origen y el destino. |
|
Retry Time for Other Issues |
La duración de reintento cuando fallan las operaciones DDL o DML. Valores válidos: de 1 a 1440 minutos. Valor predeterminado: 10 (debe ser mayor que 10). Si las operaciones tienen éxito dentro de esta duración, la tarea se reanuda; de lo contrario, la tarea falla. Debe ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Synchronization |
Limite la velocidad de la sincronización completa de datos para reducir la carga en los servidores de base de datos. Configure los parámetros Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Este parámetro está disponible solo cuando Full Data Synchronization está seleccionado. |
|
Enable Throttling for Incremental Data Synchronization |
Indica si se debe limitar la velocidad de la sincronización incremental de datos. Configure los parámetros RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s) para reducir la carga en el servidor de base de datos de destino. |
|
Environment Tag |
La etiqueta de entorno para identificar la instancia de DTS. Seleccione una etiqueta según sus necesidades. |
|
Configure ETL |
Indica si se debe habilitar ETL para el procesamiento de datos. Seleccione Yes para introducir sentencias de procesamiento de datos. Configure ETL in a data migration or data synchronization task. Seleccione No para omitir ETL. What is ETL? |
Paso 5: Ejecutar la comprobación previa y adquirir la instancia
-
Haga clic en Next: Save Task Settings and Precheck.
Para ver los parámetros de la operación de API correspondiente, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters .
-
Espere a que finalice la comprobación previa. DTS realiza una comprobación previa antes de que pueda comenzar la tarea de sincronización.
Si la comprobación previa falla, haga clic en View Details junto a cada elemento fallido. Analice las causas según los resultados de la comprobación y corrija los problemas. Luego, ejecute la comprobación previa nuevamente.
-
Si se activa una alerta para un elemento:
Si la alerta no se puede ignorar, haga clic en View Details y solucione el problema. Luego, ejecute la comprobación previa nuevamente.
Si la alerta se puede ignorar, haga clic en Confirm Alert Details. En el cuadro de diálogo View Details, haga clic en Ignore y luego en OK. Haga clic en Precheck Again para ejecutar la comprobación previa nuevamente. Ignorar alertas puede causar inconsistencia en los datos y riesgos potenciales.
Espere hasta que la Success Rate alcance el 100%. Luego haga clic en Next: Purchase Instance.
-
En la página de compra, configure los siguientes parámetros.
New Instance Class
Parámetro
Descripción
Billing Method
Subscription: Pago por adelantado. Más rentable para uso a largo plazo. Pay-as-you-go: Facturación por hora. Adecuado para uso a corto plazo. Libere la instancia cuando ya no sea necesaria. Pay-as-you-go Serverless: Facturación basada en el uso real con escalado automático.
Resource Group Settings
El resource group para la instancia de sincronización de datos. Valor predeterminado: default resource group. What is Resource Management?
Instance Class
DTS ofrece clases de instancia con diferentes velocidades de sincronización. Seleccione una clase según sus necesidades. Instance classes of data synchronization instances.
Subscription Duration
Si selecciona el método de facturación Subscription, especifique la duración de la suscripción: de 1 a 9 meses, o 1, 2, 3 o 5 años.
DTS Insight
Parámetro
Descripción
DTS Insight
Indica si se debe habilitar DTS Insight para diagnósticos inteligentes. Seleccione una opción según sus necesidades.
Lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.
Haga clic en Buy and Start para guardar la tarea e iniciarla inmediatamente, o haga clic en Buy and Save para guardar la tarea sin iniciarla. En el cuadro de diálogo que aparece, haga clic en OK.
La tarea aparece en la lista de tareas, donde puede monitorear su progreso.