절차 복제

절차 복제 및 구성 방법에 대해 알아봅니다.

절차 복제 정보

프로시저 복제는 Oracle AI Database에서만 사용할 수 있습니다. Oracle GoldenGate는 프로시저 복제를 사용하여 Oracle AI Database 제공 PL/SQL 프로시저를 복제합니다. 이렇게 하면 일반적으로 이러한 작업으로 생성되는 대용량 레코드의 전달 및 적용을 피할 수 있습니다. 프로시저 복제는 사용자 및 세션 동작과 딕셔너리의 객체 스와핑을 제어하는 딕셔너리 변경 사항을 구현합니다.

프로시저 복제는 CREATE, ALTER 및 DROP 문(또는 DDL)의 복제와 관련이 없으며, 다음과 같은 프로시저 호출의 복제입니다.

CALL *procedure_name*(*arg1*, *arg2*, ...);

반대로:

exec *procedure_name*(*arg1*, *arg2*, ...)

프로시저 복제를 활성화한 후에는 한 데이터베이스에서 Oracle AI Database 제공 패키지의 프로시저에 대한 호출이 하나 이상의 다른 데이터베이스로 복제된 다음 해당 데이터베이스에서 실행됩니다. 예를 들어, DBMS_REDEFINITION 패키지의 서브 프로그램을 호출하면 테이블의 온라인 재정의를 수행할 수 있습니다. 테이블이 여러 데이터베이스에서 복제되고 각 데이터베이스의 테이블에 대해 동일한 온라인 재정의를 수행하려는 경우 한 데이터베이스에서 DBMS_REDEFINITION 패키지의 서브 프로그램을 호출할 수 있으며, Oracle GoldenGate는 이러한 호출을 다른 데이터베이스에 복제할 수 있습니다.

프로시저 복제를 지원하려면 이 최적화에 대해 사용으로 설정된 프로시저를 식별하도록 Oracle AI Database를 구성해야 합니다.

프로시저 복제를 사용하려면 다음 필요 조건을 충족해야 합니다.

프로시저 복제 프로세스 개요

절차 복제는 추적 레코드를 사용하여 충분한 정보가 레코드로 캡슐화되도록 합니다.

Oracle GoldenGate 절차 복제를 사용하려면 사용으로 설정해야 합니다. Oracle AI Database에는 이 최적화에 대해 사용으로 설정된 프로시저를 식별할 수 있는 내장된 메커니즘이 있어야 합니다.

PL/SQL 프래그마는 복제할 수 있는 프로시저를 나타내는 데 사용됩니다. 프래그마를 지정하면 Logminer가 입력 시 콜백을 수행하고 루틴을 종료합니다. 콜백은 프로시저 호출 및 인수의 이름을 제공하며 프로시저가 성공적으로 종료되었는지 아니면 오류가 발생했는지 나타냅니다. Logminer는 콜백의 정보로 리두 스트림을 보강합니다. 지원되는 프로시저의 경우 해당 프로시저에 의해 생성된 일반 리두가 표시되지 않으며 프로시저 호출만 복제됩니다.

프로시저 복제를 식별하기 위해 새 트레일 레코드가 생성됩니다. 이 트레일 레코드는 PL/SQL 프로시저에 전달된 인수에 대해 기존 트레일 열 데이터 형식을 활용합니다. LOB의 경우 데이터는 LOB의 기존 추적 형식과 유사한 조각으로 전달됩니다. 이 추적 레코드에는 대상에서 있는 그대로 프로시저를 재생할 수 있는 충분한 정보가 있습니다.

프로시저 복제를 사용으로 설정하면 프로시저에 의해 영향을 받는 개별 레코드가 트레일 파일에 기록되지 않습니다.

PL/SQL 프로시저를 적용할 때 오류가 발생하면 Replicat는 전체 PL/SQL 프로시저를 리플레이할 수 있습니다.

프로시저 복제 설정 여부 확인

DBMS_GOLDENGATE_ADM 패키지의 GG_PROCEDURE_REPLICATION_ON 함수를 사용하여 Oracle GoldenGate 프로시저 복제가 설정 또는 해제되었는지 여부를 확인합니다.

프로시저 복제와 함께 Oracle AI Database Vault 환경에서 Oracle GoldenGate를 사용하려면 적절한 권한을 설정해야 합니다. Oracle AI Database Vault Administrator's Guide를 참조하십시오.

프로시저 복제를 활성화하려면 다음과 같이 하십시오.

  1. Oracle GoldenGate 관리자가 아닌 sys(sqlplus, sqlcl, sqldeveloper)로 데이터베이스에 접속합니다.

  2. GG_PROCEDURE_REPLICATION_ON 함수를 실행합니다.

예제 9-1 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;
/

보완 로깅 활성화 및 비활성화

Oracle GoldenGate는 프로시저 보완 로깅을 활성화 또는 비활성화할 수 있는 명령을 제공합니다.

보완 로깅을 사용으로 설정하려면 다음과 같이 하십시오.

  1. DBLOGIN를 사용하여 Oracle GoldenGate 관리자로 소스 데이터베이스에 접속합니다.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. 프로시저 복제에 대한 보완 로깅을 추가합니다.

    ADD PROCEDURETRANDATA

    출력은 다음과 같이 표시됩니다.

    INFO OGG-13005 PROCEDURETRANDATA supplemental logging has been enabled.

프로시저 복제에 대한 보완 로깅이 사용으로 설정되었습니다.

보완 로깅을 비활성화하려면 다음을 수행합니다.

  1. dblogin을 사용하여 Oracle GoldenGate 관리자로 소스 데이터베이스에 접속합니다.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. 프로시저 복제에 대한 보완 로깅을 제거하십시오.

    DELETE PROCEDURETRANDATA

프로시저 복제에 대해 보완 로깅이 사용 안함으로 설정되었습니다.

보완 로깅에 대한 정보를 보려면 다음과 같이 하십시오.

  1. dblogin을 사용하여 Oracle GoldenGate 관리자로 소스 데이터베이스에 접속합니다.

    CONNECT https://localhost:9000 DEPLOYMENT demo AS ggadmin PASSWORD adminpw
    DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
  2. 프로시저 복제를 위한 보완 로깅 정보를 표시합니다.

    INFO PROCEDURETRANDATA

프로시저 복제에 대한 보완 로깅 정보가 표시됩니다.

절차 복제를 위한 필터링 기능

프로시저 복제를 위해 포함하거나 제외할 프로시저와 패키지를 지정할 수 있습니다.

기능 그룹을 사용하여 지원되는 패키지 및 프로시저를 그룹화합니다. 프로시저 매개변수는 INCLUDE 또는 EXCLUDE 키워드와 함께 사용하여 프로시저 복제 기능을 필터링합니다.

프로시저 매개변수에서 INCLUDE 또는 EXCLUDE는 필터링 절의 시작을 지정합니다. 복제(INCLUDE) 또는 필터링(EXCLUDE)할 프로시저를 지정합니다. 필터링 절은 INCLUDE ALL_SUPPORTED 또는 EXCLUDE ALL_SUPPORTED 키워드와 프로시저 매개변수의 다른 필터링 옵션의 적합한 조합으로 구성되어야 합니다. EXCLUDE 필터는 동일한 조건을 포함하는 INCLUDE 필터보다 우선합니다.

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

Extract에 모든 시스템 제공 패키지 포함:

  1. 소스 데이터베이스에서 Extract에 접속합니다.

    EXTRACT edba

    USERIDALIAS admin_dbA DOMAIN ORADEV

  2. 새 트레일 파일을 만듭니다.

    EXTTRAIL ea

  3. 아직 수행되지 않은 경우 프로시저 복제를 사용으로 설정합니다.

    TRANLOGOPTIONS INTEGRATEDPARAMS (ENABLE_PROCEDURAL_REPLICATION Y)

  4. 프로시저 복제에 대한 필터를 포함합니다.

    PROCEDURE INCLUDE FEATURE ALL_SUPPORTED

프로시저 복제를 위해 시스템에서 제공한 모든 패키지를 성공적으로 포함시켰습니다.

Replicat에서 특정 패키지 제외:

  1. 대상 데이터베이스에서 Replicat에 접속합니다.

    REPLICAT rdba

    USERIDALIAS admin_dbBDOMAIN ORADEV

  2. 프로시저 복제에 대한 필터를 포함합니다.

    PROCEDURE EXCLUDE FEATURE RLS

프로시저 복제를 위해 특정 패키지를 성공적으로 제외했습니다.

프로시저 복제 오류 처리

절차적 복제는 절차적 오류가 발생할 때 REPERROR 매개변수를 사용하여 Replicat의 동작을 구성합니다.

기본적으로 절차 복제가 발생할 때 Replicat가 비정상 종료되므로 다음 단계를 사용하면 오류 처리가 설정됩니다.

  1. 대상 데이터베이스에서 Replicat에 접속합니다.

    REPLICAT rdba

    USERIDALIAS admin_dbBDOMAIN ORADEV

  2. 프로시저 복제에 대한 필터를 포함합니다.

    PROCEDURE EXCLUDE FEATURE RLS

  3. 오류 처리 매개변수를 지정합니다. 다른 옵션은 Oracle GoldenGate용 매개변수 및 함수 참조의 REPERROR를 참조하십시오.

    REPERROR (PROCEDURE, DISCARD)

절차 복제에 대한 오류를 성공적으로 처리했습니다.

Oracle GoldenGate 프로시저 복제에 대해 지원되는 프로시저 나열

DBA_GG_SUPPORTED_PROCEDURES 뷰에는 Oracle GoldenGate 절차 복제를 위해 지원되는 패키지에 대한 정보가 표시됩니다.

프로시저가 지원되고 Oracle GoldenGate 프로시저 복제가 설정된 경우 프로시저가 특별히 제외되지 않는 한 프로시저 호출이 복제됩니다.

  1. Oracle GoldenGate 관리자가 아닌 sys(sqlplus, sqlcl, sqldeveloper)로 데이터베이스에 접속합니다.

  2. DBA_GG_SUPPORTED_PROCEDURES 뷰를 질의합니다.

예제 9-2 Oracle GoldenGate 프로시저 복제에 지원되는 패키지에 대한 정보 표시

이 질의는 패키지에 대한 다음 정보를 표시합니다.

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;

출력이 다음과 같이 표시됩니다.

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

Oracle GoldenGate 프로시저 복제 모니터

데이터 딕셔너리 뷰 집합을 사용하면 Oracle GoldenGate 프로시저 복제를 모니터할 수 있습니다.

다음 뷰를 사용하여 Oracle GoldenGate 프로시저 복제를 모니터할 수 있습니다.

보기 설명
DBA_GG_SUPPORTED_PACKAGES

Oracle GoldenGate 절차 복제를 위해 지원되는 패키지에 대한 세부정보를 제공합니다.

패키지가 지원되고 Oracle GoldenGate 프로시저 복제가 설정된 경우 패키지의 서브 프로그램 호출이 복제됩니다.

DBA_GG_SUPPORTED_PROCEDURES Oracle GoldenGate 절차 복제에 대해 지원되는 절차에 대한 세부정보를 제공합니다.
DBA_GG_PROC_OBJECT_EXCLUSION

Oracle GoldenGate 절차 복제에 대한 제외 목록에 있는 모든 데이터베이스 객체에 대한 세부정보를 제공합니다.

데이터베이스 객체는 DBMS_GOLDENGATE_ADM 패키지의 INSERT_PROCREP_EXCLUSION_OBJ 프로시저를 사용하여 제외 목록에 추가됩니다. 데이터베이스 객체가 제외 리스트에 있는 경우 서브 프로그램이 제외된 객체에서 작동하면 패키지 n 서브 프로그램의 실행이 복제되지 않습니다.

  1. Oracle GoldenGate 관리자가 아닌 sys(sqlplus, sqlcl 또는 sqldeveloper)로 데이터베이스에 접속합니다.

  2. Oracle GoldenGate 절차 복제와 관련된 뷰를 질의합니다.