Transmite datos desde bases de datos de Oracle

En esta sección, se incluye la siguiente información:

  • El comportamiento de Datastream cuando controla los datos que se extraen de una base de datos de Oracle de origen
  • Las versiones de la base de datos de Oracle que Datastream admite
  • Una descripción general de cómo configurar una base de datos de Oracle de origen para que los datos se puedan transmitir a un destino
  • Limitaciones conocidas para usar la base de datos de Oracle como fuente

Comportamiento

Datastream admite dos métodos para extraer cambios en los datos de los archivos de registro de rehacer en línea: el lector de registros binarios de Oracle (vista previa) y Oracle LogMiner.

Con el método del lector de registros binarios (vista previa), se observa el siguiente comportamiento:

  • Si hay un retraso de lectura cuando se extraen los cambios de los archivos de registro en línea, Datastream extrae los cambios de los archivos de registro archivados.

  • Datastream replica solo los cambios confirmados en el destino. No se replican las transacciones no confirmadas ni revertidas.

  • El lector binario admite la replicación de columnas VARCHAR2 de Oracle de más de 4,000 caracteres.

Datastream también admite la función Oracle LogMiner para exponer los cambios en los datos. El método tiene el siguiente comportamiento:

  • Se pueden seleccionar todos los esquemas o los esquemas específicos de una base de datos determinada, así como todas las tablas de los esquemas o tablas específicas.
  • Se replican todos los datos históricos.
  • Se replican todos los cambios del lenguaje de manipulación de datos (DML), como las inserciones, las actualizaciones y las eliminaciones de las bases de datos y las tablas especificadas.
  • Datastream replica los cambios confirmados y, en algunos casos, los no confirmados en el destino. Datastream lee los cambios no confirmados. En caso de reversión, los registros de salida de Datastream también incluyen la operación opuesta. Por ejemplo, si hay una operación INSERT revertida, los registros de salida también contendrán una operación DELETE correspondiente. En este caso, el evento aparecerá como un evento DELETE con solo el ROWID.

Reabastecimiento basado en ROWID

En Oracle, ROWID es una pseudocolumna que almacena identificadores únicos para las filas de una tabla. Datastream usa los valores ROWID para sus operaciones de reabastecimiento. Por este motivo, te recomendamos que no realices ninguna acción que pueda cambiar los valores ROWID en tu base de datos de Oracle de origen hasta que se complete la operación de reabastecimiento.

Las acciones que pueden cambiar los valores ROWID incluyen las siguientes:

  • Movimiento físico de las filas:

    • Operaciones de exportación e importación: Cuando exportas una tabla y, luego, la vuelves a importar, la ubicación física de las filas puede cambiar, lo que genera valores ROWID nuevos.
    • Comando ALTER TABLE (...) MOVE: Mover una tabla a un espacio de tabla diferente puede cambiar el almacenamiento físico y generar cambios en ROWID.
    • Comando ALTER TABLE (...) SHRINK SPACE: Este comando comprime la tabla, lo que puede mover filas y afectar sus valores ROWID.
    • Operaciones de partición: Dividir, combinar o mover particiones puede cambiar la ubicación física de las filas y sus valores ROWID.
  • Operaciones de Flashback:

    • Comando FLASHBACK TABLE: Restablecer una tabla a un estado anterior implica borrar y volver a insertar filas, lo que crea valores ROWID nuevos.
    • FLASHBACK_TRANSACTION_QUERY: Es similar a FLASHBACK TABLE. Revertir una transacción puede causar cambios en ROWID si se borraron o actualizaron filas dentro de la transacción.

Versiones

Datastream admite las siguientes versiones de la base de datos de Oracle:

  • Oracle 11g, versión 11.2.0.4 (solo compatible con el método CDC de Logminer)
  • Oracle 12c, versión 12.1.0.2
  • Oracle 12c, versión 12.2.0.1
  • Oracle 18c
  • Oracle 19c
  • Oracle 21c

Datastream admite los siguientes tipos de bases de datos de Oracle:

  • Autoalojada de forma local o en cualquier proveedor de servicios en la nube
  • Amazon RDS for Oracle
  • Oracle Cloud
  • Oracle Exadata
  • Oracle RAC
  • Base de datos en espera de Oracle Active Data Guard

Configuración

Para configurar una base de datos de Oracle de origen de modo que los datos se puedan transmitir a un destino, debes configurar la base de datos para otorgar acceso, configurar el registro y definir una política de retención.

Consulta Configura una base de datos de Oracle de origen para obtener información sobre cómo configurar esta base de datos para que Datastream pueda extraer datos de ella a un destino.

Prácticas recomendadas

En esta sección, se describen las prácticas recomendadas para configurar tu fuente de Oracle para usarla con Datastream.

Distinción entre mayúsculas y minúsculas para el lector binario

Cuando configures una fuente de Oracle con el método CDC del lector binario y especifiques nombres de directorio para los registros de rehacer y de archivo, ten en cuenta que los nombres distinguen mayúsculas de minúsculas. Asegúrate de que los nombres de directorio que proporcionas en el perfil de conexión de Datastream coincidan exactamente con el uso de mayúsculas y minúsculas de los nombres de directorio en tu base de datos de Oracle.

Simultaneidad de CDC

Para minimizar el retraso de replicación, asegúrate de que Datastream pueda procesar los registros de rehacer tan rápido como los cree tu fuente de Oracle. Cuando se usa el método CDC del lector binario, la simultaneidad de Datastream está en el nivel del archivo de registro de rehacer: cada tarea definida por maxConcurrentCdcTasks procesa un archivo a la vez.

Te recomendamos que uses la siguiente metodología:

  • Ajusta la simultaneidad en Datastream: Identifica la cantidad promedio de cambios de registro de rehacer durante las horas pico de tu empresa y configura el maxConcurrentCdcTasks en consecuencia. Para obtener más información, consulta Cantidad máxima de tareas de CDC.
  • Configura el cambio de registro de Oracle: Configura Oracle para que cambie los registros con frecuencia, por ejemplo, cada 10 a 20 minutos. Esto crea un flujo constante de unidades de trabajo más pequeñas, lo que permite que las tareas simultáneas de Datastream funcionen en paralelo de manera eficaz.

Te recomendamos que optimices la configuración para que haya suficientes tareas simultáneas en Datastream para controlar la creación frecuente de registros de rehacer más pequeños de Oracle. Para obtener más información, consulta los controles de simultaneidad de transmisión.

Limitaciones conocidas

Entre las limitaciones conocidas para usar la base de datos de Oracle como fuente, se incluyen las siguientes:

  • Las transmisiones se limitan a 10,000 tablas. Si una transmisión incluye más de 10,000 tablas, es posible que se produzcan errores.
  • Datastream admite la arquitectura multiusuario de Oracle (CDB/PDB). Sin embargo, solo puedes replicar una sola base de datos conectable en una transmisión.
  • No se admite la base de datos autónoma de Oracle.
  • En el caso de las tablas que no tienen una clave primaria, Datastream usa el ROWID de la fila para realizar una operación de combinación en el lado del consumidor. Ten en cuenta que es posible que el ROWID no sea único. Si borras y vuelves a insertar una fila con la utilidad de exportación/importación de Oracle, por ejemplo, es posible que cambie el ROWID de la fila. Si borras una fila, Oracle puede volver a asignar su ROWID a una fila nueva que se inserte más adelante.
  • No se admiten las tablas organizadas por índices (IOT).
  • Las tablas temporales no son compatibles.
  • No se admiten las columnas de los tipos de datos ANYDATA, BFILE, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, LONG/LONG RAW, SDO_GEOMETRY, UDT, UROWID y XMLTYPE, y se reemplazan por valores NULL.
  • Para transmitir columnas de tipos de datos de objetos grandes, como objetos grandes binarios (BLOB), objetos grandes de caracteres (CLOB) y objetos grandes de caracteres nacionales (NCLOB), debes incluir la marca streamLargeObjects en la configuración de tu transmisión. Si no incluyes la marca, Datastream no transmite esas columnas y se reemplazan por valores NULL en el destino. Para obtener más información, consulta Habilita la transmisión de objetos grandes para fuentes de Oracle.
  • En el caso de Oracle 11g, no se admiten las tablas que tienen columnas de los tipos de datos ANYDATA o UDT, y no se replicará la tabla completa.
  • No se replica Oracle Label Security (OLS).
  • Datastream recupera periódicamente el esquema más reciente de la fuente a medida que se procesan los eventos. Si cambia un esquema, es posible que se lean algunos eventos del esquema nuevo mientras aún se aplica el esquema anterior. En este caso, Datastream detecta el cambio de esquema, activa una recuperación de esquema y vuelve a procesar los eventos fallidos.
  • No todos los cambios en el esquema de origen se pueden detectar automáticamente, en cuyo caso pueden ocurrir daños en los datos. Los siguientes cambios de esquema pueden causar daños en los datos o que no se puedan procesar los eventos en etapas posteriores:
    • Descarta columnas
    • Agregar columnas en medio de una tabla
    • Cambiar el tipo de datos de una columna
    • Reordenar las columnas
    • Descarta tablas (relevante si la misma tabla se vuelve a crear con datos nuevos agregados)
    • Truncar tablas
  • Datastream no admite la replicación de vistas.
  • Datastream admite vistas materializadas. Sin embargo, las vistas nuevas creadas mientras se ejecuta la transmisión no se reabastecen automáticamente.
  • Cuando se usa el método Oracle LogMiner, no se admiten las instrucciones SAVEPOINT y pueden causar discrepancias en los datos en caso de reversión.
  • Cuando se usa el método Oracle LogMiner, Datastream no admite la replicación de tablas y columnas cuyos nombres superen los 30 caracteres.
  • Datastream admite las siguientes codificaciones de grupo de caracteres para bases de datos de Oracle:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • IW8ISO8859P8
    • JA16SJIS
    • JA16SJISTILDE
    • KO16MSWIN949
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5
  • Datastream no admite la replicación de valores de fecha cero. Esas fechas se reemplazan por valores NULL.
  • Datastream no admite la conectividad directa a bases de datos con la función Single Client Access Name (SCAN) en entornos de Oracle Real Application Clusters (RAC). Para obtener información sobre posibles soluciones, consulta Comportamiento y limitaciones de la fuente de Oracle.
  • Si la fuente es una base de datos en espera de Oracle Active Data Guard, Datastream no admite la replicación de datos encriptados.

Limitaciones adicionales cuando se usa el lector binario

  • El lector binario no admite las siguientes funciones:

    • Encriptación de base de datos transparente (TDE)
    • Compresión híbrida en columnas
    • Archivos seguros
    • ASM no es compatible con las fuentes de Amazon RDS.
    • El método CDC del lector binario no admite Oracle 11g ni versiones anteriores.

¿Qué sigue?