Consideraciones operativas del método de captura de CDC
Obtenga información sobre las opciones, las funciones y los valores recomendados de captura de CDC de SQL Server.
Ajuste de la Captura de Datos de Cambios de SQL Server
La siguiente información es útil para mejorar el rendimiento de captura de Extract.
-
Con los despliegues remotos, la latencia de red baja es importante y se recomienda que la latencia de red entre el servidor de Oracle GoldenGate y el servidor de base de datos de origen sea inferior a 1 milisegundo.
-
Asegúrese de que las estadísticas de creación automática y actualización automática están activadas para la base de datos. El mantenimiento de estadísticas en las tablas
cdc.OracleGG_#####_CT tables,cdc.lsn_time_mapping tableyOracleGGTranTableses crucial para el rendimiento y la latencia del Extract. -
El trabajo de captura de datos de cambio de SQL Server recopila datos del log de transacciones de SQL Server y los carga en las tablas temporales de captura de datos de cambio de la base de datos.
Como parte del trabajo que se crea, hay varios parámetros de ajuste disponibles que se pueden utilizar, y en el siguiente artículo se puede encontrar información sobre cómo ajustar mejor el trabajo: https://technet.microsoft.com/en-us/library/dd266396(v=sql.100).aspx
Como recomendación general, debe cambiar el intervalo de sondeo del trabajo de captura de datos de cambios de SQL Server del valor por defecto de 5 segundos a 1 segundo.
Para cambiar el intervalo de sondeo predeterminado del trabajo de captura de CDC, ejecute las siguientes consultas en la base de datos:
EXEC [sys].[sp_cdc_change_job] @job_type = N'capture', @pollinginterval = 1, GO, --stops cdc job EXEC [sys].[sp_cdc_stop_job], @job_type = N'capture', GO, --restarts cdc job for new polling interval to take affect EXEC [sys].[sp_cdc_start_job], @job_type = N'capture',
Control de versiones de objetos CDC de Oracle GoldenGate
Oracle GoldenGate proporciona un subsistema de seguimiento de versiones para realizar un seguimiento de los objetos CDC que crea Oracle GoldenGate al activar el registro complementario. Estos objetos son:
-
Tablas de seguimiento de cambios de Oracle GoldenGate con el formato
OracleGG_object id_CT. -
Procedimientos almacenados con el formato
fetch_database name_object id -
Procedimientos almacenados
OracleCDCExtract,OracleGGCreateProcsyOracleGGCreateNextBatch. -
Después de completar correctamente el comando
ADD TRANDATA, Oracle GoldenGate crea una tabla denominadaOracleGGVersionen el archivoGGSCHEMAespecificado en el archivo GLOBALS, si aún no existe.A continuación, Oracle GoldenGate inserta un registro en la tabla que realiza un seguimiento de la hora de inicio y finalización de la sesión
TRANDATA. Cuando se inicia Extract, comprueba la coherencia entre sí y los objetos CDC de Oracle GoldenGate comparando su número de versión interno con los números de versión encontrados en la tablaOracleGGVersion. Si detecta que los números de versión no coinciden, finaliza de forma anormal con un mensaje similar al siguiente:ERROR OGG-05337 The Oracle GoldenGate CDC object versions on database, source, are not consistent with the expected version, 6. The following versions(s) were found: 3. Rerun ADD TRANDATA for all tables previously enabled, including heartbeat, heartbeat seed, and filter tables.
Parámetros de extracción soportados y no soportados para la captura de datos de cambio de SQL Server
Obtenga información sobre los parámetros utilizados con el extracto de CDC. En las siguientes tablas se muestran los parámetros admitidos y no admitidos.
| Parámetros admitidos | Parámetros no admitidos |
|---|---|
TRANLOGOPTIONS |
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT/NOMANAGESECONDARYTRUNCATIONPOINT/ACTIVESECONDARYTRUNCATIONPOINT |
ALWAYSONREADONLYROUTING |
- |
TRANLOGOPTIONS LOB_CHUNK_SIZE |
- |
TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUPTRANLOGOPTIONS |
- |
TRANLOGOPTIONS QUERYTIMEOUT |
- |
TRANLOGOPTIONS TRANCOUNT |
- |
OPCIONES DE TRANSACCIÓN LOB_CHUNK_SIZE
Se agrega el parámetro Extract LOB_CHUNK_SIZE para que el método de captura de CDC soporte objetos grandes. Si tiene grandes tamaños de datos LOB, puede ajustar LOB_CHUNK_SIZE del valor por defecto de 4000 bytes a un valor superior de hasta 65535 bytes, de modo que el tamaño de recuperación aumente, lo que reduce los viajes necesarios para recuperar todo el LOB.
Ejemplo: TRANLOGOPTIONS LOB_CHUNK_SIZE 8000
TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUP
El método de captura CDC utiliza el parámetro Extract MANAGECDCCLEANUP/NOMANAGECDCCLEANUP para indicar al Extract si desea o no mantener los datos de punto de control de recuperación en el trabajo de limpieza CDC de Oracle GoldenGate. El punto de control de recuperación se mantiene, pero la depuración de las tablas ct no se producirá si el trabajo de limpieza de CDC de SQL Server tampoco está activado. Es necesario para la depuración.
El valor por defecto es MANAGECDCCLEANUP y no tiene que aparecer explícitamente en Extract. Sin embargo, sí necesita crear el trabajo de limpieza de CDC de Oracle GoldenGate antes de iniciar el Extract. MANAGECDCCLEANUP se debe utilizar para todos los entornos de producción, donde NOMANAGECDCCLEANUP se puede utilizar para implantaciones temporales y de prueba según sea necesario.
Ejemplo: TRANLOGOPTIONS MANAGECDCCLEANUP
EXCLUIR USUARIO/EXCLUIR TRANSACCIÓN DE OPCIONES DE TRANSACCIÓN
El trabajo de captura de CDC de SQL Server no captura información de usuario ni nombres de transacción asociados a una transacción, y como esta información no se registra en las tablas temporales de CDC, Extract no tiene ningún método para excluir DML de un usuario específico o DML de un nombre de transacción específico. Por lo tanto, los parámetros EXCLUDEUSER y EXCLUDETRANS no son válidos para el proceso de captura de CDC.
TRANLOGOPTIONS GESTIONA EL PUNTO DE ENLACE SECUNDARIO/PUNTO DE ENLACE SECUNDARIO/PUNTO DE ENLACE SECUNDARIO/ACTIVOSPUNTO DE ENLACE SECUNDARIO
El trabajo de captura de datos de cambio de SQL Server es el único proceso que captura datos del log de transacciones al utilizar el método de captura de CDC de Oracle GoldenGate. La gestión del punto de truncamiento secundario no la gestiona Extract y, para la extracción de captura de datos de cambio, estos parámetros no son válidos.
TRANLOGOPTIONS ALWAYSONREADONLYROUTING (ENRUTAMIENTO SIEMPRE EN MODO SOLO LECTURA)
El parámetro ALWAYSONREADONLYROUTING permite a Extract para SQL Server enrutar su procesamiento de solo lectura a un secundario de intención de lectura disponible cuando está conectado a un listener de grupo de disponibilidad Always On.
TIMEOUT DE CONSULTA DE OPCIONES DE TRANSACCIÓN
Especifica cuánto tiempo esperarán las consultas a SQL Server los resultados antes de informar de un mensaje de error de timeout. Esta opción toma un valor entero para representar el número de segundos. El valor por defecto del timeout de consulta es 300 segundos (5 minutos). El valor mínimo es 0 segundos (tiempo de espera infinito). El máximo es de 2147483645 segundos.
TRANLOGOPTIONS - RECUENTO DE TRANSACCIONES
Permite ajustar el número de transacciones procesadas por cada llamada mediante Extract para extraer datos de las tablas temporales de captura de datos de cambio de SQL Server. En función de la carga de trabajo de las transacciones, ajustar este valor puede mejorar el rendimiento de la tasa de captura, aunque no todas las cargas de trabajo se verán afectadas positivamente. El valor mínimo es 1, el máximo es 100 y el valor por defecto es 10.
Detalles del proceso de limpieza de CDC de Oracle GoldenGate
La tarea Depurar datos de cambio de Oracle GoldenGate es necesaria para un Extract de CDC por defecto, ya que el valor por defecto de Extract es TRANLOGOPTIONS MANAGECDCCLEANUP.
Solo debe haber una tarea de depuración para cada base de datos activada para la captura de CDC y debe crear la tarea mediante los pasos mencionados en la sección Preparación de la base de datos para Oracle GoldenGate de este documento.
Modificación de la tarea de depuración de datos de cambio de Oracle GoldenGate
El programa de frecuencia de la tarea de depuración por defecto y el período de retención de datos para la tarea de depuración de datos de cambio de Oracle GoldenGate se ejecutan cada 10 minutos, con una política de retención de datos de 3 días o 1 hora, según la versión de Oracle GoldenGate instalada.
Para los requisitos específicos del cliente, puede que sea necesario ajustar el período de retención (opción Mantener regla) y el programa de tiempo de ejecución de la tarea (opción Depurar frecuencia).
La opción Mantener regla 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. Según la versión de Oracle GoldenGate instalada, 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. Normalmente, no sería necesario cambiar la posición de un Extract existente a un punto anterior en el tiempo, por lo que se recomienda utilizar el valor por defecto más reciente de 1 hora, a menos que haya un caso específico que requiera más datos temporales para permanecer en la base de datos. Tenga en cuenta que, si cambia este valor de un período de retención superior a un período de retención muy corto, la próxima vez que se ejecute el programa de tareas, podría consumir mucho espacio de log de transacciones y sobrecarga del sistema. Por lo tanto, se recomienda reducir lentamente el valor Keep Rule con el tiempo, hasta que alcance el valor final deseado.
La frecuencia de depuración 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.
Para modificar una tarea de depuración de datos de cambio existente, vaya a Configuración desde el menú de la izquierda del servicio de administración, para abrir la página Configuración. 1. Haga clic en Tareas en la página Configuración para abrir la página Tareas.
-
Haga clic en Depurar datos de cambio en la página Tareas.
-
Haga clic en el icono Modificar tarea junto a una tarea existente.
-
Modifique los valores de las opciones Mantener regla y Depurar frecuencia según sea necesario.
-
Haga clic en Enviar para guardar los cambios.
Supresión de la tarea de depuración de datos de cambio de Oracle GoldenGate
La supresión de una tarea Depurar datos de cambio para una base de datos solo se debe realizar si no hay Extract configurados para capturarlos en la base de datos específica.
Para suprimir una tarea de depuración de datos de cambio existente, vaya a la opción Configuración del menú de la izquierda del servicio de administración, para abrir la página Configuración. 1. Haga clic en Tareas en la página Configuración para abrir la página Tareas.
-
Haga clic en Depurar datos de cambio en la página Tareas.
-
Haga clic en el icono Suprimir tarea junto a la tarea que se va a eliminar.
Actualización de extracto clásico a extracto de CDC
Si tiene previsto cambiar de un Extract clásico de Oracle GoldenGate 12c (12.3.0.1) o anterior a un Extract CDC 26ai de Oracle GoldenGate, debe eliminar el registro complementario que se ha implantado mediante el método de instalación Classic Extract. y vuelva a activar el registro complementario mediante los binarios de instalación de CDC Extract, ya que las llamadas para activar TRANDATA son diferentes entre las dos versiones, y la implementación de TRANDATA para Classic Extract no está soportada por CDC Extract.
Siga estas directrices generales para eliminar y volver a activar el registro complementario. Se debe tener en cuenta y planificar especialmente si se migra de Extracto Clásico a Extracto CDC en un sistema de producción. La información aquí proporcionada no cubre todos los requisitos y solo se ofrece como requisitos generales con respecto a la tala complementaria:
-
Asegúrese de que la extracción clásica ha procesado todos los datos restantes en los logs y se puede parar correctamente.
-
Realice una de las siguientes acciones, según cómo se ejecutara Extract en relación con otros componentes de replicación o CDC:
-
Si Extract no se estaba ejecutando simultáneamente con la replicación transaccional de SQL Server o con una configuración de CDC que no sea de Oracle en la misma base de datos, abra una sesión de consulta en Management Studio y emita la siguiente sentencia en la base de datos de origen para desactivar y suprimir cualquier CDC o componentes de replicación, y para borrar el punto de truncamiento secundario.
EXEC sys.sp_cdc_disable_db -
Si Extract se estaba ejecutando concurrentemente con la replicación transaccional de SQL Server o una configuración de CDC que no sea de Oracle en la misma base de datos, ejecute el cliente de administración desde la carpeta de instalación de Classic Extract, conéctese a la base de datos de origen con
DBLOGINy, a continuación, ejecute el siguiente comando para cada tabla que esté en la configuración de Extract. Puede utilizar un comodín para especificar varios nombres de tablaDELETE TRANDATA owner.tableDELETE TRANDATA owner.*
-
-
Suprima las entradas de la tabla de latidos si se instaló una.
DELETE HEARTBEATTABLE -
Mediante los binarios de instalación de Oracle GoldenGate CDC Extract, siga los pasos que se muestran en Preparación de la base de datos para Oracle GoldenGate para volver a activar el registro complementario y otros componentes necesarios, y vuelva a agregar la tabla de latidos.