Data Transmission Service (DTS) migra los datos de una base de datos Oracle autogestionada a un clúster de AnalyticDB for MySQL V3.0 en tres fases: migración de esquema, migración completa de datos y migración incremental de datos. La ejecución conjunta de estas tres fases permite mantener el servicio activo sin tiempo de inactividad durante la migración.
Funcionamiento
DTS extrae los datos del origen Oracle y los escribe en AnalyticDB for MySQL en tres fases secuenciales:
Migración de esquema: DTS convierte y crea las estructuras de tabla en el clúster de destino. Las claves externas no se migran.
Migración completa de datos: DTS copia todos los datos existentes del origen al destino. Las operaciones INSERT simultáneas pueden provocar fragmentación de tablas en el clúster de destino.
Migración incremental de datos: DTS lee los registros redo y los registros de archivo de Oracle para capturar los cambios continuos y aplicarlos al destino casi en tiempo real. Solo se capturan las operaciones DML (INSERT, UPDATE, DELETE).
Cuando DTS escribe en AnalyticDB for MySQL V3.0, las sentencias UPDATE se convierten automáticamente en REPLACE INTO. Las operaciones UPDATE sobre una clave principal se convierten en DELETE + INSERT.
Requisitos previos
Antes de empezar, asegúrese de cumplir con lo siguiente:
Un clúster de AnalyticDB for MySQL V3.0 con almacenamiento disponible superior al tamaño total de la base de datos Oracle de origen. Consulte Create a cluster.
La base de datos Oracle de origen debe ejecutarse en modo ARCHIVELOG, con archivos de registro de archivado accesibles y un período de retención adecuado configurado. Consulte Managing archived redo log files.
-
El registro suplementario debe estar habilitado en la base de datos Oracle de origen, con
SUPPLEMENTAL_LOG_DATA_PKySUPPLEMENTAL_LOG_DATA_UIestablecidos enYes. Ejecute los siguientes comandos SQL en la base de datos Oracle de origen para habilitar el registro de archivado y el registro suplementario:-- Enable archive logging (requires ARCHIVELOG mode) -- Verify current mode: SELECT LOG_MODE FROM V$DATABASE; -- Enable supplemental logging at the database level ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -- Enable primary key supplemental logging ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; -- Enable unique index supplemental logging ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE INDEX) COLUMNS; -- Verify supplemental logging status SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE; -- Expected: SUPPLEMENTAL_LOG_DATA_PK = YES, SUPPLEMENTAL_LOG_DATA_UI = YESPara obtener más información, consulte Supplemental logging y Configure an Oracle database.
Familiarícese con las capacidades y los límites de DTS para la migración de bases de datos Oracle. Advanced Database & Application Migration (ADAM) se utiliza para la evaluación de la base de datos y ayudar a garantizar una migración fluida a la nube. Consulte Prepare an Oracle database y Overview.
Una cuenta de base de datos en la base de datos Oracle de origen con los permisos necesarios. Consulte Permisos necesarios.
Una cuenta de base de datos en el clúster de AnalyticDB for MySQL V3.0 de destino con permisos de lectura y escritura.
Para conocer las versiones compatibles de la base de datos Oracle, consulte Overview of data migration scenarios.
Permisos necesarios
Cree una cuenta de base de datos para cada base de datos y otorgue los siguientes permisos antes de configurar la tarea de migración. Omita este paso si las cuentas ya existen con estos permisos.
| Base de datos | Migración de esquema | Migración completa de datos | Migración incremental de datos |
|---|---|---|---|
| Base de datos Oracle autogestionada | Permisos de propietario del esquema | Permisos de propietario del esquema | Permisos detallados |
| Clúster de AnalyticDB for MySQL V3.0 | Permisos de lectura y escritura en la base de datos de destino | ||
Para crear una cuenta y otorgar permisos:
Base de datos Oracle autogestionada: Consulte Prepare a database account, CREATE USER y GRANT.
Clúster de AnalyticDB for MySQL V3.0: Consulte Create a database account.
Límites
Revise los siguientes límites antes de configurar la tarea.
Durante la migración de esquema, DTS no migra las claves externas del origen al destino.
Durante la migración completa de datos y la migración incremental de datos, DTS deshabilita temporalmente las comprobaciones de restricciones y las operaciones en cascada de claves externas a nivel de sesión. Las operaciones de actualización y eliminación en cascada en el origen durante la migración pueden provocar inconsistencia de datos.
Límites de la base de datos de origen
|
Categoría |
Límite |
|
Ancho de banda |
El servidor de origen debe tener suficiente ancho de banda de salida; de lo contrario, la velocidad de migración disminuye. |
|
Oracle RAC a través de Express Connect |
Especifique una dirección IP virtual (VIP) para la base de datos. |
|
Oracle RAC a través de Express Connect, VPN Gateway, Smart Access Gateway, Database Gateway o Cloud Enterprise Network (CEN) |
Utilice una sola VIP en lugar de una dirección IP de Single Client Access Name (SCAN). Después de especificar la VIP, no se admite la conmutación por error de nodos para la base de datos Oracle RAC. |
|
Cadena vacía VARCHAR2 |
Oracle evalúa una cadena VARCHAR2 vacía como nula. Si el campo de destino tiene una restricción NOT NULL, la tarea de migración falla. |
|
Restricciones de tabla |
Las tablas deben tener restricciones PRIMARY KEY o UNIQUE con todos los campos únicos. Sin estas restricciones, el destino puede contener registros duplicados. |
|
Oracle 12c y posteriores |
Los nombres de tabla no pueden exceder los 30 bytes. |
|
Límite de cambio de nombre de tabla |
Si selecciona tablas como objetos de migración y necesita cambiar el nombre de tablas o columnas: 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. |
|
Migración incremental: retención de registros |
Los registros redo y los registros de archivado deben conservarse durante al menos 7 días. Períodos de retención más cortos pueden causar que la tarea falle y, en casos excepcionales, puede producirse inconsistencia o pérdida de datos. Si el período de retención es insuficiente, el acuerdo de nivel de servicio (SLA) de DTS no garantiza la fiabilidad ni el rendimiento. |
|
Migración incremental: operaciones de origen |
No utilice Oracle Data Pump para escribir datos en el origen durante la migración incremental. Puede producirse pérdida de datos. |
|
DDL durante la migración |
No realice operaciones DDL que cambien esquemas de base de datos o tablas durante la migración de esquema o la migración completa de datos. La tarea fallará. |
|
Migración completa de datos: escrituras en origen |
No escriba datos en el origen durante la migración completa de datos únicamente (sin migración incremental). Puede producirse inconsistencia de datos entre el origen y el destino. |
Límites del clúster de destino
|
Categoría |
Límite |
|
Uso de disco |
Si el uso de disco en cualquier nodo del clúster de AnalyticDB for MySQL V3.0 supera el 80%, se produce una excepción en la tarea de DTS y esta se retrasa. Estime el espacio necesario antes de comenzar y asegúrese de que el clúster de destino tenga suficiente almacenamiento. |
|
Clave principal |
Especifique una clave principal personalizada en la base de datos de destino o configure Primary Key Column durante la configuración de campos de la tabla. La ausencia de claves principales puede causar fallos en la migración. |
|
Conflicto de copia de seguridad |
Si el clúster de destino ejecuta una copia de seguridad mientras la tarea de DTS está activa, la tarea de DTS falla. |
|
Tablas externas |
No se pueden migrar tablas externas. |
|
Juego de caracteres |
Los juegos de caracteres de las bases de datos de origen y destino deben ser compatibles. Los juegos de caracteres incompatibles pueden causar inconsistencia de datos o fallos en la tarea. |
|
Zona horaria |
Las zonas horarias de las bases de datos de origen y destino deben ser iguales. |
|
Recuperación de tareas con errores |
DTS intenta reanudar las tareas con errores dentro de los últimos 7 días. Antes de cambiar las cargas de trabajo al clúster de destino, detenga o libere las tareas con errores, o ejecute la sentencia |
|
Fallos en la ejecución de DDL |
Si una sentencia DDL falla en el destino, la tarea de DTS continúa ejecutándose. Consulte las sentencias fallidas en los registros de la tarea. Véase View task logs. |
|
Migración de esquema |
Utilice la función de migración de esquema de DTS para evitar fallos en la tarea causados por tipos de datos incompatibles. |
|
Impacto en el rendimiento |
La migración completa de datos aumenta la carga tanto en los servidores de origen como en los de destino. Ejecute la migración fuera del horario pico. |
|
Fragmentación de tablas |
Las operaciones INSERT simultáneas durante la migración completa de datos provocan fragmentación de tablas. Después de la migración completa de datos, el espacio de tabla utilizado en el destino es mayor que en el origen. |
|
Soporte técnico de DTS |
Si una tarea de DTS falla, el soporte técnico intenta restaurarla dentro de las 8 horas. Durante la restauración, la tarea puede reiniciarse y los parámetros de la tarea (no los parámetros de la base de datos) pueden modificarse. Consulte Modify instance parameters para ver los parámetros que pueden modificarse. |
Cuando AnalyticDB for MySQL es el destino, DTS admite la escritura de los tipos de datos básicos y los tipos de datos complejos (ARRAY, MAP y JSON) de AnalyticDB for MySQL. Si la tabla de destino contiene columnas de tipos de datos no admitidos por DTS, como MULTIVALUE, la tarea de sincronización o migración de datos puede fallar. Para obtener más información, consulte Basic data types.
Facturación
|
Tipo de migración |
Tarifa de configuración de instancia |
Tarifa de tráfico de Internet |
|
Migración de esquema y migración completa de datos |
Gratuita |
Se cobra cuando el Access Method del destino se establece en Public IP Address. Consulte Billing overview. |
|
Migración incremental de datos |
De pago. Consulte Billing overview. |
— |
Operaciones SQL compatibles para la migración incremental
|
Tipo de operación |
Sentencias SQL |
|
DML |
INSERT, UPDATE, DELETE |
Las sentencias UPDATE se convierten en REPLACE INTO al escribirse en AnalyticDB for MySQL V3.0. Las operaciones UPDATE sobre claves principales se convierten en DELETE + INSERT.
Asignaciones de tipos de datos
Para consultar las asignaciones de tipos de datos de Oracle a MySQL, véase Data type mappings between heterogeneous databases.
Crear una tarea de migración
Este procedimiento consta de cinco pasos:
Vaya a la página Data Migration.
Configure las bases de datos de origen y destino.
Configure los objetos de migración y la configuración avanzada.
Ejecute la verificación previa y adquiera la instancia.
Monitoree la tarea de migración.
Paso 1: Ir a la página Data Migration
Utilice uno de los siguientes métodos para abrir la página Data Migration.
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
La operación real puede 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 el nombre de la tarea y la base de datos de origen.
AvisoDespués de configurar las bases de datos de origen y destino, lea los Limits que se muestran en la parte superior de la página antes de continuar.
Parámetro
Descripción
Task Name
DTS genera un nombre automáticamente. Especifique un nombre descriptivo para identificar la tarea. El nombre no necesita ser único.
Select Existing Connection
Seleccione una instancia de base de datos registrada de la lista o configure la conexión manualmente.
Database Type
Seleccione Oracle.
Access Method
Seleccione el método de acceso para la base de datos de origen. Este ejemplo utiliza Self-managed Database on ECS. Para otros métodos de acceso, consulte Preparation overview.
Instance Region
La región donde reside la base de datos Oracle de origen.
ECS Instance ID
El ID de la instancia de Elastic Compute Service (ECS) que aloja la base de datos Oracle de origen.
Port Number
El puerto de servicio de la base de datos Oracle de origen. Valor predeterminado: 1521.
Oracle Type
Seleccione la arquitectura de la base de datos: Non-RAC Instance (requiere SID) o RAC or PDB Instance (requiere Service Name). Este ejemplo utiliza RAC or PDB Instance.
Database Account
La cuenta de la base de datos Oracle de origen con los permisos necesarios.
Database Password
La contraseña de la cuenta de la base de datos de origen.
-
Configure la base de datos de destino.
Parámetro
Descripción
Select Existing Connection
Seleccione una instancia de base de datos registrada o configure la 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 AnalyticDB for MySQL V3.0 de destino.
Instance ID
El ID del clúster de destino.
Database Account
La cuenta de la base de datos del clúster de destino con permisos de lectura y escritura.
Database Password
La contraseña de la cuenta de la base de datos de destino.
-
Haga clic en Test Connectivity and Proceed y luego haga clic en Test Connectivity en el cuadro de diálogo CIDR Blocks of DTS Servers.
Asegúrese de que los bloques CIDR de los servidores de DTS estén agregados a la configuración de seguridad tanto de la base de datos de origen como de la de destino. Consulte Add the CIDR blocks of DTS servers .
Paso 3: Configurar los objetos de migración y la configuración avanzada
-
En la página Configure Objects, establezca los parámetros de migración.
Parámetro Descripción Migration Types Seleccione los tipos de migración según sus requisitos:
-
Schema Migration + Full Data Migration: migra los datos existentes sin cambios incrementales.
-
Schema Migration + Full Data Migration + Incremental Data Migration: mantiene el destino sincronizado durante la migración, lo que permite una transición fluida sin tiempo de inactividad.
NotaSi omite Schema Migration, cree las tablas de destino manualmente y habilite la asignación de nombres de objetos. Si omite Incremental Data Migration, no escriba en el origen durante la migración.
DDL and DML Operations to Be Synchronized Las operaciones DDL o DML que se van a migrar. Para seleccionar operaciones de una tabla específica, haga clic con el botón derecho en la tabla en Selected Objects. Merge Tables No (predeterminado): migra las tablas sin fusionarlas. Yes: agrega una columna __dts_data_sourcea cada tabla y fusiona todas las tablas de origen seleccionadas en una sola tabla de destino. Consulte Enable the multi-table merging feature.AvisoNo realice cambios de esquema DDL en las tablas de origen cuando Merge Tables esté habilitado.
Processing Mode of Conflicting Tables Precheck and Report Errors (predeterminado): falla la verificación previa si las tablas de destino comparten nombres con las tablas de origen. Ignore Errors and Proceed: omite la verificación de conflictos de nombres. AvisoSeleccionar Ignore Errors and Proceed puede provocar inconsistencia en los datos. Durante la migración completa de datos, los registros en conflicto se conservan en el destino sin actualizarse. Durante la migración incremental, los registros en conflicto se sobrescriben.
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 Specify the capitalization of object names in the destination instance. Source Objects Seleccione los objetos que desea migrar y luego haga clic en
para moverlos a Selected Objects. Se admiten columnas, tablas y bases de datos.Selected Objects Haga clic con el botón derecho en un objeto individual para cambiarle el nombre. Haga clic en Edit en la esquina superior derecha para cambiar el nombre de varios objetos a la vez. Consulte Database, table, and column name mapping. NotaCambiar el nombre de un objeto puede provocar que los objetos dependientes fallen en la migración. Para filtrar datos de tabla por condición, haga clic con el botón derecho en la tabla y especifique condiciones WHERE. Consulte Specify filter conditions.
-
-
Haga clic en Next: Advanced Settings y configure los parámetros avanzados.
Parámetro Descripción Dedicated Cluster for Task Scheduling DTS utiliza un clúster compartido de forma predeterminada. Para usar un clúster dedicado, adquiera uno por separado. Consulte What is a DTS dedicated cluster? Retry Time for Failed Connections Tiempo durante el cual DTS reintenta una conexión fallida después de que comienza la tarea. Valores válidos: 10–1,440 minutos. Valor predeterminado: 720 minutos. Establezca un valor superior a 30 minutos. Si DTS se reconecta dentro de este periodo, la tarea se reanuda. De lo contrario, falla. NotaCuando varias tareas comparten el mismo origen o destino, el último tiempo de reintento configurado se aplica a todas. DTS cobra por la instancia durante los reintentos.
Retry Time for Other Issues Tiempo durante el cual DTS reintenta operaciones DDL o DML fallidas. Valores válidos: 1–1,440 minutos. Valor 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 uso de recursos de lectura/escritura durante la migració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). 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. Actual Write Code El formato de codificación para los datos escritos en el destino. Configure ETL 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 Configura alertas para fallos de tareas o latencia que exceda un umbral. Cuando está habilitado, especifique el umbral de alerta y la configuración de notificaciones. Consulte Configure monitoring and alerting when you create a DTS task. Haga clic en Next Step: Data Verification para configurar la tarea de verificación de datos. Consulte Configure a data verification task.
-
(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 cada tabla en el clúster de destino.
Este paso está disponible solo cuando se selecciona Schema Migration . Establezca Definition Status en All para ver y modificar todos los campos. La Primary Key Column admite claves primarias compuestas (varias columnas). Especifique como mínimo una columna de clave primaria tanto como Distribution Key como Partition Key . Consulte CREATE TABLE .
Paso 4: Ejecutar la verificación previa y adquirir la instancia
-
Haga clic en Next: Save Task Settings and Precheck. DTS ejecuta una verificación previa antes de iniciar la migración. Resuelva cualquier fallo antes de continuar:
Para los elementos con errores, haga clic en View Details para ver la causa, solucione el problema y luego haga clic en Precheck Again.
Para los elementos de advertencia que no se pueden ignorar, haga clic en View Details, solucione el problema y vuelva a ejecutar la verificación previa.
Para los elementos de advertencia que se pueden ignorar, haga clic en Confirm Alert Details > Ignore > OK y luego haga clic en Precheck Again. Ignorar advertencias puede provocar inconsistencia en los datos.
Para obtener una vista previa de los parámetros de la API para esta configuración, pase el puntero sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters .
Espere hasta que Success Rate alcance 100% y luego haga clic en Next: Purchase Instance.
-
En la página Purchase Instance, configure la clase de instancia.
Parámetro
Descripción
Resource Group
El resource group para la instancia de migración. Valor predeterminado: default resource group. Consulte What is Resource Management?
Instance Class
La clase de instancia determina la velocidad de migración. Consulte Instance classes of data migration instances.
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms, luego haga clic en Buy and Start > OK.
Paso 5: Monitorear la tarea de migración
Consulte el progreso de la tarea en la página Data Migration.
Solo migración completa (sin incremental): la tarea se detiene automáticamente al finalizar. El estado muestra Completed.
Con migración incremental: la tarea se ejecuta continuamente y no se detiene automáticamente. El estado muestra Running. Detenga la tarea manualmente después de verificar la consistencia de los datos y antes de cambiar las cargas de trabajo al clúster de destino.
Verificar los resultados de la migración
Después de que la tarea alcance el estado Completed o antes de realizar la transición al clúster de destino, compruebe que los datos se hayan migrado correctamente.
Conéctese al clúster de AnalyticDB for MySQL V3.0 de destino.
-
Compare el recuento de filas de las tablas clave entre el origen y el destino:
-- Run on source Oracle database SELECT COUNT(*) FROM <schema_name>.<table_name>; -- Run on destination AnalyticDB for MySQL V3.0 cluster SELECT COUNT(*) FROM <table_name>; Revise una muestra aleatoria de registros para confirmar la precisión de los datos.
Revise los registros de la tarea de DTS en busca de advertencias o errores. Consulte View task logs.
Para migraciones heterogéneas que implican conversión de tipos de datos, verifique siempre las tablas críticas antes de realizar la transición.