Oracle GoldenGate 배치에 대한 다운스트림 추출

다운스트림 Oracle GoldenGate 배치를 사용하면 리두 로그 처리를 마이닝 데이터베이스라고 하는 대체 데이터베이스로 오프로드할 수 있습니다. 마이닝 데이터베이스는 원본 데이터베이스의 데이터를 포함할 필요는 없지만 동일한 데이터베이스 버전 이상이어야 합니다. 즉, 소스 데이터베이스로서 Oracle 버전 12c은 마이닝 데이터베이스 버전 19c 이상을 사용할 수 있으므로 Oracle GoldenGate는 Oracle 12 데이터베이스에서 실제로 실행되지 않고도 Oracle 12c 데이터베이스의 변경 사항을 캡처할 수 있습니다.

다운스트림 Extract는 GoldenGate가 소스 데이터베이스에 접속할 수 없는 경우에도 사용할 수 있습니다.

주: 소스 및 다운스트림 데이터베이스 서버는 엔디언과 프로세서 유형이 동일해야 합니다. 예를 들어 다운스트림 Extract는 소스 Linux(x86)에서 다운스트림 Windows(x86) 서버로 작동하지만 소스 서버가 HP-UX이지만 다운스트림 서버가 AIX이거나 소스 서버가 HP PA-RISC이지만 다운스트림 서버는 HP-Itanium인 경우에는 작동하지 않습니다.

다운스트림 마이닝 데이터베이스는 원본 데이터베이스에서 아카이브된 로그 및 온라인 리두 로그를 받아들입니다. 이는 다운스트림 Extract가 다음 두 가지 모드로 존재할 수 있음을 의미합니다.

일반적인 다운스트림 배포에서 데이터가 변경되는 소스 데이터베이스는 Extract 프로세스가 리두 로그를 마이닝하고 트레일 파일을 기록하는 마이닝 데이터베이스로 리두 로그 또는 아카이브 로그를 전달합니다. 다운스트림 Extract는 Oracle GoldenGate가 소스 데이터베이스와 접속을 설정할 수 없는 경우에도 사용할 수 있습니다. 다음 다이어그램에서 CDBNORTH는 소스 데이터베이스이고 CDBSOUTH는 대상 데이터베이스입니다. 다운스트림 Extract에서 대상으로 리두 로그를 전송하는 데이터베이스 로그 마이닝 서버를 사용하여 소스와 대상 간에 마이닝 데이터베이스가 있습니다.

소스 다중 테넌트 컨테이너 데이터베이스와 logmining 서버가 있는 다운스트림 데이터베이스 간의 워크플로우입니다.

다른 옵션은 계단식 접근 방식을 사용하는 것입니다. Active Data Guard standby가 있는 경우 primary database에서 로그를 전달하는 대신 standby database가 마이닝 데이터베이스로 리두 로그를 전달하도록 할 수 있습니다. 네트워크 대역폭이 제한되어 있고 대기 데이터베이스가 마이닝 데이터베이스와 동일한 영역 또는 데이터 센터에 있는 경우 이 옵션을 사용해야 합니다.

이 접근 방법은 계단식 모드로 구성된 ADG를 사용하여 리두 로그를 다운스트림 마이닝 데이터베이스로 전송한 다음 다운스트림 Extract에서 참조하여 다음 다이어그램에 표시된 대로 소스 데이터베이스의 오버헤드를 줄입니다.

주: Oracle의 Extract 프로세스는 데이터를 캡처하기 위해 Data Guard 대기 또는 Active Data Guard 대기 데이터베이스에 접속할 수 없습니다.

ADG(Active Data Guard)에 연결된 다운스트림 데이터베이스

계단식 다운스트림 환경 설정에 대한 구성 세부정보는 ADG를 사용하여 작동하도록 다운스트림 추출 사용을 참조하십시오.

소스 및 다운스트림 마이닝 데이터베이스 구성

이 섹션에서는 데이터베이스측에 필요한 파라미터 및 유저 관리 구성에 대해 배웁니다.

소스 및 다운스트림 마이닝 데이터베이스의 Oracle GoldenGate 사용자

Oracle GoldenGate 관리자 사용자는 각 데이터베이스에 존재해야 합니다. 컨테이너 데이터베이스에서는 추출이 루트 컨테이너 내에서 사용되므로 공통 사용자가 필요합니다.

Oracle AI Database 26ai 이상에 대한 사용자를 설정하려면 새 사용자에게 OGG_CAPTURE 및 OGG_APPLY 사용자 역할을 지정해야 합니다. 자세한 내용은 Oracle AI Database 26ai 및 Higher에 대한 사용자 권한 부여를 참조하십시오.

Oracle Database 21c 이하에 대해 사용자를 설정하기 위해 PL/SQL 패키지가 사용됩니다. 다음 예에서는 Oracle GoldenGate를 Oracle Database 21c 이하와 함께 사용할 때 이 사용자에게 부여된 연관된 권한 및 사용자 생성을 보여줍니다.

CREATE USER c##ggadmin IDENTIFIED BY *password* CONTAINER = all;
ALTER USER c##ggadmin SET CONTAINER_DATA = all CONTAINER = current;
GRANT ALTER SESSION TO c##ggadmin CONTAINER = all;
GRANT connect, resource TO c##ggadmin CONTAINER = all;

BEGIN
  DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE
    ( grantee                 => 'C##GGADMIN'
    , privilege_type          => 'CAPTURE'
    , grant_select_privileges =>  TRUE
    , container               => 'ALL'
    );
END;
/

주: 공통 사용자(c##ggadmin)는 다운스트림 데이터베이스에만 필요합니다.

데이터베이스 연결 구성

데이터베이스 Net 서비스 요구 사항

소스 및 다운스트림 데이터베이스는 Database Net Services를 양방향으로 사용하여 액세스할 수 있습니다.

Oracle GoldenGate에서는 소스 데이터베이스(CDBNORTH_root) 및 다운스트림 데이터베이스(cdbDSC_root)에 대한 연결을 설정할 수 있습니다. 소스 데이터베이스 연결은 Extract 등록 중 딕셔너리 데이터를 저장하는 데만 필요합니다. FETCHUSERIDALIAS 매개변수를 사용하여 런타임 시 인출에 대한 다운스트림 마이닝 데이터베이스(cdbDSC_root)에 접속할 수 있습니다. ADG 재지정을 사용하면 Extract 등록이 ADG에서 소스로 재지정될 수 있습니다. 연결을 설정하려면 Oracle GoldenGate 배치에서 인증서를 생성하려면 해당 사용자에 대한 데이터베이스 인증서가 있는지 확인하십시오.

Oracle GoldenGate Shiphome의 일부인 SQL*Plus를 사용하여 Net 서비스를 테스트할 수 있습니다.

소스 데이터베이스 필요 조건

데이터베이스 연결을 구성하려면 원본 데이터베이스 Instance에서 다음 설정이 수행되었는지 확인합니다.

다운스트림 마이닝 데이터베이스 필요 조건

데이터베이스 연결을 구성하려면 소스 및 다운스트림 데이터베이스 Instance에서 다음 설정이 수행되었는지 확인합니다.

다운스트림 데이터베이스에 대한 매개변수 구성

이 섹션에서는 필요에 따라 실시간 마이닝 모드 및 아카이브 마이닝 모드에 대한 매개변수를 구성할 수 있습니다.

실시간 마이닝 모드의 다운스트림 추출에 대한 매개변수 설정

실시간 마이닝 모드의 다운스트림 Extract의 경우 다운스트림 데이터베이스에 대기 리두 로그 파일이 올바르게 구성되어 있어야 합니다.

다운스트림 실시간 마이닝은 추출 매개변수 파일 내의 명시적 설정으로 활성화됩니다. LAD 구성은 이 모드와 독립적입니다. TRANLOGOPTIONS INTEGRATEDPARAMS (REAL_TIME_MINE Y) 매개변수가 아직 설정되지 않은 경우 실시간 마이닝 모드에 대해 다운스트림 Extract를 사용으로 설정하도록 설정해야 합니다.

TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)

주: 제공된 소스 데이터베이스의 다운스트림 데이터베이스에는 실시간 Extract가 하나만 있을 수 있습니다. 다른 추출은 비실시간이어야 합니다. 리두 전송의 제한 사항입니다.

다운스트림 마이닝 데이터베이스에서 실행되는 다음 명령은 FRA를 사용하여 설정 중인 로컬 백업을 보여줍니다.

ALTER SYSTEM
    SET log_archive_config='DG_CONFIG=(CDBNORTH, cdbDSC)';
ALTER SYSTEM set FAL_SERVER = 'CDBNORTH_root';

다운스트림 데이터베이스에 대기 리두 로그 파일이 있어야 합니다. 소스에 온라인 리두 로그 파일이 n개 있는 경우 동일한 크기의 대상에 대기 리두 로그 파일이 n+1개 있어야 합니다.

다운스트림 마이닝 데이터베이스에서 대기 리두 로그 파일 생성

다음 단계에서는 다운스트림 마이닝 데이터베이스에 standby 리두 로그 파일을 추가하는 절차를 간략히 설명합니다. 다음은 standby 리두 로그 생성 규칙을 요약한 것입니다.

standby 리두 로그 파일을 추가하는 데 필요한 특정 단계 및 SQL 문은 환경에 따라 다릅니다. 데이터베이스에 대기 리두 로그 파일을 추가하는 방법에 대한 자세한 지침은 Creating a Physical Standby Database를 참조하십시오.

주: 단일 다운스트림 마이닝 데이터베이스로 리두를 전송하는 소스 데이터베이스가 여러 개 있는 경우 해당 소스 중 하나만 마이닝 데이터베이스의 대기 리두 로그로 리두를 전송할 수 있습니다. 이 소스 데이터베이스에서 리두를 마이닝하는 Extract 프로세스는 실시간 모드로 실행될 수 있습니다. 다른 모든 소스 데이터베이스는 아카이브된 로그만 다운스트림 마이닝 데이터베이스로 전송해야 하며 이 데이터를 읽는 Extracts는 아카이브된 로그 전용 모드로 실행되도록 구성해야 합니다.

대기 리두 로그 파일 생성

  1. SQL*Plus에서 관리 유저로 원본 데이터베이스에 연결합니다.

  2. 소스 로그 파일의 크기를 결정합니다. 결과를 기록해 둡니다.

    SELECT BYTES FROM V$LOG;
  3. 원본 데이터베이스에 구성된 온라인 로그 파일 그룹 수를 확인합니다. 결과를 기록해 둡니다.

    SELECT COUNT(GROUP#) FROM V$LOG;
  4. 다운스트림 마이닝 데이터베이스에 관리 유저로 연결합니다.

  5. 마이닝 데이터베이스에 대기 로그 파일 그룹을 추가합니다. 대기 로그 파일 크기는 최소한 소스 로그 파일 크기의 크기여야 합니다. 대기 로그 파일 그룹의 수는 적어도 하나의 소스 온라인 로그 파일 그룹 수보다 많아야 합니다. 이는 RAC 설치의 각 인스턴스(스레드)에 적용됩니다. 따라서 소스 데이터베이스에 n개의 스레드가 있고 각각 m개의 리두 로그 그룹이 있는 경우 다운스트림 마이닝 데이터베이스에서 n*(m+1)개의 리두 로그 그룹을 구성해야 합니다.

    다음 예에서는 세 개의 대기 로그 그룹을 보여줍니다.

    ALTER DATABASE ADD STANDBY LOGFILE GROUP 3
    ('/oracle/dbs/slog3a.rdo', '/oracle/dbs/slog3b.rdo') SIZE 500M;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 4
    ('/oracle/dbs/slog4.rdo', '/oracle/dbs/slog4b.rdo') SIZE 500M;
    ALTER DATABASE ADD STANDBY LOGFILE GROUP 5
    ('/oracle/dbs/slog5.rdo', '/oracle/dbs/slog5b.rdo') SIZE 500M;
  6. standby 로그 파일 그룹이 성공적으로 추가되었는지 확인합니다.

    SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS
    FROM V$STANDBY_LOG;

    다음과 같은 결과가 출력되어야 합니다.

    GROUP#     THREAD#    SEQUENCE#  ARC STATUS
    
    ---------- ---------- ---------- --- ----------
             3          0          0 YES UNASSIGNED
             4          0          0 YES UNASSIGNED
             5          0          0 YES UNASSIGNED
  7. 소스 데이터베이스의 로그 파일이 설정한 로컬 LOG_ARCHIVE_DEST_n의 LOCATION 속성에 지정된 위치에 나타나는지 확인합니다. 디렉토리의 파일을 보려면 소스 데이터베이스의 로그 파일을 전환해야 할 수 있습니다.

다운스트림 마이닝 데이터베이스를 구성하여 대기 리두 로그 파일을 로컬에 아카이브

이 프로시저는 원본 데이터베이스의 온라인 리두 로그에서 리두 데이터를 수신하는 standby 리두 로그를 아카이브하도록 다운스트림 마이닝 데이터베이스를 구성합니다. 외래 아카이브된 로그는 다운스트림 마이닝 데이터베이스의 Recovery Area에 아카이브해서는 안됩니다.

대기 리두 로그를 로컬로 아카이브하려면 다음과 같이 하십시오.

  1. 다운스트림 마이닝 데이터베이스에서 다음 예제와 같이 LOG_ARCHIVE_DEST_n 초기화 파라미터에서 두번째 아카이브 로그 대상을 설정합니다.

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=/home/arc_dest/srl_dbms1
    VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)'

    Oracle은 외래 아카이브된 로그(원격 소스 데이터베이스의 로그)를 로컬 마이닝 데이터베이스 로그 파일과 별도로 보관할 것을 권장합니다. 외래 아카이브된 로그를 스테이지하기 위해 다운스트림 마이닝 데이터베이스의 Recovery Area를 사용하면 안됩니다.

  2. 다음 예와 같이 이전 단계에서 설정한 LOG_ARCHIVE_DEST_2 매개변수를 사용으로 설정합니다.

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE

아카이브 마이닝 모드의 다운스트림 추출에 대한 매개변수 설정

아카이브 마이닝 모드 또는 실시간 마이닝 모드에서 다운스트림 Extract를 설정하려면 리두 전송을 설정해야 합니다. 다운스트림 Extract를 아카이브 로그 전용 모드로 설정할 때 다음 매개변수를 포함합니다.

주: LOG_ARCHIVE_DEST_2는 실시간 마이닝 사용과는 독립적입니다.

소스 데이터베이스의 로컬 백업 대상 및 리두 전송 서비스에 대해 LAD(아카이브 로그 대상) 파라미터 설정이 필요합니다.

다음 명령을 사용하여 로컬 백업 대상에 대한 LAD 매개변수를 설정합니다.

ALTER SYSTEM SET db_recovery_file_dest = '/u01/app/oracle/fast_recovery_area';
ALTER SYSTEM SET db_recovery_file_dest_size = 100G;
ALTER SYSTEM SET log_archive_dest_1 = 'LOCATION=USE_DB_RECOVERY_FILE_DEST';

다음 명령을 사용하여 소스 데이터베이스에서 리두 전송 서비스에 대한 LAD 매개변수 옵션을 설정합니다.

ALTER SYSTEM SET log_archive_config = 'DG_CONFIG = (CDBNORTH, cdbDSC)';
ALTER SYSTEM
      SET log_archive_dest_2='SERVICE=cdbDSC_root
                              ASYNC
                              NOREGISTER
                              VALID_FOR=(ONLINE_LOGFILES, PRIMARY_ROLE)
                              DB_UNIQUE_NAME=cdbDSC';

LOG_ARCHIVE_DEST 매개변수 및 해당 속성에 대한 자세한 내용은 데이터베이스 참조 설명서의 LOG_ARCHIVE_DEST_n을 참조하십시오.

다운스트림 배치를 위한 Oracle GoldenGate Extract 구성

이 섹션에서는 Oracle GoldenGate에서 소스 및 다운스트림 데이터베이스와의 연결을 설정하고 다운스트림 데이터베이스에 대해 Extract를 구성하는 데 필요한 매개변수에 대해 알아봅니다.

다운스트림 데이터베이스에 대한 Oracle GoldenGate 구성

다운스트림 Extract 매개변수 파일에는 다운스트림 배치를 설정하기 위한 다음 매개변수가 포함되어야 합니다.

다음은 이러한 매개변수를 포함하는 Extract 매개변수 파일의 예입니다.

EXTRACT EXTDSC
USERIDALIAS cgg_CDBNORTH
TRANLOGOPTIONS MININGUSERALIAS cgg_cdbDSC
TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)
FETCHUSERIDALIAS cgg_CDBNORTH DOMAIN OracleGoldenGate

EXTTRAIL Downstream/ea
SOURCECATALOG CDBNORTH_PDB1
DDL INCLUDE MAPPED
TABLE HR.*;

제공된 단계에 따라 다운스트림 추출에 대한 Oracle GoldenGate 배치를 설정합니다.

  1. 소스 데이터베이스에 대한 인증서를 추가합니다.

    ALTER CREDENTIALSTORE ADD USER c##ggadmin@CDBNORTH_root ALIAS cgg_CDBNORTH DOMAIN OracleGoldenGate PASSWORD password

  2. 다운스트림 데이터베이스에 대한 인증서 추가:

    ALTER CREDENTIALSTORE ADD USER c##ggadmin@cdbDSC_root ALIAS cgg_cdbDSC DOMAIN OracleGoldenGate PASSWORD *password*
  3. DBLOGIN를 사용하여 Oracle GoldenGate에서 소스 데이터베이스 및 다운스트림 데이터베이스에 접속합니다.

    DBLOGIN USERIDALIAS cgg_CDBNORTH
    MININGDBLOGIN USERIDALIAS cgg_cdbDSC

    이 예에서 cgg_CDBNORTH는 소스 데이터베이스 CDBNORTH의 인증서 별칭이고 cgg_cdbDSC는 마이닝 데이터베이스의 인증서 별칭입니다.

  4. 추출 추가 및 등록, 이전에 제공된 추출 매개변수를 포함하도록 매개변수 파일 편집, 추출 추적 이름 및 위치 추가, 추출 시작:

    ADD EXTRACT extdsc, INTEGRATED TRANLOG, BEGIN NOW
    REGISTER EXTRACT extdsc, DATABASE CONTAINER (CDBNORTH_PDB01)
    
    ADD EXTTRAIL Downstream/ea, EXTRACT extdsc
    START extdsc

Active Data Guard를 사용하여 계단식 다운스트림 추출 구성

소스 데이터베이스에 연결할 수 없는 경우 ADG(Active Data Guard) 대기 데이터베이스를 사용하도록 GoldenGate를 구성할 수 있습니다. standby database는 메타 데이터 query 및 패치(fetch)를 수행하기 위해 읽기 전용 연결에 사용할 수 있습니다. 이 섹션에서는 소스 데이터베이스와의 연결을 설정하지 않고 ADG를 사용하여 다운스트림 Extract를 구성하는 방법에 대해 알아봅니다.

ADG로 작동하도록 다운스트림 추출 사용

계단식 다운스트림 캡처 환경에서는 다운스트림 데이터베이스가 원본 데이터베이스에 직접 연결하지 않습니다 ADG(Active Data Guard)를 사용하여 메타 데이터 query를 패치(fetch)합니다.

소스 데이터베이스에 접속하지 않고 고유하지 않은 데이터 유형을 인출해야 할 경우 FETCHUSERID 또는 FETCHUSERIDALIAS를 사용하여 ADG에 접속하도록 소스 없는 옵션을 사용하여 추출을 시작해야 합니다. 예를 들어, 이 instance는 읽기 전용 모드로 열려 있으므로 ADG 데이터베이스에서 FETCH 작업이 처리됩니다. 딕셔너리 빌드 생성과 같이 ADG instance에서 처리할 수 없는 다른 작업은 ADG에서 원본 데이터베이스로 재지정됩니다.

다운스트림 Extract를 등록할 때 Oracle GoldenGate는 리두가 시작되는 데이터베이스 대신 소스 데이터베이스로 ADG에 접속합니다. ADG 재지정은 다음 명령 및 매개변수에 대해 지원됩니다.

ADG Redirection은 Oracle Database 21c 이상에서 사용할 수 있습니다. 또한 와일드카드 등록을 지원합니다. 다음 예에서는 ADG를 사용할 때 다운스트림 Extract에 대한 Extract 매개변수 파일을 보여줍니다.

EXTRACT EXTDSC
NOUSERID
TRANLOGOPTIONS MININGUSERALIAS cgg_cdbDSC_src DOMAIN OracleGoldenGate
TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y) FETCHUSERIDALIAS cgg_cdbADG_src DOMAIN OracleGoldenGate

EXTTRAIL cascade/ea
SOURCECATALOG CDBNORTH_PDB01
DDL INCLUDE MAPPED
TABLE HR.*;

다음은 다운스트림 Extract가 ADG Standby에서 작동하도록 설정하는 단계입니다.

  1. 다음 예제와 같이 ADG 대기 데이터베이스에 LOG_ARCHIVE_DESTINATION_N (LAD)를 추가합니다.

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='service=mining_db_service_name ASYNC NOREGISTER VALID_FOR(STANDBY_LOGFILES,STANDBY_ROLES) DB_UNIQUE_NAME=3rd_db_unique_name' scope=both

    이 단계는 ADG standby에 대해 standby_logfiles를 전송하고 생성합니다.

  2. 다음 예제와 같이 ADG standby에서 LOG_ARCHIVE_CONFIG를 설정하여 마이닝 데이터베이스로 로그를 전달합니다.

    ALTER SYSTEM SET LOG_ARCHIVE_CONFIG = 'DG_CONFIG' = (CDBNORTH, cdbADG_src, cdbDSC)';

    DB_CONFIG은 첫번째, 두번째 및 세번째 데이터베이스의 데이터베이스 고유 이름입니다.

  3. 다음 예제와 같이 마이닝 데이터베이스에서 수신되는 standby_logfiles를 마이닝 데이터베이스에 저장할 위치를 설정합니다.

    ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='location= /home/arc_dest/dstrm VALID_FOR=(STANDBY_LOGFILE,ALL_ROLES)' scope=both

    여기서 /home/arc_dest/dstrm는 외부 아카이브 로그의 위치입니다. 외부 아카이브 로그를 저장하는 데 FRA를 사용하지 마십시오.

  4. Run LOG_ARCHIVE_CONFIG on the mining database, so that the Extract process is able to read them on the mining database, as shown in the following example:

    ALTER SYSTEM SET LOG_ARCHIVE_CONFIG ='DG_CONFIG' scope=both

    여기서 DB_CONFIG는 첫번째, 두번째 및 세번째 데이터베이스의 데이터베이스 고유 이름입니다.

  5. 다운스트림 Extract의 경우 데이터베이스 접속이 적절하게 구성되었는지 확인해야 합니다. Extract를 등록할 때는 읽기 전용 작업을 위해 열려 있는 ADG Standby에 DBLOGIN 접속이 수행되었는지 확인하십시오.

  6. Extract를 추가하고 등록하려면 다음 명령을 사용합니다.

    DBLOGIN USERID ggadmin@cdbADG_src, PASSWORD ggadmin
    MININGDBLOGIN USERID ggadmin@cgg_cdbDSC, password ggadmin

    cdbADG_src는 기본이 아닌 ADG입니다.

cgg_cdbDSC는 마이닝 데이터베이스입니다.

  1. 이제 NOUSERID 매개변수를 사용하는 Extract를 등록합니다.

    ADD EXTRACT exte, INTEGRATED TRANLOG, BEGIN NOW REGISTER EXTRACT exte DATABASE
  2. Extract가 등록된 후 이 Extract를 사용하여 데이터를 마이닝하고 Extract를 정상적으로 시작할 수 있습니다.