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:

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:

  1. Conéctese a la base de datos como sys (sqlplus, sqlcl, sqldeveloper) y no como administrador de Oracle GoldenGate.

  2. 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:

  1. Conéctese a la base de datos origen como administrador de Oracle GoldenGate con DBLOGIN.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. Agregue el registro complementario de replicación de procedimiento.

    ADD PROCEDURETRANDATA

    La 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:

  1. Conéctese a la base de datos origen como administrador de Oracle GoldenGate con dblogin.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. 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:

  1. Conéctese a la base de datos origen como administrador de Oracle GoldenGate con dblogin.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. 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:

  1. Conéctese a Extract en la base de datos origen.

    EXTRACT edba

    USERIDALIAS admin_dbA DOMAIN ORADEV

  2. Cree un nuevo archivo de pista.

    EXTTRAIL ea

  3. Active la replicación del procedimiento, si aún no lo ha hecho.

    TRANLOGOPTIONS INTEGRATEDPARAMS (ENABLE_PROCEDURAL_REPLICATION Y)

  4. 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:

  1. Conéctese a Replicat en la base de datos destino.

    REPLICAT rdba

    USERIDALIAS admin_dbBDOMAIN ORADEV

  2. 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:

  1. Conéctese a Replicat en la base de datos destino.

    REPLICAT rdba

    USERIDALIAS admin_dbBDOMAIN ORADEV

  2. Incluir filtro para replicación de procedimiento.

    PROCEDURE EXCLUDE FEATURE RLS

  3. Especifique el parámetro de manejo de errores. Consulte REPERROR en 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.

  1. Conéctese a la base de datos como sys (sqlplus, sqlcl, sqldeveloper) y no como administrador de Oracle GoldenGate.

  2. 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:

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 INSERT_PROCREP_EXCLUSION_OBJ en el paquete DBMS_GOLDENGATE_ADM. Cuando un objeto de base de datos está en la lista de exclusión, la ejecución de un subprograma n el paquete no se replica si el subprograma funciona en el objeto excluido.

  1. Conéctese a la base de datos como sys (sqlplus, sqlcl o sqldeveloper) y no como administrador de Oracle GoldenGate.

  2. Consultar las vistas relacionadas con la replicación de procedimiento de Oracle GoldenGate.