Utilice Data Transmission Service (DTS) para sincronizar datos de forma continua desde una base de datos Oracle autogestionada hacia un clúster de PolarDB for PostgreSQL (Compatible with Oracle). DTS admite la sincronización de esquemas, la sincronización completa de datos y la sincronización incremental de datos, lo que mantiene el clúster de destino sincronizado mientras la fuente Oracle continúa atendiendo tráfico de producción.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un clúster de PolarDB for PostgreSQL (Compatible with Oracle) con una capacidad de almacenamiento superior al espacio utilizado en la base de datos Oracle de origen. Para crear uno, consulte Create a PolarDB for PostgreSQL (Compatible with Oracle) cluster. Para obtener información sobre las versiones compatibles de las bases de datos de origen y destino, consulte Synchronization solution overview.
Una base de datos creada en el clúster de destino para recibir los datos sincronizados. Consulte Database management.
La base de datos Oracle autogestionada ejecutándose en modo ARCHIVELOG con un periodo de retención de registros suficiente. Consulte ARCHIVELOG.
El registro suplementario habilitado en la base de datos Oracle de origen, con
supplemental_log_data_pkysupplemental_log_data_uiactivados. Para obtener más contexto, consulte Supplemental Logging.Una evaluación de base de datos completada mediante Advanced Database & Application Migration (ADAM). ADAM analiza su esquema de Oracle e identifica los objetos que DTS no puede sincronizar, para que pueda resolver problemas de compatibilidad antes de iniciar la tarea. Consulte Database evaluation overview y Limitations and preparations for Oracle databases.
Facturación
|
Tipo de sincronización |
Precio |
|
Sincronización de esquemas y sincronización completa de datos |
Sin costo |
|
Sincronización incremental de datos |
Con cargo. Consulte Billing overview |
Operaciones SQL compatibles
|
Tipo de operación |
Sentencias SQL |
|
DML (lenguaje de manipulación de datos) |
INSERT, UPDATE y DELETE |
|
DDL (lenguaje de definición de datos) |
CREATE TABLE (excluye CREATE TABLE AS SELECT y tablas con particiones o subparticiones); ALTER TABLE (ADD COLUMN, ADD INDEX, DROP COLUMN, DROP INDEX, MODIFY COLUMN, RENAME COLUMN); DROP TABLE; RENAME TABLE; TRUNCATE TABLE; CREATE INDEX |
Permisos de cuentas de base de datos
|
Base de datos |
Permisos obligatorios |
Referencia |
|
Oracle autogestionado |
Permisos detallados |
|
|
PolarDB for PostgreSQL (Compatible with Oracle) |
Permisos de propietario del esquema (se recomienda una cuenta con privilegios) |
Habilite el modo ARCHIVELOG y el registro suplementario para capturar cambios incrementales de datos. Consulte Database configuration.
Límites
Límites de la base de datos de origen
|
Límite |
Detalles |
|
Clave primaria o restricción UNIQUE obligatoria |
Las tablas deben tener una clave primaria o una restricción UNIQUE con valores de campo únicos. Las tablas sin esta configuración generan datos duplicados en el destino. |
|
Longitud del nombre de tabla (Oracle 12c y posteriores) |
Los nombres de tabla no deben exceder los 30 bytes. |
|
Máximo de tablas por tarea (sincronización a nivel de tabla con mapeo) |
1,000 tablas. Para superar este límite, divida las tablas en varias tareas o sincronice toda la base de datos como un solo objeto. |
|
Oracle RAC conectado mediante Express Connect |
Si la base de datos de origen es un Oracle RAC conectado a través de un circuito Express Connect, configure una de sus VIP en los ajustes de conexión. Si la base de datos Oracle autogestionada es un clúster RAC, no se puede configurar una IP SCAN; debe usar una VIP en los ajustes de conexión. El failover de nodos RAC no es compatible con esta configuración. |
|
Registros redo y registros de archivo |
Los registros redo y los registros de archivo deben estar habilitados. |
|
Retención de registros |
Para tareas solo incrementales: conserve los registros durante al menos 24 horas. Para tareas completas + incrementales: conserve los registros durante al menos 7 días; una vez finalizada la sincronización completa, puede reducir este periodo a 24 horas. Si DTS no puede acceder a estos registros, la tarea podría fallar o provocar pérdida de datos; este escenario no está cubierto por el Acuerdo de Nivel de Servicio (SLA) de DTS. |
|
Cambio entre principal y secundaria |
Si ocurre un cambio entre principal y secundaria en la base de datos de origen durante la sincronización, la tarea falla. |
|
Cadena vacía VARCHAR2 con restricción NOT NULL |
Oracle trata una cadena VARCHAR2 vacía como nula. Si la columna de destino tiene una restricción NOT NULL, la tarea falla. |
|
Directiva de auditoría detallada (FGA) |
Si FGA está habilitado en una tabla, DTS no puede detectar la pseudocolumna |
|
Actualización exclusiva de campos de texto grandes |
No compatible. La tarea falla si una sentencia UPDATE modifica únicamente campos de texto grandes. |
|
DDL durante la sincronización de esquemas o completa |
No ejecute operaciones DDL que modifiquen el esquema durante la sincronización de esquemas o la sincronización completa. Las consultas de DTS provocan bloqueos de metadatos en el origen que también pueden bloquear operaciones DDL en dicho origen. |
Otros límites
|
Límite |
Detalles |
|
Oracle Data Pump durante la sincronización incremental |
No utilice Oracle Data Pump para escribir en la base de datos de origen durante la sincronización incremental, ya que podría producirse pérdida de datos. |
|
Tablas externas |
No se pueden sincronizar. |
|
Momento de la sincronización |
Ejecute la sincronización fuera del horario pico. La sincronización inicial completa de datos consume recursos de lectura y escritura tanto en la base de datos de origen como en la de destino. |
|
Tamaño del tablespace tras la sincronización completa |
Las operaciones INSERT simultáneas durante la sincronización completa causan fragmentación de tablas en el destino. El tamaño del tablespace de destino será mayor que el del origen una vez finalizada la sincronización completa. |
|
Cálculo de la latencia de sincronización |
DTS calcula la latencia basándose en la marca de tiempo del último registro sincronizado y la marca de tiempo actual del origen. Si no se ejecutan operaciones DML en el origen durante un periodo prolongado, la latencia reportada podría ser inexacta. Para mantener la precisión de la latencia, cree una tabla de latidos al sincronizar una base de datos completa; DTS la actualiza cada segundo. |
|
Índices únicos basados en ROWID |
El clúster de destino genera índices únicos (por ejemplo, |
|
Terminador de cadena |
El clúster de destino no admite el terminador de cadena |
|
Restricciones CHECK |
Las restricciones CHECK del origen se convierten en restricciones NOT NULL en el destino. |
|
Compatibilidad de conjuntos de caracteres |
Los conjuntos de caracteres del origen y del destino deben ser compatibles. La incompatibilidad provoca inconsistencia de datos o fallos en la tarea. |
|
Compatibilidad de tipos de datos |
Utilice la función de sincronización de esquemas de DTS para evitar fallos derivados de tipos de datos incompatibles. |
|
Zona horaria |
El origen y el destino deben usar la misma zona horaria. |
|
Tipos definidos por el usuario |
Se sincronizan con el destino. Los objetos de tipo integrado generados automáticamente por Oracle no se sincronizan, ya que el destino ya los admite. |
|
Escrituras externas en el destino durante la sincronización |
No escriba datos desde fuentes distintas a DTS en el destino durante la sincronización, ya que podría producirse inconsistencia de datos. |
|
Secuencias |
DTS valida el contenido de los datos, pero no los metadatos como las secuencias. Valide las secuencias manualmente. Después de migrar su negocio al destino, las secuencias no se incrementarán a partir del valor máximo del origen. Actualice los valores de las secuencias en el destino antes de realizar el cambio. Consulte Update the sequence value in the destination database. |
|
|
En una tarea de sincronización completa o incremental, si las tablas a sincronizar contienen claves foráneas, desencadenadores o desencadenadores de eventos: DTS establece |
|
Recuperación tras fallo de tarea |
Si una tarea falla, el personal de soporte de DTS intenta restaurarla en un plazo de 8 horas. Pueden reiniciar la tarea o ajustar sus parámetros (no los parámetros de la base de datos). |
Durante la sincronización de esquemas, DTS sincroniza las claves foráneas del origen al destino. Durante la sincronización completa e incremental, DTS deshabilita temporalmente las comprobaciones de restricciones y las operaciones en cascada de claves foráneas a nivel de sesión. Puede producirse inconsistencia de datos si se ejecutan operaciones de actualización o eliminación en cascada en el origen mientras la tarea está activa.
Crear una tarea de sincronización
Paso 1: Abrir la lista de tareas de sincronización de datos
Abra la lista de tareas mediante la consola de DTS o la consola de DMS.
Consola de DTS
Inicie sesión en la DTS console.
En el panel de navegación izquierdo, haga clic en Data Synchronization.
En la esquina superior izquierda, seleccione la región donde se ubicará la instancia de sincronización.
Consola de DMS
Nota
Los pasos pueden variar según el modo y el diseño de la consola de DMS. Consulte Simple mode console y Customize the layout and style of the DMS console.
Inicie sesión en la DMS console.
En la barra de menú superior, elija .
A la derecha de Data Synchronization Tasks, seleccione la región de la instancia de sincronización.
Paso 2: Configurar la tarea
Haga clic en Create Task.
-
(Opcional) En la esquina superior derecha, haga clic en New Configuration Page para cambiar a la nueva interfaz de configuración.
Si el botón muestra Back to Previous Version , ya se encuentra en la nueva página de configuración. Se recomienda usar la nueva versión.
-
Configure las bases de datos de origen y destino con los siguientes parámetros.
Configuración de la tarea
Parámetro
Descripción
Task Name
DTS genera un nombre automáticamente. Especifique un nombre descriptivo para facilitar su identificación; el nombre no necesita ser único.
Base de datos de origen
Parámetro
Descripción
Select Existing Connection
Seleccione una registered database instance de la lista o deje el campo vacío y configure los campos siguientes manualmente. En la consola de DMS, este campo aparece como Select a DMS database instance.
Database Type
Seleccione Oracle.
Access Method
Seleccione el método que coincida con el despliegue de su base de datos de origen. Este tema utiliza Self-managed Database on ECS como ejemplo. Para otros métodos de acceso y los pasos adicionales que requieran, consulte Overview of preparations.
Instance Region
Seleccione la región donde reside la base de datos Oracle de origen.
ECS Instance ID
Seleccione el ID de la instancia ECS que ejecuta la base de datos Oracle de origen.
Port Number
Introduzca el puerto de servicio de la base de datos Oracle de origen. El valor predeterminado es 1521.
Oracle Type
Seleccione Non-RAC Instance y proporcione el SID, o seleccione RAC or PDB Instance y proporcione el Service Name. Este tema utiliza RAC or PDB Instance con un Service Name.
Database Account
Introduzca la cuenta de la base de datos. Para consultar los requisitos de permisos, vea Database account permissions.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
Seleccione Non-encrypted o SSL-encrypted. Para el cifrado SSL, cargue el CA Certificate e introduzca la CA Key. El cifrado SSL solo está disponible cuando Access Method es Express Connect, VPN Gateway, or Smart Access Gateway y Oracle Type es RAC or PDB Instance.
Base de datos de destino
Parámetro
Descripción
Select Existing Connection
Seleccione una instancia de base de datos registrada de la lista o deje el campo vacío y configure los campos siguientes manualmente. En la consola de DMS, este campo aparece como Select a DMS database instance.
Database Type
Seleccione PolarDB (Compatible with Oracle).
Access Method
Seleccione Alibaba Cloud Instance.
Instance Region
Seleccione la región donde se encuentra el clúster de destino.
Instance ID
Seleccione el ID del clúster de destino PolarDB for PostgreSQL (Compatible with Oracle).
Database Name
Introduzca el nombre de la base de datos en el clúster de destino que recibirá los objetos sincronizados.
Database Account
Introduzca la cuenta de la base de datos para el clúster de destino. Para consultar los requisitos de permisos, vea Database account permissions.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Encryption
Seleccione Non-encrypted o SSL-encrypted. Para el cifrado SSL, cargue el CA Certificate.
-
Haga clic en Test Connectivity and Proceed en la parte inferior de la página. En el cuadro de diálogo CIDR Blocks of DTS Servers, haga clic en Test Connectivity.
Los bloques de direcciones IP de los servidores DTS deben agregarse a la configuración de seguridad de las bases de datos de origen y destino antes de realizar la prueba de conectividad. DTS puede agregarlos automáticamente o usted puede hacerlo manualmente. Consulte Add the IP address whitelist of DTS servers .
Paso 3: Seleccionar objetos para sincronizar
-
En la página Configure Objects, configure los siguientes parámetros.
Parámetro Descripción Synchronization Types DTS siempre selecciona Incremental Data Synchronization. De forma predeterminada, Schema Synchronization y Full Data Synchronization también están seleccionados. DTS utiliza los datos completos de los objetos seleccionados para inicializar el clúster de destino antes de iniciar la sincronización incremental. Processing Mode of Conflicting Tables Precheck and Report Errors: Comprueba si existen tablas con el mismo nombre en el destino. Si se encuentra alguna, la comprobación previa reporta un error y la tarea no se inicia. Para gestionar conflictos de nombres sin eliminar ni renombrar la tabla de destino, asigne un nombre diferente al objeto. Consulte Database Table Column Name Mapping. Ignore Errors and Proceed: Omite la comprobación de conflictos de nombres. AvisoEsta opción puede causar inconsistencia de datos. Durante la sincronización completa, DTS omite los registros de origen que entran en conflicto con los registros de destino. Durante la sincronización incremental, DTS sobrescribe los registros de destino con los registros de origen. Si los esquemas son inconsistentes, la inicialización de datos puede fallar parcial o totalmente.
Capitalization of Object Names in Destination Instance Establece la directiva de mayúsculas y minúsculas para los nombres de bases de datos, tablas y columnas en el destino. El valor predeterminado es DTS default policy. Consulte Directiva de mayúsculas y minúsculas para nombres de objetos de destino. Source Objects Haga clic en los objetos del cuadro Source Objects y luego en el icono de flecha derecha para moverlos al cuadro Selected Objects. Puede seleccionar objetos a nivel de base de datos, tabla o columna. Selected Objects Si no utiliza una cuenta con privilegios, o si el nombre del esquema de origen no coincide con las convenciones de nomenclatura de PolarDB for PostgreSQL (Compatible with Oracle), haga clic derecho sobre el esquema en el panel Selected Objects, abra el cuadro de diálogo Edit Schema y actualice el Schema Name para que coincida con la base de datos de destino. Consulte Map table and column names. Para seleccionar operaciones SQL específicas para una base de datos o tabla, haga clic derecho sobre el objeto y elija las operaciones en el cuadro de diálogo. Para aplicar filtros de fila, haga clic derecho sobre una tabla y configure las condiciones de filtro. Consulte Set filter conditions. Renombrar un objeto puede interrumpir la sincronización de otros objetos que dependan de él. -
Haga clic en Next: Advanced Settings y configure los siguientes parámetros.
Parámetro Descripción Dedicated Cluster for Task Scheduling DTS utiliza un clúster compartido de forma predeterminada. Para mayor 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 la conexión tras un fallo. Valor predeterminado: 720 minutos. Rango válido: 10–1,440 minutos. Establezca un valor de 30 minutos o más. Si la conexión se restablece dentro de este periodo, la tarea se reanuda automáticamente. NotaCuando varias instancias de DTS comparten un origen o destino, DTS aplica la duración de reintento más corta configurada entre todas las instancias. DTS cobra por el tiempo de ejecución durante los reintentos de conexión.
Retry Time for Other Issues Tiempo durante el cual DTS reintenta tras errores que no son de conexión (por ejemplo, errores de ejecución DDL o DML). Valor predeterminado: 10 minutos. Rango válido: 1–1,440 minutos. Establezca un valor de 10 minutos o más. Este valor debe ser menor que Retry Time for Failed Connections. Enable Throttling for Full Data Synchronization Limita las tasas de lectura y escritura de la sincronización completa para reducir la carga en el destino. 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 Full Data Synchronization está seleccionado. También puede ajustar la tasa mientras la tarea se ejecuta. Enable Throttling for Incremental Data Synchronization Limita las tasas de sincronización incremental. Configure RPS of Incremental Data Synchronization y Data synchronization speed for incremental synchronization (MB/s). Environment Tag Adjunte una etiqueta de entorno a la instancia para su identificación. Actual Write Code Seleccione el tipo de codificación para los datos escritos en el destino. Configure ETL Elija si desea habilitar la extracción, transformación y carga (ETL). Seleccione Yesnotificaciones de alerta 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 deshabilitar ETL. Para obtener contexto sobre ETL, consulte What is ETL? Monitoring and Alerting Configure alertas para fallos de tarea o latencia que supere un umbral. Seleccione Yes para establecer un umbral de alerta y contactos de notificación. Consulte Configure monitoring and alerting during task configuration. Haga clic en Data Verification para configurar una tarea de verificación de datos. Consulte Configure data verification.
Paso 4: Guardar la tarea y ejecutar la comprobación previa
Para previsualizar los parámetros de API de esta configuración, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters.
Haga clic en Next: Save Task Settings and Precheck para guardar la configuración e iniciar la comprobación previa.
DTS ejecuta una comprobación previa antes de iniciar cualquier tarea de sincronización. La tarea solo se inicia si la comprobación previa se supera correctamente.
Si la comprobación previa falla, haga clic en View Details junto al elemento fallido, solucione el problema y vuelva a ejecutar la comprobación previa.
Si la comprobación previa genera advertencias que no se pueden ignorar, haga clic en View Details , solucione el problema y vuelva a ejecutarla.
Si la comprobación previa genera advertencias que se pueden ignorar, haga clic en Confirm Alert Details > Ignore > OK , y luego haga clic en Precheck Again para continuar. Ignorar advertencias puede causar inconsistencia de datos.
Paso 5: Adquirir la instancia
Cuando la Success Rate alcance el 100 %, haga clic en Next: Purchase Instance.
-
En la página Purchase, seleccione el método de facturación y las especificaciones de la instancia.
Parámetro
Descripción
Billing Method
Subscription: Pago anticipado por una duración fija. Rentable para tareas continuas a largo plazo. Pay-as-you-go: Facturación por hora según el uso real. Adecuado para tareas a corto plazo o de prueba; libere la instancia en cualquier momento para detener los cargos.
Resource Group Settings
El resource group para la instancia. Valor predeterminado: default resource group. Consulte What is Resource Management?
Instance Class
Determina el rendimiento de la sincronización. Seleccione según el volumen de datos y los requisitos de throughput. Consulte Data synchronization link specifications.
Subscription Duration
Disponible solo para facturación Subscription. Opciones mensuales: 1–9 meses. Opciones anuales: 1, 2, 3 o 5 años.
Seleccione la casilla Data Transmission Service (Pay-as-you-go) Service Terms.
Haga clic en Buy and Start y luego en OK en el cuadro de diálogo de confirmación.
Monitoree la tarea en la página de sincronización de datos.
Pasos siguientes
Una vez iniciada la tarea de sincronización y completamente inicializado el clúster de destino, valide los datos en el destino antes de cambiar el tráfico de negocio:
Actualice los valores de las secuencias en el destino antes de realizar el cambio. Consulte Update the sequence value in the destination database.
Compruebe que
session_replication_rolese haya restablecido aoriginen el destino después de liberar la tarea de DTS.Verifique que los conjuntos de caracteres y las zonas horarias coincidan entre el origen y el destino para evitar problemas de datos posteriores al cambio.