ADD SCHEMATRANDATA
Válido para Oracle.
Utilice ADD SCHEMATRANDATA para activar el registro complementario de nivel del esquema para una tabla. ADD SCHEMATRANDATA actúa en todas las tablas actuales y futuras de un esquema especificado para registrar de manera automática un superjuego de claves disponibles que Oracle GoldenGate necesita para la identificación de las filas.
Nota: Oracle GoldenGate 23.6 no soporta la activación de la replicación lógica en el nivel de esquema para las vistas de dualidad relacional JSON (JSON DV) y las tablas de recopilación de JSON (JCT).
Para ejecutar ADD SCHEMATRANDATA en un esquema en la PDB de una base de Datos Multiinquilino, debe conectarse a una PDB para emitir el comando.
ADD SCHEMATRANDATA es válido para el Extract y realiza lo siguiente:
-
Activa el registro complementario de Oracle para las nuevas tablas creadas con
CREATE TABLE. -
Actualiza el registro complementario para las tablas afectadas por
ALTER TABLEpara agregar o borrar columnas. -
Actualiza el registro complementario para las tablas que se han renombrado.
-
Actualiza el registro complementario para las tablas para las que se han agregado o borrado claves únicas o primarias.
-
Activa una tabla para la captura automática. El comando agrega los datos del registro complementario PK, UI, FK, ALLKEYS de nivel de esquema.
Por defecto, ADD SCHEMATRANDATA registra las columnas clave de una tabla en el siguiente orden de prioridad:
-
Clave primaria
-
En ausencia de una clave primaria, se registran todas las claves únicas de la tabla, incluidas aquellas que están desactivadas, no son utilizables o son invisibles. También se registran las claves únicas que contienen columnas de miembro de ADT. Las claves únicas de columnas virtuales (índices basados en funciones) son las únicas que no se registran.
-
Si no existe ninguna de las anteriores, se registran todas las columnas escalares de la tabla. (Los OID de fila generados por el sistema siempre se registran).
ADD SCHEMATRANDATA también soporta los requisitos del registro condicionales o incondicionales para utilizar Replicat integrado.
Utilice ADD SCHEMATRANDATA en los siguientes casos:
-
Para todas las tablas que forman parte de un grupo de Extract que se va a configurar para la captura integrada.
ADD SCHEMATRANDATAgarantiza que se registra la clave correcta al registrar todas las claves. -
Para todas las tablas de origen que se procesarán en un grupo de Replicat integrado. Se proporcionan opciones que activan el registro de las claves primarias, únicas y ajenas para soportar el cálculo de las dependencias entre las tablas relacionales que se estén procesando a través de diferentes servidores de aplicaciones.
-
Cuando la replicación de DDL está activa y el DML es simultáneo al DDL que crea nuevas tablas o modifica las columnas clave. Gestiona mejor los escenarios en los que el DML se puede aplicar a objetos inmediatamente después de que se haya emitido el DDL en ellos.
ADD SCHEMATRANDATAprovoca la conexión atómica de los valores clave adecuados al redo log con cada operación DDL, de este modo, se garantiza que los metadatos sean continuos para el DML cuando se capture desde el log, a pesar del retraso que pueda producirse en la ejecución del procesamiento de Extract.
Requisitos de Registro a Nivel de Base de Datos para UsingADD SCHEMATRANDATA
Oracle recomienda encarecidamente poner la base de datos de origen en el modo de registro forzado y activar el registro complementario mínimo en el nivel de base de datos al utilizar Oracle GoldenGate. Esto agrega información de encadenamiento, si la hay, en el redo log para las operaciones de actualización.
Consideraciones adicionales para UsingADD SCHEMATRANDATA
-
Antes de utilizar
ADD SCHEMATRANDATA, emita el comandoDBLOGIN. El usuario que emite el comando debe tener otorgado el privilegio de administrador de Oracle Streams.EXEC DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE('*GGADMIN*') -
Se puede utilizar
ADD SCHEMATRANDATAen lugar del comandoADD TRANDATAcuando no esté activado la replicación del DDL. Tenga en cuenta, sin embargo, que si una tabla no tiene ninguna clave primaria pero tiene varias claves únicas,ADD SCHEMATRANDATAprovoca que la base de datos regule todas las claves únicas. En estos casos,ADD SCHEMATRANDATAhace que la base de Datos registre más datos de redo que laADD TRANDATA. Para evitar este registro adicional, designe una de las claves únicas como una clave primaria, si es posible. -
Para las tablas con una clave primaria, con una sola clave única o sin clave,
ADD SCHEMATRANDATAno agrega ninguna sobrecarga de registro adicional en comparación conADD TRANDATA. -
Si agrega
SCHEMATRANDATAen un esquema de una PDB, debe conectarse a dicha PDB enDBLOGIN. Por ejemplo, paraPDBEASTy para el esquemaHR, utilice el siguiente comando:ADD SCHEMATRANDATA pdbeast.hr -
Si debe registrar columnas no clave adicionales de una tabla específica (o tablas) para que las utilice Oracle GoldenGate (por ejemplo, las necesarias para las sentencias
FILTERy las cláusulasKEYCOLSen los parámetrosTABLEyMAP), emita un comandoADD TRANDATApara dichas columnas. Este comando tiene una opciónCOLSpara emitir una solicitud de registro complementario de nivel para las columnas y se puede utilizar junto conADD SCHEMATRANDATA.
Sintaxis
ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
schema
Esquema para el que desea que se registre la información de clave complementaria. No utilice un comodín. Para emitir ADD SCHEMATRANDATA para los esquemas de varias bases de datos de contenedor multiinquilino, conéctese a cada base de Datos de conexión por separado con DBLOGIN y emita ADD SCHEMATRANDATA. Desde el contratista raíz, puede agregar schematrandata con el prefijo de contenedor ADD SCHEMATRANDATA [pdb_name].schema
Si ejecuta el comando desde cdb$root, asegúrese también de configurar el siguiente privilegio del usuario en la base de datos:
ALTER USER userID SET CONTAINER_DATA = ALL CONTAINER = CURRENT;
ALLOWNONVALIDATEDKEYS
Incluye las claves primarias NON VALIDATED y NOT VALID en el registro complementario. Estas claves sustituyen los criterios de selección de clave normales que utiliza Oracle GoldenGate. Si se está utilizando el parámetro GLOBALS ALLOWNONVALIDATEDKEYS, ADD SCHEMATRANDATA se ejecuta con ALLOWNONVALIDATEDKEYS tanto si se ha especificado como si no. Por defecto, no se registran las claves primarias NON VALIDATED y NOT VALID. Consulte el parámetro GLOBALS de ALLOWNONVALIDATEDKEYS.
NOSCHEDULINGCOLS | ALLCOLS
Estas opciones controlan el registro complementario para una base de datos de destino de Oracle. Puede utilizar estas opciones juntas, sin embargo, se utilizaría la segunda opción. Por ejemplo, con el comando ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS se utilizaría la opción NOSCHEDULINGCOLS.
NOSCHEDULINGCOLS
Desactiva el registro de columnas de programación. Por defecto, ADD SCHEMATRANDATA activa el registro incondicional de la clave primaria y el registro complementario condicional de todas la claves únicas y las claves ajenas de todas la tablas actuales y futuras en el 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. La clave primaria, las claves únicas y las claves ajenas del Replicat integrado deben estar todas disponibles en el servidor entrante para calcular las dependencias.
Si desea activar auto_capture, no utilice esta opción. Esto permitirá que se capturen automáticamente las tablas en este esquema a menos que la tabla se excluya/desactive de forma explícita para su replicación (por ejemplo, mediante TABLEEXCLUDE, DELETE TRANDATA o ALTER TABLE DISABLE LOGICAL REPLICATION DDL).
ALLCOLS
Activa el registro complementario incondicional de todas las columnas de clave y no de clave soportadas para todas las tablas actuales y futuras en el esquema especificado. Esta opción activa el registro de las claves necesarias para calcular las dependencias, además de las columnas que son necesarias para el filtrado, la resolución de conflictos u otros fines. Las columnas LOB, LONG y ADT no están incluidas.
NOVALIDATE
Válido para todas las bases de datos soportadas por ADD SCHEMATRANDATA.
Suprimir la información adicional sobre la tabla que se está gestionando y que está procesando ADD SCHEMATRANDATA. Por defecto, esta opción está activada. Con el procesamiento de información adicional se produce un lapso de tiempo en la respuesta del comando, por lo que esta opción se puede usar para aumentar el tiempo de respuesta.
PARTIALJSON
Válido para Oracle.
Recupera las actualizaciones parciales de JSON en el nivel de esquema. Si está activado, redo incluirá los registros de JSON parciales.
Consulte también el parámetro TRANLOGOPTIONS FETCHPARTIALJSON.
PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
Válido para Oracle tanto para DML como para DDL.
Prepara las tablas automáticamente en el origen de modo que el archivo de volcado de Export del pump de datos de Oracle incluirá los CSN de instanciación. Replicat utiliza el CSN de instanciación por tabla definido por el pump de datos de Oracle (en la importación) para filtrar los registros de pista. En el destino, la importación de la bomba de datos rellena las tablas y las vistas del sistema con SCN de instanciación utilizando el parámetro DBOPTIONS ENABLE_INSTANTIATION_FILTERING para activar la creación de filtros de instanciación en la tabla.
WAIT
Espere a las transacciones en curso y prepare la instanciación de la tabla.
LOCK
Coloque un bloqueo en la tabla (para prepararla para la instanciación de la tabla).
NOWAIT
Comportamiento por defecto, la preparación para la instanciación se realiza inmediatamente.
NONE
No se produce ninguna preparación de la instanciación.
Ejemplo
En el siguiente ejemplo se activa un registro complementario para el esquema hr.
ADD SCHEMATRANDATA hr
En el siguiente ejemplo se registran todas las columnas de clave y no de claves soportadas para todas las tablas actuales y futuras en el esquema denominado hr.
ADD SCHEMATRANDATA hr ALLCOLS
En el siguiente ejemplo se suprime el procesamiento de la información de tabla adicional.
ADD SCHEMATRANDATA hr NOVALIDATE