Data Transmission Service (DTS) admite la migración de datos desde una base de datos Oracle autogestionada hacia un clúster de PolarDB for PostgreSQL. Puede elegir entre migración de esquemas, migración completa de datos o migración incremental de datos, o bien combinar las tres opciones para mantener el destino sincronizado con el origen durante la migración.
Antes de empezar
Antes de configurar una tarea de migración, complete los siguientes pasos de preparación.
Paso 1: Evaluar la compatibilidad (recomendado)
Utilice Advanced Database & Application Migration (ADAM) para evaluar la compatibilidad de su base de datos Oracle de origen con PolarDB for PostgreSQL. ADAM identifica esquemas, tipos de datos y sintaxis SQL incompatibles antes de la migración, lo que reduce el riesgo de errores en la tarea.
Para obtener instrucciones de configuración y los límites de capacidad de DTS específicos para Oracle, consulte Prepare an Oracle database y DTS overview.
Paso 2: Preparar la base de datos Oracle de origen
Habilite el modo ARCHIVELOG. 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.
Habilite el registro suplementario. Establezca
SUPPLEMENTAL_LOG_DATA_PKySUPPLEMENTAL_LOG_DATA_UIenYes. Consulte Supplemental logging.
Paso 3: Preparar el clúster de PolarDB for PostgreSQL de destino
-
Cree el clúster de PolarDB for PostgreSQL. El almacenamiento disponible del clúster debe superar el tamaño total de los datos de la base de datos Oracle de origen. Consulte Create a PolarDB for PostgreSQL cluster.
NotaPara conocer las versiones compatibles del motor de base de datos, consulte Overview of data migration scenarios.
Cree la base de datos de destino que recibirá los datos migrados. Consulte Database management.
Límites
Comportamiento de claves externas durante la migración
Durante la migración de esquemas, DTS 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 las claves externas a nivel de sesión. Si realiza operaciones en cascada o de eliminación en la base de datos de origen durante la migración, puede producirse inconsistencia en los datos.
Límites de la base de datos de origen
Conectividad
|
Escenario |
Límite |
|
General |
El servidor que aloja la base de datos de origen debe tener suficiente ancho de banda de salida. Un ancho de banda insuficiente reduce la velocidad de migración. |
|
Oracle RAC a través de Express Connect |
Especifique una dirección IP virtual (VIP) para la base de datos de origen. No se admite el uso de una dirección IP de Single Client Access Name (SCAN). La conmutación por error de nodos se deshabilita después de especificar la VIP. |
|
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 SCAN. La conmutación por error de nodos no es compatible después de especificar la VIP. |
Compatibilidad de datos
Si un campo VARCHAR2 en la base de datos Oracle de origen contiene una cadena vacía (que Oracle evalúa como nulo) y el campo correspondiente en el destino tiene una restricción NOT NULL, la tarea de migración fallará.
Las tablas que se van a migrar deben tener restricciones PRIMARY KEY o UNIQUE, y todos los campos deben ser únicos. De lo contrario, la base de datos de destino podría contener registros duplicados.
Para Oracle 12c y versiones posteriores, los nombres de tabla no pueden exceder los 30 bytes.
Si selecciona tablas como objetos de migración y necesita cambiar el nombre de tablas o columnas en el destino, una sola tarea de migración admite hasta 1,000 tablas. Migrar más de 1,000 tablas provoca un error de solicitud. Ejecute varias tareas en lotes o migre toda la base de datos en su lugar.
Requisitos de migración incremental
|
Modo de migración |
Período de retención de registros obligatorio |
|
Solo migración incremental de datos |
Más de 24 horas |
|
Migración completa de datos + migración incremental de datos |
Como mínimo 7 días. Una vez completada la migración completa de datos, puede reducir este período a más de 24 horas. |
Si DTS no puede obtener registros redo o registros de archivado debido a una retención insuficiente, la tarea de migración fallará. En casos extremos, puede producirse inconsistencia o pérdida de datos. El Acuerdo de Nivel de Servicio (SLA) de DTS no cubre fallos causados por una retención de registros insuficiente.
Operaciones que deben evitarse en la base de datos de origen
No realice operaciones DDL que cambien los esquemas de la base de datos o de las tablas durante la migración de esquemas o la migración completa de datos. La tarea fallará si se detectan cambios DDL.
Si solo ejecuta la migración completa de datos (sin migración incremental), no escriba datos en la base de datos de origen durante la migración. Las escrituras durante la migración completa pueden causar inconsistencia en los datos.
No actualice campos LONGTEXT durante la migración. La tarea fallará si se actualizan campos LONGTEXT.
Otros límites
Los conjuntos de caracteres de las bases de datos de origen y de destino deben ser compatibles. Los conjuntos de caracteres incompatibles pueden causar inconsistencia en los datos o fallos en la tarea.
Las bases de datos de origen y de destino deben usar la misma zona horaria.
Utilice la función de migración de esquemas de DTS para migrar esquemas. Gestionar manualmente la migración de esquemas puede provocar fallos en la tarea debido a tipos de datos incompatibles.
El terminador
\0no se puede escribir en el clúster de PolarDB for PostgreSQL de destino. DTS elimina silenciosamente este terminador si aparece en los datos migrados, lo cual puede causar inconsistencia en los datos.Ejecute las tareas de migración fuera del horario pico. La migración completa de datos consume recursos de lectura y escritura en ambas bases de datos.
Una vez completada la migración completa de datos, el espacio de tablas utilizado en el clúster de destino será mayor que en la base de datos de origen debido a la fragmentación causada por operaciones INSERT concurrentes.
DTS reintenta las tareas de migración fallidas durante un máximo de 7 días. Antes de cambiar las cargas de trabajo a la base de datos de destino, detenga o libere cualquier tarea con errores, o ejecute
REVOKEpara eliminar los permisos de escritura de las cuentas de DTS en la base de datos de destino. De lo contrario, una tarea reanudada podría sobrescribir datos en el destino.Durante la migración, solo DTS debe escribir datos en la base de datos de destino. Las escrituras externas pueden causar inconsistencia en los datos.
Facturación
|
Tipo de migración |
Tarifa de configuración de tarea |
Tarifa de tráfico de Internet |
|
Migración de esquemas |
Gratuita |
Gratuita (se cobra solo al migrar desde Alibaba Cloud a través de Internet; consulte Billing overview) |
|
Migración completa de datos |
Gratuita |
Gratuita (se cobra solo al migrar desde Alibaba Cloud a través de Internet; consulte Billing overview) |
|
Migración incremental de datos |
De pago; consulte Billing overview |
— |
Operaciones SQL compatibles con la migración incremental
|
Tipo de operación |
Sentencias SQL |
|
DML |
INSERT, UPDATE, DELETE |
|
DDL |
CREATE TABLE (excluye sentencias con cláusulas de particionamiento, subparticionamiento o funciones; CREATE TABLE AS SELECT no es compatible); ALTER TABLE (ADD COLUMN, ADD INDEX, DROP COLUMN, DROP INDEX, MODIFY COLUMN, RENAME COLUMN); DROP TABLE; RENAME TABLE; TRUNCATE TABLE; CREATE INDEX |
Permisos de cuenta de base de datos obligatorios
| Base de datos | Migración de esquemas | 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 PolarDB for PostgreSQL | Permisos de propietario del esquema Nota
Para el clúster de PolarDB for PostgreSQL, utilice la cuenta de database owner creada durante la configuración de la base de datos. |
||
Para obtener instrucciones sobre cómo crear cuentas y otorgar permisos:
Base de datos Oracle autogestionada: Consulte Prepare an Oracle database, CREATE USER y GRANT en la documentación de Oracle.
Clúster de PolarDB for PostgreSQL: Consulte Create a database account y Database management.
Para migrar datos incrementales desde una base de datos Oracle, debe habilitar el registro de archivado y el registro suplementario en la base de datos Oracle. Consulte la sección Configure an Oracle database de "Prepare an Oracle database".
Crear una tarea de migración
-
Vaya a la página Data Migration Tasks.
Inicie sesión en Data Management (DMS) console.
En la barra de navegación superior, haga clic en DTS.
En el panel de navegación izquierdo, elija DTS (DTS) > Data Migration.
NotaLos pasos en la consola de DMS pueden variar según el modo y el diseño. Consulte Simple mode y Customize the layout and style of the DMS console para obtener más detalles.
También puede ir directamente a la página Data Migration Tasks de la nueva consola de DTS.
-
En la lista desplegable junto a Data Migration Tasks, seleccione la región donde reside la instancia de migración.
NotaEn la nueva consola de DTS, seleccione la región en la esquina superior izquierda.
-
Haga clic en Create Task. En el asistente Create Task, configure las bases de datos de origen y de destino mediante los parámetros siguientes.
AvisoDespués de configurar las bases de datos de origen y de destino, lea los limits que se muestran en la parte superior de la página antes de continuar. Omitir este paso puede provocar fallos en la tarea o inconsistencia en los datos.
Parámetros de la base de datos de origen
Parámetro
Descripción
Task Name
Nombre descriptivo para la tarea. DTS asigna un nombre automáticamente, pero un nombre significativo facilita la identificación de la tarea. Los nombres de las tareas no necesitan ser únicos.
Select an existing DMS database instance (opcional)
Seleccione una instancia de DMS existente para completar automáticamente los parámetros de la base de datos, u omita esto y configure los parámetros manualmente.
Database Type
Seleccione Oracle.
Access Method
Seleccione según dónde esté implementada 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. Predeterminado: 1521.
Oracle Type
La arquitectura de la base de datos Oracle de origen: Non-RAC Instance (configure el parámetro SID) o RAC or PDB Instance (configure el parámetro Service Name). Este ejemplo utiliza RAC or PDB Instance con el parámetro Service Name.
Database Account
La cuenta para la base de datos Oracle de origen. Consulte Required database account permissions.
Database Password
La contraseña de la cuenta de la base de datos.
Parámetros de la base de datos de destino
Parámetro
Descripción
Select an existing DMS database instance (opcional)
Seleccione una instancia de DMS existente para completar automáticamente los parámetros de la base de datos, u omita esto y configure los parámetros manualmente.
Database Type
Seleccione PolarDB for PostgreSQL.
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
La región donde reside el clúster de PolarDB for PostgreSQL de destino.
Instance ID
El ID del clúster de PolarDB for PostgreSQL de destino.
Database Name
El nombre de la base de datos de destino que recibirá los objetos migrados.
Database Account
La cuenta de la base de datos para el clúster de destino. Consulte Required database account permissions.
Database Password
La contraseña de la cuenta de la base de datos.
Haga clic en Test Connectivity and Proceed.
-
Si su base de datos de origen tiene configurada una lista blanca de direcciones IP, agregue los bloques CIDR de los servidores de DTS a la lista blanca. Luego, haga clic en Test Connectivity and Proceed.
AvisoAgregar bloques CIDR de servidores de DTS a la lista blanca de su base de datos o a las reglas de security group de su instancia de ECS introduce riesgos de seguridad. Antes de continuar, tome medidas preventivas, como aplicar credenciales seguras, limitar los puertos expuestos, autenticar llamadas a la API y revisar regularmente las reglas de la lista blanca. Alternativamente, conecte la base de datos a DTS mediante Express Connect, VPN Gateway o Smart Access Gateway para evitar la exposición a la Internet pública.
-
Configure los objetos que se van a migrar y la configuración avanzada. Uso de mayúsculas en nombres de objetos en la instancia de destino De forma predeterminada, se aplica la DTS default policy. Seleccione otra opción para alinear el uso de mayúsculas en los nombres de objetos con la base de datos de origen o de destino. Consulte Specify the capitalization of object names in the destination instance. Selección de objetos En la sección Source Objects, seleccione uno o varios objetos (columnas, tablas o bases de datos) y haga clic en el icono
para moverlos a la sección Selected Objects. En la sección Selected Objects:Para cambiar el nombre de un solo objeto, haga clic derecho sobre él. Consulte Map the name of a single object.
Para cambiar el nombre de varios objetos a la vez, haga clic en Batch Edit en la esquina superior derecha. Consulte Map multiple object names at a time.
Para filtrar filas por condición, haga clic derecho en una tabla y especifique las condiciones WHERE. Consulte Set filter conditions.
NotaSi no selecciona Incremental Data Migration, no escriba datos en la base de datos de origen durante la migración; esto es necesario para mantener la consistencia de los datos.
NotaCambiar el nombre de un objeto con la función de asignación de nombres de objetos puede impedir que se migren otros objetos que dependen de él.
Tipo de migración
Objetivo
Tipos de migración a seleccionar
Solo migración completa (no se requiere continuidad del servicio)
Schema Migration y Full Data Migration
Migración completa con continuidad del servicio
Schema Migration, Full Data Migration e Incremental Data Migration
Modo de procesamiento de tablas en conflicto
Modo
Comportamiento
Precheck and Report Errors
Comprueba si existen tablas con nombres idénticos en las bases de datos de origen y de destino. La comprobación previa solo se supera si no hay conflictos de nombres. Si se encuentran conflictos, la tarea no puede iniciarse. Para resolver conflictos, utilice la función de asignación de nombres de objetos para cambiar el nombre de los objetos migrados. Consulte Map object names.
Ignore Errors and Proceed
Omite la comprobación de conflictos de nombres. Utilice esta opción con precaución: si el origen y el destino tienen el mismo esquema, los registros con claves principales coincidentes no se migrarán; si los esquemas difieren, es posible que solo se migren columnas específicas o que la tarea falle.
-
Haga clic en Next: Advanced Settings para configurar los ajustes avanzados. Configuración de verificación de datos Para habilitar la verificación de datos después de la migración, consulte Configure data verification.
Configuración avanzada
Parámetro Descripción Select the dedicated cluster used to schedule the task DTS programa las tareas en un clúster compartido de forma predeterminada. Para utilizar un clúster dedicado, adquiera uno primero. Consulte What is a DTS dedicated cluster? Retry Time for Failed Connections Tiempo durante el cual DTS reintenta una conexión tras un fallo. Valores válidos: 10–1,440 minutos. Predeterminado: 720 minutos. Se recomienda establecer este parámetro en un valor superior a 30 minutos. Si DTS se reconecta dentro de la ventana de reintentos, la tarea de migración se reanuda; de lo contrario, falla. NotaCuando varias tareas comparten el mismo origen o destino, el tiempo de reintento establecido más recientemente se aplica a todas. Los cargos por instancia de DTS continúan durante los reintentos; libere la instancia tan pronto como se desmantelen el origen y el destino.
The wait time before a retry when other issues occur in the source and destination databases Tiempo durante el cual DTS reintenta operaciones DDL o DML que fallan después de iniciar la tarea. Valores válidos: 1–1,440 minutos. Predeterminado: 10 minutos. Se recomienda establecer este parámetro en un valor superior a 10 minutos. Este valor debe ser menor que el valor de Retry Time for Failed Connections. Enable Throttling for Full Data Migration Limita la carga de lectura/escritura en las bases de datos de origen y de destino durante la migración completa de datos. Cuando está habilitado, 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 la carga durante la migración incremental de datos. Cuando está habilitado, 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 Etiqueta opcional para identificar la instancia de DTS por tipo de entorno. Actual Write Code Formato de codificación para escribir datos en la base de datos de destino. Seleccione según sus requisitos. Configure ETL Indica si se debe habilitar la 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 la configuración de ETL. Para obtener una descripción general, consulte What is ETL? Monitoring and Alerting Indica si se deben configurar alertas para la tarea de migración. Seleccione Yes para establecer un umbral de alerta y contactos de alerta. Los contactos reciben notificaciones si la tarea falla o si la latencia de migración supera el umbral. Consulte Configure monitoring and alerting for a new DTS task. -
Haga clic en Next: Save Task Settings and Precheck.
NotaPara previsualizar los parámetros de la API utilizados para configurar esta instancia, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview API Call.
DTS ejecuta una comprobación previa antes de iniciar la tarea de migración. La tarea solo comienza después de superar dicha comprobación.
Si la comprobación previa falla en algún elemento, haga clic en View Details junto al elemento fallido, solucione el problema y vuelva a ejecutar la comprobación previa.
Si un elemento de la comprobación previa genera una advertencia: solucione el problema si no puede ignorarse; o haga clic en Confirm Alert Details > Ignore > OK > Precheck Again si puede ignorarse de forma segura. Ignorar una advertencia puede causar inconsistencia en los datos o exponer su sistema a riesgos.
Espere hasta que la tasa de éxito alcance el 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. Predeterminado: default resource group. Consulte What is Resource Management?
Instance Class
La clase de instancia determina la velocidad de migración. Seleccione según sus requisitos. Consulte Specifications of data migration instances.
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms seleccionando la casilla de verificación.
Haga clic en Buy and Start. Supervise el progreso de la migración en la página Task Management.