Replicación de procedimiento
Obtenga información sobre la replicación de procedimientos y cómo configurarla.
Acerca de la replicación de procedimiento
La replicación de procedimiento solo está disponible con Oracle AI Database. Oracle GoldenGate utiliza la replicación de procedimientos para replicar los procedimientos PL/SQL proporcionados por Oracle AI Database, evitando el envío y la aplicación de registros de gran volumen que normalmente generan estas operaciones. La replicación de procedimiento implementa cambios de diccionario que controlan el comportamiento de usuario y sesión y el intercambio de objetos en el diccionario.
La replicación de procedimiento no está relacionada con la replicación de las sentencias CREATE, ALTER y DROP (o DDL), sino que es la replicación de una llamada de procedimiento como:
CALL *procedure_name*(*arg1*, *arg2*, ...);
En contraposición a:
exec *procedure_name*(*arg1*, *arg2*, ...)
Después de activar la replicación de procedimientos, las llamadas a los procedimientos de los paquetes proporcionados por Oracle AI Database en una base de datos se replican en una o más bases de datos y, a continuación, se ejecutan en esas bases de datos. Por ejemplo, una llamada a subprogramas en el paquete DBMS_REDEFINITION puede realizar una redefinición en línea de una tabla. Si la tabla se replica en varias bases de datos y desea que se realice la misma redefinición en línea en la tabla de cada base de datos, puede realizar las llamadas a los subprogramas del paquete DBMS_REDEFINITION en una base de datos, y Oracle GoldenGate puede replicar esas llamadas a las otras bases de datos.
Para admitir la replicación de procedimientos, Oracle AI Database se debe configurar para identificar los procedimientos que están activados para esta optimización.
Para utilizar la replicación de procedimiento, se deben cumplir los siguientes requisitos previos:
-
Oracle GoldenGate con Extraer y Replicat.
-
Los paquetes proporcionados por el sistema solo funcionan en combinación con DML y DDL.
Visión general del proceso de replicación de procedimiento
La replicación de procedimiento utiliza un registro de pista para garantizar que se encapsule suficiente información con el registro.
Para utilizar la replicación de procedimiento de Oracle GoldenGate, debe activarla. Tu Oracle AI Database debe tener un mecanismo integrado para identificar los procedimientos que están activados para esta optimización.
Los pragmas PL/SQL se utilizan para indicar qué procedimientos se pueden replicar. Cuando se especifica el pragma, se realiza una devolución de llamada a Logminer al entrar y salir de la rutina. La devolución de llamada proporciona el nombre de la llamada y los argumentos del procedimiento e indica si el procedimiento se ha cerrado correctamente o con un error. Logminer aumenta el flujo de redo con la información de las devoluciones de llamada. Para los procedimientos soportados, se suprime el redo normal generado por el procedimiento y solo se replica la llamada al procedimiento.
Se genera un nuevo registro de pista para identificar la replicación de procedimiento. Este registro de pista aprovecha el formato de datos de columna de pista existente para los argumentos transferidos a procedimientos PL/SQL. Para los LOB, los datos se transfieren en fragmentos similares al formato de pista existente para los LOB. Este registro de pista tiene suficiente información para reproducir el procedimiento tal cual en el destino.
Cuando activa la replicación de procedimiento, evita la escritura de registros individuales afectados por el procedimiento en el archivo de pista.
Si se encuentra un error al aplicar un procedimiento PL/SQL, Replicat puede reproducir todo el procedimiento PL/SQL.
Determinación de si la replicación de procedimiento está activada
Utilice la función GG_PROCEDURE_REPLICATION_ON del paquete DBMS_GOLDENGATE_ADM para determinar si la replicación de procedimiento de Oracle GoldenGate está activada o desactivada.
Si desea utilizar Oracle GoldenGate en un entorno de Oracle AI Database Vault con replicación de procedimiento, debe definir los privilegios adecuados. Consulte Oracle AI Database Vault Administrator's Guide.
Para activar la replicación de procedimiento:
-
Conéctese a la base de datos como
sys(sqlplus,sqlcl,sqldeveloper) y no como administrador de Oracle GoldenGate. -
Ejecute la función
GG_PROCEDURE_REPLICATION_ON.
Ejemplo 9-1 Ejecución de la función GG_PROCEDURE_REPLICATION_ON
SET SERVEROUTPUT ON
DECLARE
on_or_off NUMBER;
BEGIN
on_or_off := DBMS_GOLDENGATE_ADM.GG_PROCEDURE_REPLICATION_ON;
IF on_or_off=1 THEN
DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is ON.');
ELSE
DBMS_OUTPUT.PUT_LINE('Oracle GoldenGate procedural replication is OFF.');
END IF;
END;
/
Activación y desactivación del registro adicional
Oracle GoldenGate proporciona comandos para permitirle activar o desactivar el registro complementario de procedimientos.
Para activar el registro complementario:
-
Conéctese a la base de datos origen como administrador de Oracle GoldenGate con
DBLOGIN.CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpwDBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate -
Agregue el registro complementario de replicación de procedimiento.
ADD PROCEDURETRANDATALa salida muestra:
INFO OGG-13005 PROCEDURETRANDATA supplemental logging has been enabled.
El registro complementario está activado para la replicación de procedimientos.
Para desactivar el registro complementario:
-
Conéctese a la base de datos origen como administrador de Oracle GoldenGate con dblogin.
CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpwDBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate -
Elimine el registro complementario de replicación de procedimientos.
DELETE PROCEDURETRANDATA
El registro complementario está desactivado para la replicación de procedimientos.
Para ver información sobre el registro complementario:
-
Conéctese a la base de datos origen como administrador de Oracle GoldenGate con dblogin.
CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpwDBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate -
Visualice información de registro complementaria para la replicación de procedimientos.
INFO PROCEDURETRANDATA
Se muestra información de registro adicional para la replicación del procedimiento.
Funciones de filtrado para la replicación de procedimiento
Puede especificar qué procedimientos y paquetes desea incluir o excluir para la replicación de procedimientos.
Los paquetes y procedimientos admitidos se agrupan mediante grupos de funciones. Utilice el parámetro de procedimiento con la palabra clave INCLUDE o EXCLUDE para filtrar funciones para la replicación de procedimientos.
En el parámetro de procedimiento, INCLUDE o EXCLUDE especifican el inicio de una cláusula de filtrado. Especifican los procedimientos para replicar (INCLUDE) o filtrar (EXCLUDE). La cláusula de filtrado debe constar de la palabra clave INCLUDE ALL_SUPPORTED o EXCLUDE ALL_SUPPORTED seguida de cualquier combinación válida de las otras opciones de filtrado del parámetro de procedimiento. El filtro EXCLUDE tiene prioridad sobre cualquier filtro INCLUDE que contenga los mismos criterios.
<div class="infoboxnote" markdown="1">
**Note:**
When replicating Oracle Streams Advanced Queuing (AQ) procedures, you must use the `RULE` option in your parameter file as follows:
`PROCEDURE INCLUDE FEATURE ALL_SUPPORTED`
or
`PROCEDURE INCLUDE FEATURE AQ, RULE`
Do *not* use `PROCEDURE INCLUDE FEATURE AQ` without the `RULE` option.
</div>
Incluyendo todos los paquetes proporcionados por el sistema en Extract:
-
Conéctese a Extract en la base de datos origen.
EXTRACT edbaUSERIDALIAS admin_dbA DOMAIN ORADEV -
Cree un nuevo archivo de pista.
EXTTRAIL ea -
Active la replicación del procedimiento, si aún no lo ha hecho.
TRANLOGOPTIONS INTEGRATEDPARAMS (ENABLE_PROCEDURAL_REPLICATION Y) -
Incluir filtro para replicación de procedimiento.
PROCEDURE INCLUDE FEATURE ALL_SUPPORTED
Ha incluido correctamente todos los paquetes proporcionados por el sistema para la replicación de procedimientos.
Exclusión de paquetes específicos en Replicat:
-
Conéctese a Replicat en la base de datos destino.
REPLICAT rdbaUSERIDALIAS admin_dbBDOMAIN ORADEV -
Incluir filtro para replicación de procedimiento.
PROCEDURE EXCLUDE FEATURE RLS
Ha excluido correctamente paquetes específicos para la replicación de procedimientos.
Manejo de errores de replicación de procedimiento
La replicación de procedimiento utiliza el parámetro REPERROR para configurar el comportamiento de Replicat cuando se produce un error de procedimiento.
Por defecto, Replicat finalizará de manera anormal cuando se produzca una replicación de procedimiento, de modo que al utilizar los siguientes pasos se configura el manejo de errores:
-
Conéctese a Replicat en la base de datos destino.
REPLICAT rdbaUSERIDALIAS admin_dbBDOMAIN ORADEV -
Incluir filtro para replicación de procedimiento.
PROCEDURE EXCLUDE FEATURE RLS -
Especifique el parámetro de manejo de errores. Consulte
REPERRORen Referencia de parámetros y funciones para Oracle GoldenGate para conocer otras opciones.REPERROR (PROCEDURE, DISCARD)
Ha manejado correctamente los errores para la replicación de procedimiento.
Visualización de los Procedimientos Soportados para la Replicación de Procedimiento de Oracle GoldenGate
La vista DBA_GG_SUPPORTED_PROCEDURES muestra información sobre los paquetes soportados para la replicación de procedimiento de Oracle GoldenGate.
Cuando un procedimiento está soportado y la replicación del procedimiento de Oracle GoldenGate está activada, las llamadas al procedimiento se replican, a menos que el procedimiento se excluya específicamente.
-
Conéctese a la base de datos como
sys(sqlplus,sqlcl,sqldeveloper) y no como administrador de Oracle GoldenGate. -
Consulte la vista
DBA_GG_SUPPORTED_PROCEDURES.
Ejemplo 9-2 Visualización de información sobre los paquetes soportados para la replicación de procedimiento de Oracle GoldenGate
Esta consulta muestra la siguiente información sobre los paquetes:
-
El propietario de cada paquete
-
El nombre de cada paquete
-
El nombre de cada procedimiento
-
La versión mínima de la base de datos desde la que se admite el procedimiento
-
Si hay una regla de exclusión que impide que el procedimiento se replique para algunos objetos de base de datos
COLUMN OWNER FORMAT A10
COLUMN PACKAGE_NAME FORMAT A15
COLUMN PROCEDURE_NAME FORMAT A15
COLUMN MIN_DB_VERSION FORMAT A14
COLUMN EXCLUSION_RULE_EXISTS FORMAT A14
SELECT OWNER,
PACKAGE_NAME,
PROCEDURE_NAME,
MIN_DB_VERSION,
EXCLUSION_RULE_EXISTS
FROM DBA_GG_SUPPORTED_PROCEDURES;
El resultado tiene un aspecto similar al siguiente:
OWNER PACKAGE_NAME PROCEDURE_NAME MIN_DB_VERSION EXCLUSION_RULE
---------- --------------- --------------- -------------- --------------
XDB DBMS_XDB_CONFIG ADDTRUSTMAPPING 12.2 NO
CTXSYS CTX_DDL ALTER_INDEX 12.2 NO
SYS DBMS_FGA DROP_POLICY 12.2 NO
SYS XS_ACL DELETE_ACL 12.2 NO
.
.
.
Supervisión de la replicación de procedimiento de Oracle GoldenGate
Un juego de vistas de diccionario de datos permite supervisar la replicación de procedimiento de Oracle GoldenGate.
Puede utilizar las siguientes vistas para supervisar la replicación de procedimiento de Oracle GoldenGate:
| Ver | Descripción |
|---|---|
DBA_GG_SUPPORTED_PACKAGES |
Proporciona detalles sobre los paquetes soportados para la replicación de procedimiento de Oracle GoldenGate. Cuando un paquete está soportado y la replicación de procedimiento de Oracle GoldenGate está activada, las llamadas a subprogramas del paquete se replican. |
DBA_GG_SUPPORTED_PROCEDURES |
Proporciona detalles sobre los procedimientos soportados para la replicación de procedimientos de Oracle GoldenGate. |
DBA_GG_PROC_OBJECT_EXCLUSION |
Proporciona detalles sobre todos los objetos de base de datos que están en la lista de exclusión para la replicación de procedimiento de Oracle GoldenGate. Se agrega un objeto de base de datos a la lista de exclusión mediante el procedimiento |
-
Conéctese a la base de datos como
sys(sqlplus,sqlclosqldeveloper) y no como administrador de Oracle GoldenGate. -
Consultar las vistas relacionadas con la replicación de procedimiento de Oracle GoldenGate.