Utilice Data Transmission Service (DTS) para migrar datos de una instancia de PolarDB-X 2.0 a una instancia de ApsaraDB for SelectDB.
Esta función se encuentra en fase de pruebas limitadas y solo está disponible para algunos usuarios.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia de PolarDB-X 2.0 (origen) con un ancho de banda de salida de al menos 100 Mbit/s
Una ApsaraDB for SelectDB instance (destino)
El parámetro
binlog_row_imageestablecido enfullen la instancia de origen (obligatorio para la migración incremental de datos). Para más detalles, consulte Parameter settingsCuentas de base de datos con los permisos necesarios en ambas instancias (consulte Permisos necesarios)
Bloques CIDR del servidor DTS agregados a la configuración de seguridad de ambas instancias. Para más detalles, consulte Add the CIDR blocks of DTS servers
Objetos no compatibles
Los siguientes tipos de objetos no se pueden migrar:
Tablas con letras mayúsculas en sus nombres
INDEX, PARTITION, VIEW, PROCEDURE, FUNCTION, TRIGGER y claves externas (FK)
Objetos TABLEGROUP
Bases de datos o tablas que contienen el atributo Locality
Instancias de solo lectura de la Enterprise Edition de PolarDB-X 2.0
Las tablas a migrar deben tener restricciones PRIMARY KEY o UNIQUE, y todos sus campos deben ser únicos. Sin estas restricciones, la base de datos de destino podría contener registros duplicados.
Si selecciona tablas como objetos de migración y necesita cambiarles el nombre a ellas o a sus columnas en el destino, una sola tarea admite hasta 1,000 tablas. Para más de 1,000 tablas, configure varias tareas o migre toda la base de datos a la vez.
Restricciones durante la migración
No realice las siguientes operaciones mientras se ejecuta la tarea de migración:
En la instancia de origen: No ejecute sentencias DDL que modifiquen esquemas de bases de datos o tablas durante la migración del esquema o la migración completa de datos. Esto provoca errores en la tarea.
-
En la instancia de destino:
No cree clústeres en la instancia de ApsaraDB for SelectDB. Si esto causa un error en la tarea, reinicie la instancia de migración para reanudarla.
No agregue nodos de backend a la base de datos de ApsaraDB for SelectDB. Si esto causa un error en la tarea, reinicie la instancia de migración para reanudarla.
No permita que otros orígenes de datos escriban en el destino mientras DTS está en ejecución. Esto puede causar inconsistencia en los datos o errores en la tarea.
Restricciones de DDL: No ejecute sentencias DDL que modifiquen varias columnas a la vez o que modifiquen la misma tabla de forma sucesiva.
Requisitos específicos de SelectDB
Nombres de bases de datos y tablas: Deben comenzar con una letra. Utilice la función de asignación de nombres de objetos para renombrar cualquier objeto que no cumpla este requisito.
Nombres con caracteres chinos: Los objetos con nombres en caracteres chinos deben renombrarse mediante la asignación de nombres de objetos (por ejemplo, de chino a inglés). De lo contrario, la tarea podría fallar.
Longitud VARCHAR: En PolarDB-X 2.0,
VARCHAR(M)especifica la longitud en caracteres. En SelectDB,VARCHAR(N)especifica la longitud en bytes. Si omite la migración del esquema, establezca las longitudes de los campos VARCHAR de SelectDB en cuatro veces la longitud de los campos correspondientes en PolarDB-X 2.0.Motor de la tabla de destino: Los datos solo se pueden migrar a tablas con motor Unique o tablas con motor Duplicate. Consulte Tablas con motor Unique y Tablas con motor Duplicate a continuación.
Tablas con motor Unique
Todas las claves únicas en la tabla de destino con motor Unique deben existir en la tabla de origen e incluirse en los objetos a migrar. De lo contrario, puede producirse inconsistencia en los datos.
Tablas con motor Duplicate
Cuando la tabla de destino es una tabla con motor Duplicate, DTS convierte las sentencias UPDATE y DELETE en sentencias INSERT. Pueden aparecer registros duplicados en los siguientes escenarios:
Se reintenta o reinicia la instancia de migración.
Los mismos datos se modifican mediante operaciones DML dos o más veces después de que se inicia la instancia de migración.
Para eliminar duplicados en los registros, utilice las columnas adicionales que DTS crea automáticamente: _is_deleted, _version y _record_id. Consulte Columnas adicionales.
Otras notas
Rendimiento de la migración completa de datos: La migración completa utiliza recursos de lectura y escritura en ambas instancias, lo que aumenta la carga de la base de datos. Ejecute la migración fuera de las horas pico, cuando la carga de CPU en ambas instancias sea inferior al 30%.
Fragmentación del almacenamiento: Dado que la migración completa de datos utiliza operaciones INSERT concurrentes, las tablas de destino se fragmentan. Después de la migración completa, las tablas de destino ocupan más espacio de almacenamiento que las tablas de origen.
Escrituras de latido: DTS ejecuta periódicamente
CREATE DATABASE IF NOT EXISTS \en la instancia de origen para escribir datos de latido y avanzar la posición del registro binario. Si establece Whether to delete SQL operations on heartbeat tables of forward and reverse tasks en Yes, o si la cuenta de origen carece de permisos para crear bases de datos, y no se realizan operaciones DML en el origen durante un período prolongado, la información de latencia podría ser inexacta. Para actualizar los datos de latencia, realice una operación DML en la instancia de origen.Recuperación de tareas: Si una tarea de DTS falla, el soporte de DTS intenta restaurarla dentro de las 8 horas siguientes. Durante la restauración, la tarea puede reiniciarse y ciertos parámetros de la tarea pueden ajustarse. Los parámetros de la base de datos no se modifican.
Facturación
|
Tipo de migración |
Tarifa de configuración de la tarea |
Tarifa de transferencia de datos |
|
Migración de esquema y migración completa de datos |
Gratis |
Gratis cuando Access Method es Alibaba Cloud Instance. Se aplican cargos cuando Access Method es Public IP Address. Consulte Billing overview. |
|
Migración incremental de datos |
Con cargo. Consulte Billing overview. |
— |
Operaciones SQL admitidas en la migración incremental
|
Tipo de operación |
Sentencias SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
ADD COLUMN; DROP COLUMN; DROP TABLE; TRUNCATE TABLE; RENAME TABLE |
Las operaciones RENAME TABLE pueden causar inconsistencia en los datos. Por ejemplo, si selecciona una tabla como objeto de migración y le cambia el nombre durante la migración, los datos de esa tabla no se migrarán. Para evitarlo, seleccione la base de datos que contiene la tabla como objeto de migración y asegúrese de que tanto el nombre anterior como el posterior al cambio estén incluidos en los objetos a migrar.
Permisos necesarios
| Base de datos | Migración de esquema | Migración completa | Migración incremental |
|---|---|---|---|
| PolarDB-X 2.0 de origen | SELECT | SELECT | REPLICATION SLAVE, REPLICATION CLIENT y SELECT sobre los objetos a migrar |
| ApsaraDB for SelectDB de destino | Usage_priv (acceso al clúster), Select_priv, Load_priv, Alter_priv, Create_priv, Drop_priv | ||
Para obtener instrucciones sobre cómo crear cuentas y otorgar permisos:
PolarDB-X 2.0: Manage database accounts y Account permissions during data synchronization
ApsaraDB for SelectDB: Cluster permission management y Basic permission management
Crear una tarea de migración
Paso 1: Ir a la página de migración de datos
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 Migration.
En la esquina superior izquierda, seleccione la región donde reside la instancia de migración.
Consola de DMS
Los pasos reales pueden variar según el modo y el diseño de la consola de DMS. Consulte Simple mode y Customize the layout and style of the DMS console .
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 reside la instancia de migración.
Paso 2: Configurar las bases de datos de origen y destino
Haga clic en Create Task.
-
Configure los parámetros descritos en la siguiente tabla.
Categoría Parámetro Descripción N/A Task Name Nombre para la tarea de DTS. DTS genera un nombre predeterminado. Especifique un nombre descriptivo que facilite la identificación de la tarea. El nombre no necesita ser único. Source Database Select Existing Connection Si la instancia de origen está registrada en DTS, selecciónela de la lista desplegable. DTS completará automáticamente los parámetros restantes. De lo contrario, configure los parámetros manualmente. En la consola de DMS, seleccione la instancia en Select a DMS database instance. Database Type Seleccione PolarDB-X 2.0. Access Method Seleccione Alibaba Cloud Instance. Instance Region Seleccione la región donde reside la instancia de PolarDB-X 2.0 de origen. Replicate Data Across Alibaba Cloud Accounts Seleccione No si las instancias de origen y destino pertenecen a la misma cuenta de Alibaba Cloud. Instance ID Seleccione el ID de la instancia de PolarDB-X 2.0 de origen. Database Account Introduzca la cuenta de la base de datos. Consulte Permisos necesarios para ver los permisos mínimos requeridos. Database Password Introduzca la contraseña de la cuenta de la base de datos. Destination Database Select Existing Connection Si la instancia de destino está registrada en DTS, selecciónela de la lista desplegable. DTS completará automáticamente los parámetros restantes. De lo contrario, configure los parámetros manualmente. En la consola de DMS, seleccione la instancia en Select a DMS database instance. Database Type Seleccione SelectDB. Access Method Seleccione Alibaba Cloud Instance. Instance Region Seleccione la región donde reside la instancia de SelectDB de destino. Replicate Data Across Alibaba Cloud Accounts Seleccione No si las instancias de origen y destino pertenecen a la misma cuenta de Alibaba Cloud. Instance ID Seleccione el ID de la instancia de SelectDB de destino. Database Account Introduzca la cuenta de la base de datos. Consulte Permisos necesarios para ver los permisos mínimos requeridos. Database Password Introduzca la contraseña de la cuenta de la base de datos. Haga clic en Test Connectivity and Proceed.
Paso 3: Configurar los objetos de migración
-
En la página Configure Objects, configure los siguientes parámetros.
Parámetro Descripción Migration Types Seleccione los tipos de migración según sus necesidades: <br>- Schema Migration + Full Data Migration: Migra únicamente los datos existentes. No escriba nuevos datos en el origen durante la migración. <br>- Schema Migration + Full Data Migration + Incremental Data Migration: Migra los datos existentes y mantiene el destino sincronizado con los cambios continuos. Utilice esta combinación para minimizar la interrupción del servicio. <br><br>Si omite Schema Migration, cree tablas con motor Unique o Duplicate con la estructura correcta en SelectDB antes de iniciar la tarea. Para más detalles, consulte Data type mapping, Columnas adicionales y Data model. Processing Mode of Conflicting Tables - Precheck and Report Errors: La comprobación previa falla si el destino contiene tablas con los mismos nombres que el origen. Para resolver conflictos, utilice la asignación de nombres de objetos para renombrar las tablas migradas. Consulte Map object names. <br>- Ignore Errors and Proceed: Omite la comprobación previa de nombres de tabla idénticos. AvisoEsto puede causar inconsistencia en los datos. Durante la migración completa, DTS omite los registros en conflicto y conserva los datos existentes en el destino. Durante la migración incremental, DTS sobrescribe los registros en conflicto. Si el origen y el destino tienen esquemas diferentes, solo se migran columnas parciales o la tarea puede fallar.
Capitalization of Object Names in Destination Instance La política de uso de mayúsculas para nombres de bases de datos, tablas y columnas en el destino. El valor predeterminado es DTS default policy. Consulte Specify the capitalization of object names in the destination instance. Source Objects Seleccione las bases de datos o tablas a migrar y luego haga clic en
para moverlas a Selected Objects.Selected Objects - Para renombrar una tabla en el destino, haga clic derecho sobre ella y seleccione una opción de asignación de nombres de objetos. Consulte Map object names. <br>- Para filtrar filas, haga clic derecho en una tabla y especifique condiciones WHERE. Consulte Specify filter conditions. <br>- Para seleccionar operaciones SQL específicas para una base de datos o tabla, haga clic derecho en el objeto y elija las operaciones a incluir. <br>- Si se selecciona Schema Migration, solo puede seleccionar tablas (no bases de datos) como objetos de migración, y debe configurar el parámetro bucket_count: haga clic derecho en una tabla, habilite Enable Parameter Settings, establezca Value en un entero positivo (predeterminado: auto) y haga clic en OK. <br><br>NotaRenombrar un objeto con la asignación de nombres de objetos puede provocar que los objetos dependientes fallen en la migración.
-
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 la tarea en un clúster compartido. Para mejorar la estabilidad de la tarea, adquiera un clúster dedicado. Consulte What is a DTS dedicated cluster. Retry Time for Failed Connections Tiempo durante el cual DTS reintenta conexiones fallidas después de iniciar la tarea. Rango válido: 10–1,440 minutos. Predeterminado: 720 minutos. Establezca un valor superior a 30 minutos. Si DTS se reconecta dentro de este período, la tarea se reanuda. De lo contrario, la tarea falla. NotaCuando varias tareas comparten el mismo origen o destino, prevalece el tiempo de reintento configurado más recientemente. DTS cobra por la instancia durante el reintento.
Retry Time for Other Issues Tiempo durante el cual DTS reintenta operaciones DDL o DML fallidas. Rango válido: 1–1,440 minutos. Predeterminado: 10 minutos. Establezca un valor superior a 10 minutos. Debe ser menor que Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limita el rendimiento de lectura y escritura durante la migración completa para reducir la carga en ambas instancias. Configure Queries per second (QPS) 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 rendimiento 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. Whether to delete SQL operations on heartbeat tables of forward and reverse tasks Controla si DTS escribe operaciones SQL de latido en la instancia de origen. <br>- Yes: DTS no escribe operaciones de latido. La información de latencia puede ser inexacta. <br>- No: DTS escribe operaciones de latido. La copia de seguridad física y la clonación del origen pueden verse afectadas. Environment Tag Una etiqueta opcional para identificar la instancia. Configure ETL Indica si se habilita la función de extracción, transformación y carga (ETL). Consulte What is ETL? y Configure ETL in a data migration or data synchronization task. Monitoring and Alerting Indica si se reciben alertas cuando la tarea falla o la latencia de migración supera un umbral. Si selecciona Yes, configure el umbral de alerta y la configuración de notificaciones. Consulte Configure monitoring and alerting when you create a DTS task. -
(Opcional) Haga clic en Next: Configure Database and Table Fields. Para cada tabla a migrar, especifique Primary Key Column, Distribution Key y Engine.
- Este paso está disponible solo cuando se selecciona Schema Migration . Establezca Definition Status en All para ver todas las tablas. - Primary Key Column admite múltiples columnas. También se pueden seleccionar una o más columnas de clave primaria como Distribution Key . - Si una tabla no tiene clave primaria ni restricción UNIQUE, seleccione duplicate para Engine . De lo contrario, la tarea puede fallar o producirse pérdida de datos.
Paso 4: Ejecutar la comprobación previa
Haga clic en Next: Save Task Settings and Precheck.
Para previsualizar los parámetros de la API para esta configuración antes de continuar, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters.
La tarea debe pasar la comprobación previa antes de poder iniciarse.
Si un elemento de la comprobación previa falla, haga clic en View Details junto al elemento fallido, resuelva el problema y haga clic en Precheck Again .
Si se activa una alerta: si no se puede ignorar, resuélvala y vuelva a comprobar. Si se puede ignorar de forma segura, haga clic en Confirm Alert Details , haga clic en Ignore en el cuadro de diálogo, confirme y haga clic en Precheck Again . Ignorar alertas puede causar inconsistencia en los datos.
Paso 5: Adquirir e iniciar la instancia
Espere hasta que Success Rate alcance 100% y luego haga clic en Next: Purchase Instance.
-
En la página Purchase Instance, configure la instancia.
Sección Parámetro Descripción New Instance Class Resource Group El resource group para la instancia de migración. El valor predeterminado es default resource group. Consulte What is Resource Management? Instance Class La clase de instancia determina la velocidad de migración. Seleccione una clase según sus necesidades. Consulte Instance classes of data migration instances. Seleccione la casilla de verificación 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.
La tarea aparece en la página Data Migration. Realice el seguimiento de su progreso desde allí.
Si la tarea no incluye migración incremental de datos, se detiene automáticamente al finalizar. El Status muestra Completed .
Si la tarea incluye migración incremental de datos, se ejecuta continuamente. El Status muestra Running . La tarea de migración incremental de datos nunca se detiene ni se completa automáticamente.
Asignación de tipos de datos
| Categoría | Tipo de PolarDB-X 2.0 | Tipo de SelectDB |
|---|---|---|
| Numérico | TINYINT | TINYINT |
| TINYINT UNSIGNED | SMALLINT | |
| SMALLINT | SMALLINT | |
| SMALLINT UNSIGNED | INT | |
| MEDIUMINT | INT | |
| MEDIUMINT UNSIGNED | BIGINT | |
| INT | INT | |
| INT UNSIGNED | BIGINT | |
| BIGINT | BIGINT | |
| BIGINT UNSIGNED | LARGEINT | |
| BIT(M) | INT | |
| Decimal | Decimal ( Nota zerofill no es compatible) | |
| Numeric | Decimal | |
| Float | Float | |
| Double | DOUBLE | |
| BOOL / BOOLEAN | BOOLEAN | |
| Fecha y hora | DATE | DATEV2 |
| DATETIME[(fsp)] | DATETIMEV2 | |
| Timestamp[(fsp)] | DATETIMEV2 | |
| Time[(fsp)] | VARCHAR | |
| YEAR[(4)] | INT | |
| Cadena | CHAR / VARCHAR | VARCHAR |
| BINARY / VARBINARY | STRING | |
| TINYTEXT / TEXT / MEDIUMTEXT / LONGTEXT | STRING | |
| TINYBLOB / BLOB / MEDIUMBOLB / LONGBLOB | STRING | |
| ENUM | STRING | |
| SET | STRING | |
| JSON | STRING |
Para evitar la pérdida de datos, CHAR y VARCHAR(n) se convierten a VARCHAR(4*n) en SelectDB.
Si no se especifica ninguna longitud, se utiliza el valor predeterminado de SelectDB: VARCHAR(65533).
Si la longitud excede 65533, los datos se convierten a STRING.
Columnas adicionales
DTS crea automáticamente las siguientes columnas en tablas con motor Duplicate (o puede agregarlas manualmente):
|
Columna |
Tipo |
Valor predeterminado |
Descripción |
|
|
Int |
0 |
Indica si el registro está eliminado. Se establece en 0 para operaciones INSERT y UPDATE, y en 1 para operaciones DELETE. |
|
|
Bigint |
0 |
Se establece en 0 durante la migración completa de datos. Durante la migración incremental, contiene la marca de tiempo (en segundos) del archivo de registro binario de origen. |
|
|
Bigint |
0 |
Se establece en 0 durante la migración completa de datos. Durante la migración incremental, contiene el ID único de la entrada de registro incremental. El ID se incrementa automáticamente para cada nueva entrada de registro. |