Preparación de la Base de Datos para Oracle GoldenGate

Descubra cómo activar el registro complementario en las tablas de la base de datos origen que se van a utilizar para la captura por parte de Extract para SQL Server y cómo depurar datos temporales de CDC más antiguos.

Puede obtener más información sobre la captura de CDC mediante lo siguiente:

Uso de la replicación de captura CDC de Oracle GoldenGate for SQL Server http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/goldengate/12c/sql_cdcrep/sql_cdcrep.html.

Activación de Registro Complementario de CDC

Con el Extract de CDC, el método de captura de datos de cambio se realiza a través de las tablas de captura de datos de cambio de SQL Server, por lo que es imprescindible que siga los procedimientos y requisitos que se indican a continuación para que Extract active, mantenga y capture correctamente los datos de cambio.

Activará el registro complementario con el comando ADD TRANDATA para que Extract pueda capturar la información necesaria para reconstruir las transacciones.

Se debe emitir ADD TRANDATA para todas las tablas que va a capturar Oracle GoldenGate, y para ello se necesita que se utilice un esquema válido para crear las tablas y los procedimientos almacenados de Oracle GoldenGate necesarios.

La activación del registro complementario para un extracto de CDC hace lo siguiente:

Para activar el registro complementario mediante la interfaz de línea de comandos, realice los siguientes pasos de alto nivel:

  1. Revise el tema Preparar usuarios y privilegios de base de datos para determinar los privilegios y pasos necesarios para activar la base de datos para la captura de datos de cambio, si aún no está definida. Es posible que se necesiten permisos elevados para GoldenGate si la base de datos no está activada para CDC, pero se pueden negar haciendo que un administrador active manualmente la base de datos para la captura de datos de cambio.

    • Para Google Cloud SQL para SQL Server, la base de datos debe activarse manualmente para la captura de cambios de datos por parte de un usuario administrador de servicio y ejecutar el siguiente comando:

      EXEC msdb.dbo.gcloudsql_cdc_enable_db 'source_database';

    • Para SQL Server y Azure SQL Managed Instance, al agregar TRANDATA se intentará definir la base de datos para Change Data Capture si el usuario tiene privilegios sysadmin; de lo contrario, un administrador de base de datos puede activar manualmente la base de datos para CDC antes de agregar TRANDATA, ejecutando el siguiente comando en la base de datos de origen:

      EXEC sys.sp_cdc_enable_db;

    • Para Amazon RDS for SQL Server, la adición de TRANDATA también intentará definir la base de datos para la captura de cambios de datos si se ha otorgado el permiso al usuario; de lo contrario, un administrador de base de datos con credenciales maestras puede activar manualmente la base de datos para CDC antes de agregar TRANDATA, ejecutando el siguiente comando en la base de datos origen:

      EXEC msdb.dbo.rds_cdc_enable_db 'source_database'

  2. En la instalación de Oracle GoldenGate de origen, asegúrese de que el archivo GLOBALS tiene el parámetro GGSCHEMA schemaname y de que el nombre de esquema utilizado se ha creado (CREATE SCHEMA schemaname) en la base de datos de origen. Este esquema lo utilizarán todos los componentes posteriores de Oracle GoldenGate creados en la base de datos; por lo tanto, se recomienda crear un esquema único que solo utilice Oracle GoldenGate, como 'ggschema', y no utilizar los esquemas de SQL Server dbo o cdc.

  3. En el sistema Oracle GoldenGate de origen, abra la interfaz de línea de comandos (cliente de administración).

  4. Conéctese a la base de datos con las credenciales de conexión a la base de datos.

  5. Ejecute el siguiente comando para cada tabla que vaya a capturar un Extract. Puede utilizar un comodín para especificar varios nombres de tabla.

    ADD TRANDATA owner.table

    ADD TRANDATA owner.*

    Si lo desea, puede designar el grupo del archivo en el que se colocarán las tablas temporales de captura de datos de cambio de SQL Server utilizando la opción FILEGROUP con el nombre del grupo existente.

    ADD TRANDATA owner.table FILEGROUP cdctablesSee ADD TRANDATA

Consulte ADD TRANDATA para obtener más información.

Depurar datos de ubicación temporal de CDC

Al activar el registro complementario, los datos que necesita Extract para reconstruir transacciones se almacenan en una serie de tablas del sistema CDC de SQL Server, así como en objetos de Oracle GoldenGate que se utilizan para realizar un seguimiento del orden de las operaciones en una transacción. Estas tablas requieren una depuración rutinaria para reducir el almacenamiento de datos en la base de datos. Como parte de la activación del registro complementario mediante TRANDATA, SQL Server crea su propio trabajo de limpieza de captura de datos de cambio, sin embargo, este trabajo no sabe que un Extract puede seguir necesitando datos de estas tablas del sistema CDC y puede eliminar esos datos antes de que el Extract tenga la oportunidad de capturarlos.

Si los datos que necesita Extract durante el procesamiento se han eliminado de las tablas del sistema CDC, es posible que se requiera una de las siguientes acciones correctivas:

Para solucionar la situación de que los datos de CDC se eliminen antes de que un Extract pueda procesarlos, Oracle GoldenGate for SQL Server necesita que se cree una tarea Depurar datos de cambio. Esta tarea depurará los datos temporales de CDC al tiempo que garantiza que no se depurará ningún dato que la extracción aún no haya procesado.

Utilice los siguientes pasos inmediatamente después de activar el registro complementario (TRANDATA) y antes de iniciar Extract, para crear la tarea Depurar datos de cambio de Oracle GoldenGate. La tarea Depurar datos de cambio se ejecuta en el servicio de administración y suprimirá automáticamente el trabajo de limpieza de CDC de SQL Server cuando se cree por primera vez. No hay ningún trabajo de agente de SQL Server para la tarea Depurar datos de cambio, ya que lo ejecuta el servicio de administración. Por lo tanto, el servicio de administración debe estar en ejecución para que la tarea de limpieza funcione correctamente.

Para crear una tarea Depurar datos de cambio:

Con Oracle GoldenGate for Microservices Architecture, después de agregar TRANDATA a las tablas, pero antes de iniciar Extract, se debe crear una tarea Depurar datos de cambio para realizar la limpieza de CDC en la base de datos. Esto se puede realizar mediante una de las siguientes acciones:

Para crear una tarea Depurar datos de cambio mediante la interfaz de usuario web del servicio de administración: 1. Expanda la sección Tareas en el panel izquierdo.

  1. Haga clic en Depurar datos de cambio en la página Tareas.

  2. Haga clic en el signo más para mostrar un formulario y complete los campos necesarios para crear una nueva tarea de depuración de datos de cambio.

    1. Nombre de operación: nombre de la tarea de depuración que se va a crear.

    2. Activado: defina la tarea como activada, que es el valor por defecto.

    3. Alias de Credencial y Dominio de Credencial: Seleccione un alias de credencial existente para la base de datos origen.

    4. Mantener regla: este valor determina en horas o días la cantidad de datos temporales de CDC que se van a mantener en la base de datos de origen. En función de la versión de Oracle GoldenGate, los valores por defecto son 3 días o 1 hora. Los períodos de retención de datos CDC más bajos reducen la cantidad de datos temporales CDC almacenados en la base de datos, pero limitan la capacidad de un usuario para cambiar la posición de Extract a un tiempo anterior a los datos que existen en las tablas temporales.

    5. Frecuencia de Depuración: este valor representa la frecuencia con la que se ejecuta la tarea, con un valor por defecto de cada 10 minutos. Se recomienda mantener el valor por defecto a menos que la sobrecarga de la tarea de depuración afecte al rendimiento de la base de datos durante períodos de alta actividad del usuario. Nota: Cree solo una tarea Depurar Datos de Cambio por base de datos de origen.

Puede encontrar información adicional sobre el trabajo de limpieza de CDC de Oracle GoldenGate en Consideraciones operativas del método de captura de CDC.

Activación de la detección de bucle bidireccional

La detección de bucles es un requisito para las implantaciones bidireccionales de Oracle GoldenGate, de modo que un Extract para una base de datos origen no vuelva a capturar las transacciones enviadas por un Replicat desde otra base de datos origen.

Con el método de captura de extracciones de CDC, por defecto, cualquier transacción confirmada por un Replicat en una base de datos en la que se configura un Extract volverá a capturar esa transacción desde el Replicat siempre que el registro complementario esté activado para las tablas a las que el Replicat entrega.

Para ignorar las transacciones de recaptura que se aplican mediante un Replicat, debe utilizar el parámetro TRANLOGOPTIONS EXCLUDEFILTERTABLE para el extracto de CDC. La tabla utilizada como tabla de filtrado será la tabla de puntos de control de Oracle GoldenGate que debe crear para Replicat.

Para crear una tabla de filtros y activar el registro adicional:

Los siguientes pasos requieren un usuario de base de datos que sea miembro del rol de administradores del sistema de SQL Server (sysadmin).

  1. En el sistema de origen, ejecute Admin Client.

  2. Conéctese al despliegue desde el cliente de administración.

  3. Ejecute el siguiente comando para conectarse a la base de datos.

    DBLOGIN USERIDALIAS alias

  4. Cree la tabla de puntos de control de Oracle GoldenGate que utiliza Replicat para entregar los datos a la base de datos origen.

    Ejemplo: ADD CHECKPOINTTABLE ogg.ggchkpt

    Se recomienda utilizar el mismo nombre de esquema que el utilizado en el parámetro GGSCHEMA del archivo GLOBALS.

  5. Active el registro complementario para la tabla de puntos de control recién creada.

    Ejemplo: ADD TRANDATA ogg.ggchkpt

  6. Agregue el Replicat con la información de la tabla de puntos de control.

    Ejemplo: ADD REPLICAT repe, EXTTRAIL north/ea,checkpointtable ogg.ggchkpt

  7. Configure el Extract con el parámetro EXCLUDEFILTERTABLE mediante la tabla de puntos de control de Replicat para la tabla de filtrado.

    TRANLOGOPTIONS EXCLUDEFILTERTABLE ogg.ggchkpt