Data Transmission Service (DTS) sincroniza los datos desde una base de datos Oracle autogestionada hacia un clúster de PolarDB for MySQL sin interrumpir las aplicaciones locales.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un clúster de PolarDB for MySQL con almacenamiento disponible que supere el tamaño total de la base de datos Oracle de origen. Consulte Purchase a pay-as-you-go cluster y Purchase a subscription cluster
Una base de datos en el clúster de PolarDB for MySQL de destino para recibir los datos sincronizados. Consulte Create a database
La base de datos Oracle de origen ejecutándose en modo ARCHIVELOG, con archivos de registro archivados accesibles y un periodo de retención adecuado. Consulte Managing Archived Redo Log Files
El registro suplementario habilitado en la base de datos Oracle de origen, con
SUPPLEMENTAL_LOG_DATA_PKySUPPLEMENTAL_LOG_DATA_UIestablecidos enYes. Consulte Supplemental LoggingFamiliaridad con las capacidades y límites de DTS para orígenes Oracle. Advanced Database & Application Migration (ADAM) está disponible para evaluar la base de datos y ayudar a planificar la migración. Consulte Prepare an Oracle database y Overview
Facturación
|
Tipo de sincronización |
Costo |
|
Sincronización de esquemas y sincronización completa de datos |
Gratis |
|
Sincronización incremental de datos |
Con cargo. Consulte Billing overview |
Operaciones SQL compatibles
|
Tipo de operación |
Sentencias SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE (no se admiten funciones en la sentencia); ALTER TABLE, ADD COLUMN, DROP COLUMN, RENAME COLUMN, ADD INDEX; DROP TABLE; RENAME TABLE, TRUNCATE TABLE, CREATE INDEX (solo operaciones realizadas por la cuenta actual de la base de datos) |
Permisos obligatorios
|
Base de datos |
Permiso obligatorio |
Referencias |
|
Base de datos Oracle autogestionada |
Permisos detallados |
|
|
Clúster de PolarDB for MySQL |
Permisos de escritura en la base de datos de destino |
Create and manage a database account — use una cuenta con privilegios |
Para la sincronización incremental de datos desde Oracle, habilite el registro de archivado y el registro suplementario en la base de datos Oracle antes de iniciar la tarea. Consulte Configure an Oracle database.
Límites
Durante la sincronización de esquemas, DTS sincroniza las claves foráneas desde el origen hacia la base de datos de destino. Durante la sincronización completa e incremental de datos, DTS deshabilita temporalmente las comprobaciones de restricciones de claves foráneas y las operaciones en cascada a nivel de sesión. Si ejecuta operaciones de actualización o eliminación en cascada en el origen durante la sincronización, puede producirse inconsistencia en los datos.
Límites 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. Sin estas restricciones, la base de datos de destino podría contener registros duplicados.
Si su base de datos Oracle es versión 12c o posterior, los nombres de tabla no pueden exceder los 30 bytes.
Si selecciona tablas individuales (no toda la base de datos) y necesita cambiar el nombre de tablas o columnas en el destino: una sola tarea admite hasta 1,000 tablas. Para más de 1,000 tablas, configure varias tareas en lotes o sincronice toda la base de datos.
Si la base de datos de origen es una base de datos Oracle Real Application Cluster (RAC) conectada mediante Express Connect, debe especificar una dirección IP virtual (VIP) para la base de datos al configurar la tarea de sincronización de datos.
Si la base de datos Oracle autogestionada es una base de datos Oracle RAC, solo puede usar una VIP en lugar de una dirección IP de Single Client Access Name (SCAN) al configurar la tarea de sincronización de datos. Después de especificar la VIP, no se admite la conmutación por error de nodos de la base de datos Oracle RAC.
Si ocurre una conmutación entre principal y secundario en la base de datos de origen mientras la tarea se está ejecutando, la tarea fallará.
La tarea falla si el origen contiene cadenas vacías del tipo VARCHAR2 y la columna correspondiente en el destino tiene una restricción NOT NULL. Oracle procesa las cadenas VARCHAR2 vacías como valores nulos.
Los registros redo y los registros de archivado en la base de datos de origen deben conservarse por más de siete días. Si DTS no puede obtener estos registros, la tarea fallará. En casos excepcionales, puede producirse inconsistencia o pérdida de datos. Los periodos de retención menores a siete días no están cubiertos por el acuerdo de nivel de servicio (SLA) de DTS.
Límites generales y del destino
-
Los nombres de tabla en PolarDB for MySQL no distinguen entre mayúsculas y minúsculas. Si el nombre de una tabla en el origen Oracle contiene letras mayúsculas, PolarDB for MySQL las convierte a minúsculas antes de crear la tabla.
Si la base de datos Oracle de origen contiene nombres de tabla que difieren solo en el uso de mayúsculas, puede producirse inconsistencia en los datos o fallo de la tarea. Utilice la función object name mapping para cambiar el nombre de los objetos en conflicto durante la configuración de la tarea.
Evalúe el impacto en el rendimiento de las bases de datos de origen y destino antes de sincronizar. Ejecute la tarea fuera del horario pico siempre que sea posible.
Durante la sincronización completa de datos, las operaciones INSERT simultáneas causan fragmentación de tablas en el destino. Una vez completada la sincronización completa, el espacio de tablas de destino será mayor que el del origen.
DTS calcula la latencia de sincronización basándose en la marca de tiempo del último registro sincronizado en el destino frente a la marca de tiempo actual del origen. Si no se ejecutan operaciones DML en el origen durante un periodo prolongado, la visualización de la latencia puede ser inexacta. Ejecute una operación DML en el origen para actualizar la latencia. Si sincroniza una base de datos completa, cree una tabla de latidos: DTS la actualiza cada segundo para mantener la precisión de la latencia.
Escriba datos en la base de datos de destino únicamente a través de DTS durante la sincronización. Escribir desde otros orígenes provoca inconsistencia en los datos.
Si las sentencias DDL no se pueden ejecutar en la base de datos de destino, la tarea continúa su ejecución. Consulte las sentencias DDL fallidas en los registros de la tarea. Véase View task logs.
Los conjuntos de caracteres de las bases de datos de origen y destino deben ser compatibles. Los conjuntos de caracteres incompatibles pueden causar inconsistencia en los datos o fallos en la tarea.
Utilice la función de migración de esquemas de DTS. De lo contrario, la tarea de sincronización puede fallar debido a tipos de datos incompatibles.
Las zonas horarias de las bases de datos de origen y destino deben coincidir.
Configuración de una tarea de sincronización
Paso 1: Abrir la página Data Synchronization Tasks
Inicie sesión en la consola de Data Management (DMS).
En la barra de navegación superior, haga clic en Data + AI.
-
En el panel de navegación izquierdo, elija DTS (DTS) > Data Synchronization.
La ruta de navegación puede variar según el modo de la consola DMS. Consulte Simple mode y Customize the layout and style of the DMS console . También puede ir directamente a la página Data Synchronization Tasks en la nueva consola de DTS.
-
En el lado derecho de la página, seleccione la región donde reside la instancia de sincronización de datos.
En la nueva consola de DTS, seleccione la región en la barra de navegación superior.
Paso 2: Configurar las bases de datos de origen y destino
Haga clic en Create Task. En el asistente Create Data Synchronization task, configure los siguientes parámetros.
Nombre de la tarea
|
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. |
Base de datos de origen
|
Parámetro |
Descripción |
|
Select an existing DMS database instance |
(Opcional) Seleccione una base de datos existente para que DTS complete los parámetros automáticamente. Si no selecciona ninguna, configure los parámetros a continuación. |
|
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, configure primero el entorno requerido. 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. Predeterminado: 1521. |
|
Oracle Type |
La arquitectura de la base de datos Oracle de origen: Non-RAC Instance (requiere SID) o RAC or PDB Instance (requiere Service Name). Este ejemplo utiliza RAC or PDB Instance. |
|
Database Account |
La cuenta para la base de datos Oracle de origen. Consulte Permissions required. |
|
Database Password |
La contraseña de la cuenta de la base de datos. |
Base de datos de destino
|
Parámetro |
Descripción |
|
Select an existing DMS database instance |
(Opcional) Seleccione una base de datos existente para que DTS complete los parámetros automáticamente. Si no selecciona ninguna, configure los parámetros a continuación. |
|
Database Type |
Seleccione PolarDB for MySQL. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
La región donde reside el clúster de PolarDB for MySQL de destino. |
|
PolarDB Cluster ID |
El ID del clúster de PolarDB for MySQL de destino. |
|
Database Account |
La cuenta de base de datos para el clúster de PolarDB for MySQL de destino. Consulte Permissions required. |
|
Database Password |
La contraseña de la cuenta de la base de datos. |
|
Encryption |
Indica si se debe cifrar la conexión a la base de datos de destino. Consulte Configure SSL encryption. |
Paso 3: Probar la conectividad
Haga clic en Test Connectivity and Proceed.
Si la base de datos de origen o destino es una instancia de base de datos de Alibaba Cloud, como una instancia de ApsaraDB RDS for MySQL o ApsaraDB for MongoDB, DTS agrega automáticamente los bloques CIDR de los servidores DTS a la lista blanca de la instancia. Si la base de datos de origen o 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 DTS a las reglas del security group de la instancia ECS, y usted debe asegurarse de que la instancia ECS pueda acceder a la base de datos. Para bases de datos en centros de datos o de proveedores de nube externos, agregue manualmente los bloques CIDR de DTS a la lista blanca de la base de datos. Consulte Add the CIDR blocks of DTS servers.
Agregar bloques CIDR de DTS a su lista blanca o reglas de security group introduce riesgos de seguridad. Antes de continuar, tome medidas preventivas como: fortalecer las credenciales, restringir los puertos expuestos, autenticar las llamadas a la API, auditar regularmente las reglas de la lista blanca y eliminar los bloques CIDR no autorizados. Alternativamente, conéctese a través de Express Connect, VPN Gateway o Smart Access Gateway.
Paso 4: Seleccionar objetos y configurar los ajustes de sincronización
Configure los siguientes parámetros de sincronización.
Ajustes de sincronización
|
Parámetro |
Descripción |
|
Synchronization Types |
Incremental Data Synchronization está seleccionado de forma predeterminada. Seleccione también Schema Synchronization y Full Data Synchronization. Una vez completada la verificación previa, DTS sincroniza los datos históricos del origen al destino como base para la posterior sincronización incremental. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors: DTS comprueba si existen tablas con nombres idénticos en el origen y el destino. Si existen nombres idénticos, la verificación previa falla y la tarea no puede iniciarse. Si las tablas en el destino no se pueden eliminar ni renombrar, utilice la función de object name mapping para cambiar el nombre de los objetos antes de comenzar. Ignore Errors and Proceed: DTS omite la verificación previa de nombres idénticos. Durante la sincronización completa, se conservan los registros existentes en el destino que tengan la misma clave principal o clave única. Durante la sincronización incremental, se sobrescriben. Si los esquemas difieren, la sincronización puede ser parcial o la tarea puede fallar. |
|
Capitalization of object names in destination instance |
Controla el uso de mayúsculas en los 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 bases de datos, tablas o columnas en Source Objects y haga clic en |
|
Selected Objects |
Si la cuenta de la base de datos de destino no es una cuenta con privilegios, o si el nombre del esquema de origen no cumple con las convenciones de nomenclatura de PolarDB for MySQL, haga clic con el botón derecho en el esquema dentro de Selected Objects y establezca Schema Name con el nombre de la base de datos objetivo. Para cambiar el nombre de una tabla después de la sincronización, haga clic con el botón derecho en la tabla y especifique el nuevo nombre. Consulte Map object names. Para filtrar filas, haga clic con el botón derecho en una tabla y especifique las condiciones de filtro. Consulte Set filter conditions. |
Si cambia el nombre de un objeto mediante la asignación de nombres de objetos, otros objetos que dependan de él podrían no sincronizarse correctamente.
Paso 5: Configurar ajustes avanzados
Haga clic en Next: Advanced Settings y configure lo siguiente.
Verificación de datos
Para la configuración de la verificación de datos, consulte Configure data verification.
Ajustes avanzados
|
Parámetro |
Descripción |
|
Dedicated Cluster for Task Scheduling |
De forma predeterminada, DTS programa la tarea en el clúster compartido. Para mejorar la estabilidad de la tarea, adquiera un clúster dedicado. Consulte What is a DTS dedicated cluster. |
|
Select the engine type of the destination database |
El motor de almacenamiento para la base de datos de destino. InnoDB es el predeterminado. X-Engine es un motor de almacenamiento de bases de datos para procesamiento de transacciones en línea (OLTP). |
|
Retry Time for Failed Connections |
Tiempo durante el cual DTS reintenta las conexiones fallidas después de iniciar la tarea. Valores válidos: 10–1,440 minutos. Predeterminado: 720 minutos. Establezca este valor en 30 minutos o más. Si DTS se reconecta dentro de esta ventana, la tarea se reanuda; de lo contrario, falla. Si varias tareas comparten la misma base de datos de origen o destino, prevalece la ventana de reintento más corta. DTS genera cargos durante el periodo de reintento. |
|
Retry Time for Other Issues |
Tiempo durante el cual DTS reintenta las operaciones DDL o DML fallidas. Valores válidos: 1–1,440 minutos. Predeterminado: 10 minutos. Establezca este valor en 10 minutos o más. Este valor debe ser menor que Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Limita la carga en el destino durante la sincronización completa mediante la configuración de Queries per second (QPS) to the source database, RPS of Full Data Migration y Data migration speed for full migration (MB/s). Se muestra solo cuando Full Data Synchronization está seleccionado. |
|
Enable Throttling for Incremental Data Synchronization |
Limita la carga en el destino durante la sincronización incremental. Configure RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s). |
|
Environment Tag |
Una etiqueta para identificar la instancia de DTS. Selecciónela según sus necesidades. |
|
Actual Write Code |
El formato de codificación para escribir datos en la base de datos de destino. |
|
Configure ETL |
Indica si se debe habilitar la función de extracción, transformación y carga (ETL). Seleccione Yes para introducir sentencias de procesamiento de datos en el editor de código. Consulte Configure ETL in a data migration or data synchronization task. Seleccione No para omitir ETL. |
|
Monitoring and Alerting |
Indica si se deben configurar alertas para la tarea. Seleccione Yes para establecer un umbral de alerta y contactos de notificación; DTS les notificará si la tarea falla o si la latencia de sincronización supera el umbral. Consulte Configure monitoring and alerting. |
Paso 6: Guardar la configuración y ejecutar la verificación previa
Haga clic en Next: Save Task Settings and Precheck.
Para previsualizar los parámetros de la API para esta configuración de tarea, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters .
DTS ejecuta una verificación previa antes de que la tarea pueda iniciarse. Si la verificación previa falla:
Haga clic en View Details junto a cada elemento fallido, resuelva el problema y vuelva a ejecutar la verificación previa.
Para elementos de alerta: si el elemento no se puede ignorar, resuélvalo y vuelva a ejecutar. Si el elemento se puede ignorar, haga clic en Confirm Alert Details > Ignore > OK > Precheck Again. Ignorar una alerta puede resultar en inconsistencia de datos.
Paso 7: Adquirir la instancia de sincronización
Espere a que Success Rate alcance el 100% y luego haga clic en Next: Purchase Instance.
En la página buy, configure lo siguiente.
|
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 la necesite para detener la facturación. |
|
Resource Group Settings |
El resource group para la instancia de sincronización. Predeterminado: default resource group. Consulte What is Resource Management? |
|
Instance Class |
DTS ofrece clases de instancia con diferentes velocidades de sincronización. Consulte Instance classes of data synchronization instances. |
|
Subscription Duration |
Disponible solo para el método de facturación Subscription. Opciones: 1–9 meses, 1 año, 2 años, 3 años o 5 años. |
Lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms, y luego haga clic en Buy and Start. En el cuadro de diálogo de confirmación, haga clic en OK.
La tarea aparecerá en la lista de tareas. Monitoree su progreso desde allí.