Utilice Data Transmission Service (DTS) para sincronizar datos de un clúster de PolarDB for MySQL al motor de tablas anchas de una instancia de Lindorm. DTS ejecuta una carga inicial completa de los datos y aplica de forma continua los cambios incrementales para mantener el destino sincronizado.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de Lindorm que use el motor LindormTable, cuyo espacio de almacenamiento disponible supere el espacio utilizado por el clúster de PolarDB for MySQL de origen. Consulte Create an instance.
La función de compatibilidad con MySQL habilitada en la instancia de Lindorm de destino. Consulte Enable the MySQL compatibility feature.
Una base de datos (namespace) y una tabla ancha preparticionada creadas en la instancia de Lindorm de destino para recibir los datos sincronizados. Consulte Use a MySQL client to connect to and use LindormTable, Use Lindorm-cli to connect to and use the wide table engine, Use Lindorm Shell to access LindormTable, CREATE TABLE y Data type mapping.
-
El registro binario habilitado en el clúster de PolarDB for MySQL de origen, con el parámetro
loose_polar_log_binestablecido enON. Consulte Enable binary logging y Modificar parámetros.Habilitar el registro binario en un clúster de PolarDB for MySQL genera cargos adicionales por el espacio de almacenamiento que ocupan los registros binarios.
La retención del registro binario configurada en como mínimo tres días en el clúster de origen (se recomiendan siete días). Consulte Modificar el periodo de retención. Una retención insuficiente puede provocar inconsistencia o pérdida de datos, además de afectar el acuerdo de nivel de servicio (SLA) de DTS.
Cuentas de base de datos con los permisos obligatorios. Consulte Permissions required for database accounts.
Los objetos creados en la instancia de Lindorm de destino deben cumplir los requisitos especificados en Cuotas y límites .
Facturación
|
Synchronization type |
Fee |
|
Sincronización completa de datos |
Sin costo |
|
Sincronización incremental de datos |
Con cargo. Consulte Billing overview. |
Operaciones SQL compatibles con la sincronización incremental
|
Operation type |
SQL statements |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE, DROP TABLE, ADD COLUMN |
Debido a las limitaciones del motor LindormTable, DTS elimina los atributos adicionales de las instrucciones ADD COLUMN. Por ejemplo, si el origen ejecutaALTER TABLE test ADD COLUMN col INT DEFAULT 0;, DTS ejecutaALTER TABLE test ADD COLUMN col INT;en el destino.
Permisos obligatorios para las cuentas de base de datos
|
Database |
Required permissions |
Reference |
|
Clúster de PolarDB for MySQL de origen |
Permisos de lectura y escritura |
|
|
Instancia de Lindorm de destino |
Permisos de lectura y escritura en el namespace de destino |
Límites
No se admite la sincronización de esquemas. Solo están disponibles la sincronización completa y la sincronización incremental de datos.
No es posible sincronizar datos del tipo BIT.
Los datos que se van a sincronizar deben contener como mínimo un campo que no sea clave primaria. No se admite la sincronización exclusiva de campos de clave primaria.
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.
Cuando se seleccionan tablas como objetos de sincronización y se cambian nombres de tablas o columnas en el destino, una sola tarea admite un máximo de 1,000 tablas. Si supera este límite, se produce un error de solicitud. En ese caso, configure varias tareas o sincronice toda la base de datos.
DTS no sincroniza los nodos de solo lectura del clúster de PolarDB for MySQL de origen.
DTS no sincroniza las tablas externas de Object Storage Service (OSS) del clúster de PolarDB for MySQL de origen.
DTS no admite el cambio entre nodo principal y secundario durante la sincronización completa de datos. Si ocurre un cambio, vuelva a configurar la tarea de sincronización.
Los datos solo se pueden escribir en el motor de tablas anchas de la instancia de Lindorm.
DTS y la instancia de Lindorm tratan las cadenas vacías del tipo VARBINARY como valores nulos.
Si la precisión del tipo DECIMAL difiere entre los campos de origen y de destino, la tarea termina con errores.
Los datos de la instancia de Lindorm deben cumplir los requisitos descritos en Límites en las solicitudes de datos. De lo contrario, la tarea termina con errores.
No ejecute operaciones DDL en la base de datos de origen durante la sincronización completa de datos, ya que esto provoca que la tarea termine con errores. DTS consulta el origen durante esta fase, lo cual genera bloqueos de metadatos que también pueden impedir las operaciones DDL en el origen.
No utilice herramientas como pt-online-schema-change para ejecutar operaciones DDL en línea sobre los objetos sincronizados durante la sincronización. Esto provoca que la tarea termine con errores.
Si se escriben datos ajenos a DTS en el destino durante la sincronización, puede producirse una inconsistencia de datos.
Durante la sincronización inicial completa de datos, las operaciones INSERT simultáneas fragmentan la tabla en el destino. Una vez finalizada esta fase, el espacio de almacenamiento de la tabla de destino será mayor que el de origen.
Durante la sincronización inicial completa de datos, DTS consume recursos de lectura y escritura de ambas bases de datos, lo que puede aumentar la carga del servidor. Programe la sincronización en horarios de menor actividad, por ejemplo, cuando la carga de CPU de ambas bases de datos esté por debajo del 30 %.
DTS ejecuta periódicamente
CREATE DATABASE IF NOT EXISTSen la base de datos de origen para avanzar la posición del archivo de registro binario.Si una instancia de DTS presenta errores, el equipo de DTS intentará recuperarla en un plazo de 8 horas. La recuperación puede implicar reiniciar la instancia o ajustar sus parámetros (no se modifican los parámetros de la base de datos). Entre los parámetros que se pueden ajustar se incluyen los descritos en Modificar parámetros de la instancia.
No se admite la sincronización de datos del tipo VECTOR.
Configurar una tarea de sincronización
Paso 1: Abrir la página Data Synchronization
Utilice uno de los siguientes métodos:
Consola de DTS
Inicie sesión en la consola de DTS
En el panel de navegación izquierdo, haga clic en Data Synchronization.
En la esquina superior izquierda, seleccione la región donde reside la tarea de sincronización.
Consola de DMS
Nota
Los pasos reales pueden variar según el modo y el diseño de la consola de DMS. Consulte Modo simple y Personalizar el diseño y el estilo de la consola de DMS.
Inicie sesión en la consola de DMS
En la barra de navegación superior, coloque el puntero sobre Data + AI y elija DTS (DTS) > Data Synchronization.
En la lista desplegable situada a la derecha de Data Synchronization Tasks, seleccione la región donde reside la instancia de sincronización.
Paso 2: Configurar las bases de datos de origen y de destino
Haga clic en Create Task.
-
Configure los parámetros de la tarea tal como se describe en la siguiente tabla.
Sección
Parámetro
Descripción
N/A
Task Name
Introduzca un nombre descriptivo para identificar la tarea. No es obligatorio que sea único; DTS genera automáticamente un nombre predeterminado.
Source Database
Select Existing Connection
Si la instancia de origen ya está registrada en DTS, selecciónela en la lista desplegable para que DTS complete los parámetros automáticamente. De lo contrario, configúrelos de forma manual. En la consola de DMS, selecciónela en la lista desplegable Select a DMS database instance.
Database Type
Seleccione PolarDB for MySQL.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región donde reside el clúster de PolarDB for MySQL de origen.
Replicate Data Across Alibaba Cloud Accounts
Seleccione No para sincronizar dentro de la misma cuenta de Alibaba Cloud.
PolarDB Cluster ID
Seleccione el identificador del clúster de PolarDB for MySQL de origen.
Database Account
Introduzca la cuenta de base de datos del clúster de origen. Consulte Permissions required for database accounts.
Database Password
Introduzca la contraseña de la cuenta de base de datos.
Encryption
Seleccione una opción de cifrado SSL según sus necesidades. Consulte Set SSL encryption.
Destination Database
Select Existing Connection
Si la instancia de destino ya está registrada en DTS, selecciónela en la lista desplegable. De lo contrario, configure los parámetros de forma manual. En la consola de DMS, selecciónela en la lista desplegable Select a DMS database instance.
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 identificador de la instancia de Lindorm de destino.
Database Account
Introduzca la cuenta de base de datos de la instancia de Lindorm de destino. Consulte Permissions required for database accounts.
Database Password
Introduzca la contraseña de la cuenta de base de datos.
-
Haga clic en Test Connectivity and Proceed.
Asegúrese de agregar los bloques CIDR de los servidores de DTS a la configuración de seguridad de ambas bases de datos para permitir el acceso. Consulte Agregar direcciones IP de los servidores de DTS a una lista de permitidos . Si el origen o el destino es una base de datos autogestionada cuyo Access Method es distinto de Alibaba Cloud Instance , haga clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers .
Paso 3: Seleccionar los objetos que se van a sincronizar
En el paso Configure Objects, configure los siguientes parámetros.
|
Parameter |
Description |
|
Synchronization Types |
Incremental Data Synchronization se selecciona de forma predeterminada. Opcionalmente, agregue Full Data Synchronization. La sincronización de esquemas no está disponible para este par de origen y destino. |
|
Processing Mode of Conflicting Tables |
Utilice 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. DTS default policy se selecciona de forma predeterminada. Consulte Especificar el uso de mayúsculas y minúsculas en los nombres de objeto de la instancia de destino. |
|
Source Objects |
Seleccione los objetos en Source Objects y haga clic en el icono |
|
Selected Objects |
Si los nombres de las bases de datos (namespaces), tablas o columnas del destino difieren de los del origen, utilice la función de asignación de nombres de objeto. Consulte Map object names. Para filtrar filas con condiciones WHERE, haga clic con el botón derecho en una tabla de Selected Objects y especifique las condiciones. Consulte Especificar condiciones de filtro. Para elegir operaciones SQL específicas en la sincronización incremental, haga clic con el botón derecho en un objeto de Selected Objects y seleccione las operaciones. |
Cambiar el nombre de los objetos mediante la función de asignación de nombres puede provocar que los objetos dependientes no se sincronicen correctamente.
Paso 4: Configurar los ajustes avanzados
Haga clic en Next: Advanced Settings y configure los siguientes parámetros.
|
Parameter |
Description |
|
Dedicated Cluster for Task Scheduling |
DTS utiliza el clúster compartido de forma predeterminada. Para obtener mayor estabilidad, adquiera un clúster dedicado. Consulte ¿Qué es un clúster dedicado de DTS?. |
|
Retry Time for Failed Connections |
Tiempo durante el cual DTS reintenta la conexión tras un error. Valores válidos: de 10 a 1,440 minutos. Valor predeterminado: 720 minutos. Establézcalo en más de 30 minutos. Si DTS restablece la conexión dentro de este periodo, la tarea se reanuda; de lo contrario, termina con errores. Cuando varias tareas comparten el mismo origen o destino, se aplica el tiempo de reintento más corto. Durante los reintentos, la instancia de DTS sigue generando cargos. |
|
Retry Time for Other Issues |
Tiempo durante el cual DTS reintenta tras errores de DDL o DML. Valores válidos: de 1 a 1,440 minutos. Valor predeterminado: 10 minutos. Establézcalo en más de 10 minutos. Debe ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Synchronization |
Limita la carga que DTS impone sobre el origen y el destino durante la sincronización completa de datos. Configure Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s) según sus necesidades. Disponible únicamente cuando se selecciona Full Data Synchronization. |
|
Enable Throttling for Incremental Data Synchronization |
Limita la carga durante la sincronización incremental de datos. Configure RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s) según sus necesidades. |
|
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks |
Controla si DTS escribe operaciones de la tabla de latidos en la base de datos de origen. Yesconfiguración de notificaciones de alerta: no escribe las operaciones de latido (la tarea podría mostrar un valor de latencia). No: escribe las operaciones de latido (puede afectar la copia de seguridad física y la clonación de la base de datos de origen). |
|
Environment Tag |
Opcionalmente, seleccione una etiqueta para identificar el entorno. |
|
Configure ETL |
Indica si se habilita la función de extracción, transformación y carga (ETL). Yes: introduzca las instrucciones de procesamiento de datos en el editor de código. Consulte Configurar ETL en una tarea de migración o sincronización de datos. No: omita la configuración de ETL. Consulte ¿Qué es ETL? |
|
Monitoring and Alerting |
Configura alertas cuando la tarea presenta errores o la latencia de sincronización supera un umbral. Yes: configure el umbral de alerta y los contactos de notificación. Consulte Configurar el monitoreo y las alertas al crear una tarea de DTS. No: no se generan alertas. |
Paso 5: Ejecutar una comprobación previa
Haga clic en Next: Save Task Settings and Precheck.
Para previsualizar los parámetros de la API correspondientes a esta configuración, coloque el puntero 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 tarea. Si la comprobación presenta errores:
Haga clic en View Details junto a cada elemento con errores, resuelva los problemas y haga clic en Precheck Again.
Si un elemento de advertencia se puede ignorar, haga clic en Confirm Alert Details, luego en Ignore y finalmente en Precheck Again. Ignorar advertencias puede provocar inconsistencia en los datos.
Paso 6: Adquirir una instancia
Espere hasta que Success Rate alcance 100% y haga clic en Next: Purchase Instance.
-
En la página buy, configure los parámetros de la instancia.
Sección
Parámetro
Descripción
New Instance Class
Billing Method
Subscription: pago anticipado por un periodo fijo. Resulta más rentable para uso a largo plazo. Pay-as-you-go: facturación por hora. Adecuado para uso a corto plazo; elimine la instancia cuando ya no la necesite para detener los cargos.
Resource Group Settings
El resource group de la instancia de sincronización. Valor predeterminado: default resource group. Consulte ¿Qué es Resource Management?
Instance Class
La velocidad de sincronización varía según la clase de instancia. Seleccione una clase de acuerdo con sus requisitos de throughput. Consulte Clases de instancia de las instancias de sincronización de datos.
Subscription Duration
Disponible únicamente para el método de facturación Subscription. Opciones: de 1 a 9 meses, o bien 1, 2, 3 o 5 años.
Lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.
Haga clic en Buy and Start y, a continuación, haga clic en OK en el cuadro de diálogo.
La tarea aparecerá en la lista de tareas. Supervise su avance desde ahí.