Requisitos y configuración del log de transacciones
Oracle GoldenGate se basa en redo logs para capturar los datos que necesita para replicar las transacciones de origen. Los redo logs de Oracle en el sistema de origen se deben configurar correctamente antes de iniciar el procesamiento de Oracle GoldenGate.
En esta sección se abordan los siguientes niveles de registro que se aplican a Oracle GoldenGate. El nivel de registro que utilice depende de las funciones de Oracle GoldenGate que esté utilizando.
Nota: El volumen de redo se incrementa como resultado de este registro necesario. Puede esperar hasta que esté listo para iniciar el procesamiento de Oracle GoldenGate para activar el registro.
En esta tabla se muestran los casos de uso de Oracle GoldenGate para las distintas propiedades de registro.
| Opción de Registro | Nombre del Comando | Función | Casos prácticos |
|---|---|---|---|
| Modo de registro forzado | ALTER DATABASE FORCE LOGGING; |
Fuerza el registro de todas las transacciones y cargas. | Recomendado especialmente para todos los casos de uso de Oracle GoldenGate. FORCE LOGGING sustituye cualquier configuración de NOLOGGING de nivel de tabla. |
Registro complementario de nivel de base de datos mínimo Consulte Activación del Registro de Replicación de Base de Datos de Subjuegos. |
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; |
Permite un registro complementario mínimo para agregar información de la cadena de filas al redo log. | Necesario para todos los casos de uso de Oracle GoldenGate |
| Registro complementario de nivel de esquema | [ADD SCHEMATRANDATA](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-5DA7C3DC-5D87-4A8B-AD23-6EF587A5CF41) |
Activa el registro complementario incondicional de la clave primaria y el registro complementario condicional de las claves únicas y las claves ajenas de todas las tablas de un esquema. Todas estas claves juntas se conocen como columnas de programación. Este valor también garantiza que cualquier objeto nuevo creado en este esquema tendrá el registro complementario adecuado. |
Activa el registro de todas las tablas actuales y futuras del esquema. Si las columnas de clave primaria, clave única y clave ajena no son idénticas tanto en el origen como en el destino, utilice ALLCOLS. |
| Registro complementario de nivel de esquema con registro incondicional para todas las columnas soportadas. (Consulte Enable Schema-level Supplemental Logging para ver los tipos de columna no admitidos). | ADD SCHEMATRANDATA con la opción ALLCOLS |
Activa el registro complementario incondicional de todas las columnas de una tabla para todas las tablas de un esquema. Este valor también garantiza que cualquier objeto nuevo creado en este esquema tendrá el registro complementario adecuado. |
Se utiliza para configuraciones bidireccionales y activas-activas en las que se comprueban todos los valores de columna, no solo las columnas cambiadas, al intentar realizar una actualización o supresión. Esto requiere más recursos, sin embargo, permite el mayor nivel de validación de datos en tiempo real y, por lo tanto, la detección de conflictos. Este método también se debe utilizar si van a utilizar el parámetro |
| Registro complementario de nivel de esquema, configuración mínima | ADD SCHEMATRANDATA con la opción NOSCHEDULINGCOLS |
Activa el registro complementario incondicional de la clave primaria y todos los índices únicos válidos de todas las tablas de un esquema. Este valor también garantiza que cualquier objeto nuevo creado en este esquema tendrá el registro complementario adecuado. |
Se utiliza sólo para Replicat no integrado. Este es el registro de nivel de esquema mínimo necesario. |
Registro complementario a nivel de tabla con soporte incorporado para Replicat integrado Consulte Activación de Registro Suplementario a Nivel de Tabla |
ADD TRANDATA |
Activa el registro complementario incondicional de la clave primaria y el registro complementario condicional de las claves únicas y las claves ajenas de una tabla. Todas estas claves juntas se conocen como columnas de programación. | Necesario para todos los casos de uso de Oracle GoldenGate a menos que se utilice el registro complementario de nivel de esquema. Si las columnas de clave primaria, clave única y clave ajena no son idénticas tanto en el origen como en el destino, utilice ALLCOLS. |
| Registro complementario de nivel de tabla con registro incondicional para todas las columnas soportadas. (Consulte Enable Table-level Supplemental Logging para ver los tipos de columna no admitidos). | ADD TRANDATA con la opción ALLCOLS |
Activa el registro complementario incondicional de todas las columnas de la tabla. | Se utiliza para configuraciones bidireccionales y activas-activas en las que se comprueban todos los valores de columna, no solo las columnas cambiadas, al intentar realizar una actualización o supresión. Esto requiere más recursos, sin embargo, permite el mayor nivel de validación de datos en tiempo real y, por lo tanto, la detección de conflictos. También se puede utilizar cuando las claves primaria, única y ajena de origen y destino no son iguales o cambian constantemente entre el origen y el destino. |
| Registro complementario a nivel de tabla, configuración mínima | ADD TRANDATA con la opción NOSCHEDULINGCOLS |
Activa el registro complementario incondicional de la clave primaria y todos los índices únicos válidos de una tabla. | Se utiliza para Replicat no integrado y Replicat no paralelo. Este es el registro de nivel de tabla mínimo necesario. |
| Registro complementario de nivel de tabla para vistas de dualidad relacional JSON y tablas de recopilación de JSON. | ADD TRANDATA con Duality View name y Collection Table name |
Activa el registro complementario para las vistas de dualidad y tablas de recopilación especificadas. | Consulte Activación del registro adicional para vistas de dualidad relacional JSON y tablas de recopilación de JSON para obtener directrices. Consulte también Detalles del soporte para vistas de dualidad relacional y JSON y tablas de recopilación de JSON para obtener más información. |
Activar Registro de Replicación de Base de Datos de Subjuego
Oracle recomienda encarecidamente poner la base de datos de origen de Oracle en modo de registro forzado. El modo de registro forzado fuerza el registro de todas las transacciones y cargas, sustituyendo cualquier valor de almacenamiento o usuario que realice lo contrario. Esto garantiza que no se pierda ningún dato de origen en la configuración de Extract.
Hay un modo de registro complementario de base de datos granular detallado denominado Replicación de Base de Datos de Subjuego disponible en LogMiner, que es el modo básico recomendado para todos los clientes de Oracle GoldenGate y XStream. Sustituye el modo de registro suplementario mínimo utilizado anteriormente.
El registro de replicación de base de datos de subjuego está activado en CDB$ROOT (y todos los usuarios-PDB lo heredan) actualmente.
Nota: El registro de clave primaria (PK) e índice único (IU) de nivel de base de datos solo se desaconseja si replica un subjuego de tablas. Puede utilizarlo con la base de datos en espera activa o si Oracle GoldenGate va a replicar todas las tablas, como para reducir el tiempo de inactividad de una migración o actualización.
Realice los siguientes pasos para verificar y activar, si es necesario, el registro de replicación de base de datos de subjuego y el registro forzado.
-
Conéctese a SQL*Plus como usuario con el privilegio
ALTER SYSTEM. -
Ejecute el siguiente comando para determinar si la base de datos está en modo de registro complementario y en modo de registro forzado. Si el resultado es
YESpara ambas consultas, la base de datos cumple el requisito de Oracle GoldenGate.SELECT SUPPLEMENTAL_LOG_DATA_MIN, FORCE_LOGGING FROM V$DATABASE; -
Si el resultado es
NOpara una o ambas propiedades, continúe con estos pasos para activarlas según sea necesario:ALTER PLUGGABLE DATABASE *pdbname* ADD SUPPLEMENTAL LOG DATA SUBSET DATABASE REPLICATION; ALTER DATABASE FORCE LOGGING; -
Ejecute el siguiente comando para verificar que estas propiedades estén activadas.
SELECT SUPPLEMENTAL_LOG_DATA_MIN, FORCE_LOGGING FROM V$DATABASE;La salida de la consulta debe ser
YESpara ambas propiedades. -
Cambie los archivos log.
ALTER SYSTEM SWITCH LOGFILE;
Activar Registro Complementario de Nivel de Esquema
Oracle GoldenGate soporta el registro complementario de nivel de esquema. El registro a nivel de esquema es necesario para una base de datos de origen y destino de Oracle al utilizar la función de replicación DDL de Oracle GoldenGate o en la base de datos de origen si se puede realizar (o ejecutar) DDL en las tablas que se replican. En todos los demás casos de uso, es opcional, pero, a continuación, debe utilizar el registro de nivel de tabla en su lugar (consulte Activación del Registro Suplementario de Nivel de Tabla).
Por defecto, el registro de nivel de esquema activa automáticamente el registro complementario incondicional de la clave primaria y el registro complementario condicional de las claves únicas y las claves ajenas de todas las tablas de un esquema. Las opciones permiten modificar el registro según sea necesario.
Nota: Oracle recomienda utilizar el registro de nivel de esquema en lugar del registro de nivel de tabla, ya que garantiza que las tablas nuevas agregadas a un esquema se capturen si cumplen con las especificaciones de comodín. Este método también se recomienda porque cualquier cambio en las columnas clave también se refleja automáticamente en los datos de log suplementarios. Por ejemplo, si cambia una clave, no es necesario emitir ADD TRANDATA.
Realice los siguientes pasos en el sistema de origen para activar el registro complementario a nivel de esquema.
-
Inicie la línea de comandos en el sistema de origen.
-
Emita el comando
DBLOGINcon el alias de un usuario del almacén de credenciales que tenga privilegios para activar el registro complementario a nivel de esquema.DBLOGIN USERIDALIAS *alias*Consulte
USERIDALIASen Referencia de parámetros y funciones para Oracle GoldenGate para obtener más información sobreUSERIDALIASy opciones adicionales. -
Al utilizar
ADD SCHEMATRANDATAoADD TRANDATAen una base de datos multi-inquilino, puede conectarse directamente a la PDB y ejecutar el comando. Como alternativa, si se conecta en el nivel raíz (mediante un usuarioC##), debe incluir la PDB. Emita el comandoADD SCHEMATRANDATApara cada esquema para el que desee capturar cambios de datos con Oracle GoldenGate.ADD SCHEMATRANDATA pdb.schema [ALLCOLS | NOSCHEDULINGCOLS]Dónde:
-
Sin opciones, el esquema
ADD SCHEMATRANDATAactiva el registro complementario incondicional en el sistema de origen de la clave primaria y el registro complementario condicional de todas las claves únicas y las claves ajenas de todas las tablas actuales y futuras del esquema especificado. El registro incondicional fuerza los valores de la clave primaria en el registro tanto si se ha cambiado como si no la clave en la operación actual. El registro condicional registra todos los valores de columna de una clave ajena o única si se ha cambiado al menos una de ellas en la operación actual. El valor por defecto es opcional para admitir Replicat no integrado, pero es necesario para admitir Replicat integrado porque la clave primaria, las claves únicas y las claves ajenas deben estar disponibles para que el servidor entrante calcule las dependencias. -
ALLCOLSse puede utilizar para activar el registro complementario incondicional de todas las columnas de una tabla y se aplica a todas las tablas actuales y futuras del esquema especificado. Se utiliza para soportar Replicat integrado cuando las tablas de origen y destino tienen diferentes columnas de programación. (Las columnas de programación son la clave primaria, la clave única y la clave ajena). -
NOSCHEDULINGCOLSsolo registra los valores de la clave primaria y todos los índices únicos válidos para las tablas existentes en el esquema y las nuevas tablas agregadas más tarde. Este es el nivel mínimo necesario de registro de nivel de esquema y solo es válido para Replicat en modo no integrado.
En el siguiente ejemplo, el comando activa el registro complementario por defecto para el esquema
hr.ADD SCHEMATRANDATA pdbeast.hr ALLCOLSEn el siguiente ejemplo, el comando activa el registro complementario solo para la clave primaria y los índices únicos válidos para el esquema
HR.ADD SCHEMATRANDATA pdbeast.hr NOSCHEDULINGCOLS -
Activar Registro Complementario de Nivel de Tabla
Active el registro complementario de nivel de tabla en el sistema de origen en los siguientes casos:
-
Para activar el nivel necesario de registro cuando no se utiliza el registro de nivel de esquema (consulte Activación del Registro Suplementario de Nivel de Esquema). Se debe utilizar el registro de nivel de esquema o de tabla. Por defecto, el registro de nivel de tabla activa automáticamente el registro complementario incondicional de la clave primaria y el registro complementario condicional de claves únicas y claves ajenas de una tabla. Las opciones permiten modificar el registro según sea necesario.
-
Para evitar el registro de la clave primaria para una tabla determinada.
-
Registrar valores de columna no clave en el nivel de tabla para soportar funciones específicas de Oracle GoldenGate, como el filtrado y la lógica de detección y resolución de conflictos.
-
Si las columnas clave cambian en una tabla que solo tiene un registro complementario a nivel de tabla, debe realizar
ADD TRANDATAen la tabla antes de permitir cualquier actividad de DML en la tabla. -
Para activar el registro complementario para las vistas de dualidad relacional de JSON (DV de JSON) y las tablas de recopilación de JSON, debe seguir las directrices de Activar registro suplementario para vistas de dualidad relacional de JSON y tablas de recopilación de JSON.
Realice los siguientes pasos en el sistema de origen para activar el registro complementario de nivel de tabla o utilice las funciones opcionales del comando.
-
Ejecute la línea de comandos en el sistema de origen.
-
Emita el comando
DBLOGINcon el alias de un usuario del almacén de credenciales que tenga privilegios para activar el registro complementario a nivel de tabla.DBLOGIN USERIDALIAS *alias*Consulte
USERIDALIASen Referencia de parámetros y funciones para Oracle GoldenGate para obtener más información sobreDBLOGINy opciones adicionales. -
Ejecute el comando
ADD TRANDATA.ADD TRANDATA [*PDB*.]*schema.**table* [, COLS (*columns)*] [, NOKEY] [, ALLCOLS | NOSCHEDULINGCOLS]Dónde:
-
PDB es el nombre del contenedor raíz o la base de datos conectable si la tabla está en una base de datos de contenedor multi-inquilino.
-
schema es el esquema de origen que contiene la tabla.
-
table es el nombre de la tabla. Consulte Especificación de nombres de objetos en la entrada de Oracle GoldenGate para obtener instrucciones sobre cómo especificar nombres de objetos.
-
ADD TRANDATAsin otras opciones activa automáticamente el registro complementario incondicional de la clave primaria y el registro complementario condicional de las claves únicas y las claves ajenas de la tabla. El registro incondicional fuerza los valores de la clave primaria en el registro tanto si se ha cambiado como si no la clave en la operación actual. El registro condicional registra todos los valores de columna de una clave ajena o única si se ha cambiado al menos una de ellas en la operación actual. El valor por defecto es opcional para admitir Replicat no integrado (consulte tambiénNOSCHEDULINGCOLS), pero es necesario para admitir Replicat integrado porque la clave primaria, las claves únicas y las claves ajenas deben estar disponibles para que el servidor entrante calcule las dependencias. -
ALLCOLSactiva el registro complementario incondicional de todas las columnas de la tabla. Se utiliza para soportar Replicat integrado cuando las tablas de origen y destino tienen diferentes columnas de programación. (Las columnas de programación son la clave primaria, la clave única y la clave ajena). -
NOSCHEDULINGCOLSes válido solo para Replicat en modo no integrado. Emite un comandoALTER TABLEcon una cláusulaADD SUPPLEMENTAL LOG DATA ALWAYSque es adecuada para el tipo de restricción única que se define para la tabla o para todas las columnas en ausencia de una restricción única. Este comando cumple los requisitos básicos de registro de nivel de tabla de Oracle GoldenGate cuando no se utilizará el registro de nivel de esquema. Consulte Protección de la Unicidad de Filas en la Tabla de Origen y Destino para ver cómo Oracle GoldenGate selecciona una clave o un índice. -
COLScolumnas registra las columnas no clave necesarias para una cláusulaKEYCOLSo para el filtrado y la manipulación. Los paréntesis son necesarios. Estas columnas se registrarán además de la clave primaria, a menos que también esté presente la opciónNOKEY. -
NOKEYimpide el registro de la clave primaria o la clave única. Requiere una cláusulaKEYCOLSen los parámetrosTABLEyMAPy una cláusulaCOLSen el comandoADD TRANDATApara registrar las columnasKEYCOLSalternativas.
-
-
Si utiliza
ADD TRANDATAcon la opciónCOLS, cree un índice único para esas columnas en el destino para optimizar la recuperación de filas. Si está registrando esas columnas como clave alternativa para una cláusulaKEYCOLS, anote para agregar la cláusulaKEYCOLSa las sentenciasTABLEyMAPal configurar los procesos de Oracle GoldenGate.
Activar registro adicional para vistas de dualidad relacional JSON y tablas de recopilación de JSON
Antes de replicar las vistas de dualidad relacional de JSON y las tablas de recopilación de JSON, debe configurar el registro complementario en Oracle GoldenGate. Por defecto, el registro complementario no está activado para las vistas de dualidad relacional JSON y las tablas de recopilación de JSON. Puede utilizar las siguientes directrices al activar el registro complementario para las vistas de dualidad y las tablas de toma:
-
Activar replicación lógica: la activación de la replicación lógica (mediante
ADD TRANDATA) es obligatoria para capturar los cambios realizados en las vistas de dualidad y las tablas de recopilación. Este proceso permite el registro complementario necesario para realizar un seguimiento de los cambios en el nivel de documento JSON.Consulte
ADD TRANDATApara obtener más información.En Oracle AI Database, se ha agregado una cláusula en
CREATE/ALTER DDLpara las vistas de dualidad relacional JSON y las tablas de recopilación de JSON. Esta cláusula permite el registro complementario en el nivel de vista. Este registro se suma a cualquier registro existente en las tablas base.Para obtener más información, consulte la sección logical_replication_clause en los comandos
CREATE TABLE/CREATE JSON RELATIONAL DUALITY VIEWyALTER TABLE/ALTER JSON RELATIONAL DUALITY VIEWSen Oracle AI Database SQL Language Reference. -
Cambios de DML para las vistas de dualidad de JSON y las tablas de recopilación de JSON: para las operaciones
INSERTyUPDATE, el documento JSON completo y el atributo de clave_idse registran adicionalmente. Para las operaciones DELETE, solo se registra el atributo_idde clave. -
Registro de confirmación de transacción para vistas de dualidad relacional JSON: el registro complementario para vistas de dualidad se produce en el momento de la confirmación. Solo se registran los cambios netos.
Por ejemplo, si
INSERTun registro yUPDATEeste registro dos veces en una transacción que conecta una vista de dualidad JSON, solo existirá un cambio lógico que contenga unINSERTcon el registro actualizado. -
Replicación de vistas de dualidad de JSON a vistas de dualidad de JSON mediante tablas subyacentes: los cambios de replicación en el nivel de tabla relacional subyacente de vistas de dualidad son principalmente eficientes. Una vista de dualidad que se encuentra encima de la tabla relacional subyacente refleja automáticamente esos cambios a medida que se trata de una vista. En este caso, no se necesita ningún registro complementario adicional en las vistas de dualidad.
Para conocer los pasos para configurar el registro complementario de nivel de tabla, consulte Activar registro suplementario de nivel de tabla.
Eliminar registro complementario de nivel de tabla
Si Oracle GoldenGate ya no necesita que se capture una tabla y el parámetro TABLE de la tabla se ha eliminado del archivo de parámetros Extract o se utiliza TABLEEXCLUDE para excluir la tabla de una sentencia comodín, el registro complementario se puede eliminar de la tabla.
Nota: Si Extract resuelve una tabla que no tiene activado el registro complementario, finalizará de forma anormal según el tipo de operación DML.
Al utilizar DELETE TRANDATA para eliminar el registro complementario, el nivel de identidad de Replicat de la tabla se define en NOTHING. El registro complementario se puede desactivar mediante la interfaz web de la arquitectura de microservicios desde la página Administration Service, Configuration, en la credencial creada para una base de datos origen, o se puede ejecutar con el comando DELETE TRANDATA.
A continuación, se muestra la sintaxis para emitir DELETE TRANDATA.
DBLOGIN USERIDALIAS alias_name
DELETE TRANDATA schema.tablename
Para comprobar el nivel de registro complementario:
INFO TRANDATA schema.tablename