작업 2: Oracle GoldenGate 환경 구성

다음 단계를 수행하여 이 작업을 완료합니다.

2.1단계: 배치 액세스

배치에 액세스하려면 다음과 같이 하십시오.

2.2단계: 데이터베이스 인증서 생성

Oracle GoldenGate 마이크로서비스 UI를 사용하여 위의 TNS 별칭 이름을 사용하여 데이터베이스 인증서를 생성합니다. oggadmin 사용자로 데이터베이스 인증서를 추가합니다.

  1. Oracle GoldenGate 관리 서비스(https://localhost:<localPort>/services/<deployment_name>/adminsrvr/v2/content/)에 로그인합니다.

  2. 왼쪽 탐색 메뉴에서 DB 접속을 선택합니다.

  3. DB 접속 페이지에서 DB 접속 추가(더하기 아이콘)를 선택합니다.

  4. 각 소스 및 대상 CDB 및 PDB에 필요한 정보를 추가합니다.

    지역 컨테이너 도메인 별칭 사용자 ID
    지역 1 CDB GoldenGate Reg1_CDB c# #ggadmin@
    지역 1 PDB GoldenGate Reg1_PDB ggadmin@
    지역 2 CDB GoldenGate Reg2_CDB c# #ggadmin@
    지역 2 PDB GoldenGate Reg2_PDB ggadmin@

2.3단계: 자동 시작 프로파일 생성

Oracle GoldenGate 관리 서버가 시작될 때 Extract 및 Replicat 프로세스를 자동으로 시작하고 Extract 또는 Replicat 프로세스가 중단된 경우 재시작하는 프로파일을 생성합니다. GoldenGate 마이크로서비스에서 프로파일은 자동 시작 및 재시작을 관리합니다.

Oracle GoldenGate 관리 서버 UI를 사용하여 각 Oracle GoldenGate 프로세스에 지정할 프로파일을 생성합니다.

  1. 소스 GoldenGate 배포에 대해 GoldenGate WebUI에 로그인합니다.

  2. 탐색 메뉴에서 관리되는 프로세스 프로파일을 선택합니다.

  3. [관리 프로세스 설정] 페이지에서 프로파일 추가를 선택합니다.

  4. 다음과 같이 상세내역을 입력합니다.

    • 프로필 이름: Start_Default

    • 설명: 기본 자동 시작/다시 시작 프로파일

    • 기본 프로파일: 예

    • 자동 시작: 예

    • 자동 시작 옵션

      • 시작 지연: 1분

      • 자동 재시작: 예

    • 자동 재시작 옵션

      • 최대 재시도 횟수: 5

      • 재시도 지연: 30초

      • 재시도 기간: 30분

      • 실패 시에만 재시작: 예

      • 재시도 후 태스크 비활성화 소진됨: 예

  5. 제출을 선택합니다

  6. 대상 GoldenGate 배치에서 이러한 단계를 반복합니다.

2.4단계: Oracle GoldenGate 프로세스 구성

Oracle GoldenGate Microservices Architecture를 사용하여 Extract, Distribution Paths 및 Replicat 프로세스를 생성할 때는 GGHub 노드 간에 공유해야 하는 모든 파일이 이미 공유 파일 시스템에 저장된 배치 파일과 공유됩니다.

다음은 Extract, Distribution Paths 및 Replicat 프로세스용 GGhub에서 Oracle GoldenGate Microservices를 실행하는 데 권장되는 필수 구성 세부정보입니다.

다음 하위 단계를 수행하여 이 단계를 완료합니다.

2.5.1단계: 구성 추출

Oracle GoldenGate 관리 서비스 인터페이스를 사용하여 Extract를 생성할 때 추적 하위 디렉토리 매개변수를 비워 두면 추적 파일이 공유 파일 시스템에 저장된 배치 디렉토리에 자동으로 생성됩니다. 추적 파일의 기본 위치는 /<deployment directory>/var/lib/data 디렉토리입니다.

주: 다중 테넌트 데이터베이스에서 캡처하려면 c## 계정을 사용하여 루트 레벨에서 구성된 Extract를 사용해야 합니다. 다중 테넌트 데이터베이스에 데이터를 적용하려면 Replicat가 PDB 레벨에서 연결되고 해당 PDB 외부의 객체에 대한 액세스 권한이 없으므로 각 PDB에 대해 별도의 Replicat가 필요합니다.

리두 전송 최대 성능 또는 최대 가용성 모드를 사용하는 Data Guard 구성을 사용하는 GoldenGate Extract 프로세스의 경우 트랜잭션 손실 및 논리적 데이터 불일치가 발생하지 않도록 기본 시스템의 Extract 프로세스 매개변수 파일에 다음 매개변수를 추가해야 합니다.

TRANLOGOPTIONS HANDLEDLFAILOVER

이 매개변수는 Extract가 Data Guard 대기 데이터베이스에 아직 적용되지 않은 리두에서 트랜잭션 데이터를 추출하지 못하도록 합니다. 이는 Oracle GoldenGate가 소스 대기 데이터베이스에 존재하지 않는 대상 데이터베이스에 데이터를 복제하지 못하도록 하는 데 중요합니다.

이 파라미터를 지정하지 않으면 원본 데이터베이스의 데이터 손실 failover 후에 원본 데이터베이스에 없는 Target Database의 데이터를 가질 수 있으므로 논리적 데이터 불일치가 발생합니다.

기본적으로 60초 후에는 대기 데이터베이스에서 적용된 SCN 정보를 질의할 수 없어 Extract가 정지될 때 Extract 보고서 파일에 경고 메시지가 기록됩니다. 예:

WARNING OGG-02721  Extract has been waiting for the standby database for 60 seconds.

추출 보고서 파일에 경고 메시지가 기록되기 전까지의 시간은 추출 매개변수 "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_WARNING"을 사용하여 조정할 수 있습니다.

Extract가 30분(기본값) 후에도 여전히 대기 데이터베이스에서 적용한 SCN 정보를 질의할 수 없는 경우 Extract 보고서 파일에 다음 메시지가 기록되고 Extract 프로세스가 비정상 종료됩니다.

ERROR   OGG-02722  Extract abended waiting for 1,800 seconds for the
    standby database to be accessible or caught up with the primary database.

기본 30 시간 초과가 만료되기 전에 대기 데이터베이스를 사용할 수 있게 되면 Extract는 소스 데이터베이스에서 데이터 마이닝을 계속하고 다음 메시지를 보고서 파일에 보고합니다.

INFO    OGG-02723  Extract resumed from stalled state and started processing LCRs.

시간 초과 값 30분은 Extract 매개변수 "TRANLOGOPTIONS HANDLEDLFAILOVER STANDBY_ABEND "을 사용하여 조정할 수 있습니다. 여기서 값은 비정상 종료 전 대기 데이터베이스를 사용할 수 없는 시간(초)입니다.

계획된 유지 관리 운용중단과 같이 장기간 대기 데이터베이스를 사용할 수 없으며 Extract가 기본 데이터베이스에서 데이터 추출을 계속하려면 Extract 매개변수 파일에서 "TRANLOGOPTIONS HANDLEDLFAILOVER" 매개변수를 제거하고 Extract를 재시작합니다(그림 4 - 6의 아래 예 참조). standby database가 사용 가능해지면 파라미터를 설정해야 합니다.

주: 대기 데이터베이스를 사용할 수 없는 동안 기본 데이터베이스에서 추출이 계속되면 대기 데이터베이스를 사용할 수 있게 된 후 데이터 손실 복구가 발생할 수 있으며 복구 전에 모든 기본 리두가 적용된 것은 아닙니다. GoldenGate 대상 데이터베이스는 소스 데이터베이스에 존재하지 않는 데이터를 포함합니다.

추출 프로세스에 자동 재시작 프로파일이 지정된 경우 Data Guard 롤 전환 후 추출 프로세스가 자동으로 재시작됩니다. Extract는 기본 5분 시간 초과 기간이 만료될 때까지 새 standby database의 현재 상태를 무시하고 새 primary database에서 계속 리두 데이터를 마이닝합니다. 이 시간 후 대기 데이터베이스를 사용할 수 없는 경우 Extract는 다음 오류와 함께 비정상 종료됩니다.

INFO    OGG-25053  Timeout waiting for 300 seconds for standby database
 reinstatement. Now enforcing HANDLEDLFAILOVER.
ERROR   OGG-06219  Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR   OGG-02078  Extract encountered a fatal error in a processing thread and is
 abending.

Extract는 GoldenGate 마이크로서비스 자동 재시작 프로파일을 기반으로 자동 재시작을 계속하며, 재시도 횟수에 도달하거나 새 대기 데이터베이스를 사용할 수 있게 될 때까지 HANDLEDLFAILOVER 시간 초과에 도달하여 실패합니다.

데이터베이스 롤 전환 후 시간 초과 기간 동안 HANDLEDLFAILOVER 매개변수가 자동으로 일시 중지되므로 소스 대기 데이터베이스가 최신 상태로 유지되지 않는 것을 고려하지 않고도 데이터가 Oracle GoldenGate 복제본 데이터베이스로 복제됩니다. Extract 비정상 종료 전에 대기 데이터베이스가 시작될 시간 초과 기간은 Extract 매개변수 TRANLOGOPTIONS DLFAILOVER_TIMEOUT을 사용하여 조정할 수 있습니다.

이전 기본 데이터베이스가 대기 데이터베이스로 변환되도록 하려면 DLFAILOVER_TIMEOUT를 기본값인 5분으로 두는 것이 좋습니다. 새 대기 데이터베이스를 장시간 사용할 수 없거나 완전히 사라진 경우 Extract가 시작되고 실행 중인 상태를 유지하려면 Extract 매개변수 파일에서 HANDLEDLFAILOVER 매개변수를 제거해야 합니다. 매개변수를 제거한 후 Extract는 데이터를 추출하기 전에 리두가 대기 데이터베이스에 적용될 때까지 더 이상 기다리지 않습니다.

대기 데이터베이스가 다시 온라인으로 전환되어 기본 데이터베이스의 모든 리두를 적용하는 데 걸리는 시간 동안 대기 데이터베이스와 Oracle GoldenGate 복제본 데이터베이스 간에 데이터 분기가 발생합니다. 이 문제는 standby database가 최신 상태가 되면 해결됩니다. 이때 HANDLEDLFAILOVER 매개변수를 다시 통합된 Extract 프로세스 매개변수 파일에 추가한 다음 Extract를 정지하고 재시작합니다.

Oracle Data Guard Fast-Start Failover가 비활성화된 경우 broker가 primary database 손실 시 자동으로 standby database로 failover할 수 있도록 하려면 아래에 나와 있는 추가 통합 Extract 파라미터를 지정해야 합니다.

TRANLOGOPTIONS FAILOVERTARGETDESTID n

이 매개변수는 대기 데이터베이스에 아직 적용되지 않은 리두 데이터를 추출하지 않는 것과 관련하여 Oracle GoldenGate Extract 프로세스가 남아 있어야 하는 대기 데이터베이스를 식별합니다.

Oracle Data Guard Fast-Start Failover가 비활성화되어 있고 추가 통합 Extract 매개변수 FAILOVERTARGETDESTID를 지정하지 않으면 다음 오류가 발생하여 추출이 비정상 종료됩니다.

ERROR OGG-06219 Unable to extract data from the Logmining server OGG$CAP_XXXXX.
ERROR OGG-02078 Extract encountered a fatal error in a processing thread and is abending.

FAILOVERTARGETDESTID에 대한 올바른 값을 확인하려면 소스 대기 데이터베이스로 리두를 전송하는 데 사용되는 GoldenGate 소스 데이터베이스의 LOG_ARCHIVE_DEST_N 매개변수를 사용합니다. 예를 들어, LOG_ARCHIVE_DEST_2가 대기 데이터베이스를 가리키는 경우 값 2를 사용합니다.

primary database 시스템의 oracle 유저로 다음 명령을 실행합니다.

[opc@exapri-node1 ~]$ sudo su - oracle
[oracle@exapri-node1 ~]$ source <db_name>.env
[oracle@exapri-node1 ~]$ sqlplus / as sysdba

SQL> show parameters log_archive_dest

NAME                  TYPE        VALUE
--------------------- ----------- ---------------------------------------------------
log_archive_dest_1    string      location=USE_DB_RECOVERY_FILE_DEST,
                                  valid_for=(ALL_LOGFILES, ALL_ROLES)

log_archive_dest_2    string      service="<db_name>", SYNC AFFIRM delay=0
                                  optional compression=disable max_failure=0 reopen=300
                                  db_unique_name="<db_name>" net_timeout=30,
                                  valid_for=(online_logfile,all_roles)

이 예제에서 Extract 매개변수는 다음과 같이 설정됩니다.

TRANLOGOPTIONS FAILOVERTARGETDESTID 2

다음과 같이 추출을 생성합니다.

  1. 소스 Oracle GoldenGate에 로그인합니다.

  2. 탐색 메뉴에서 추출을 선택합니다.

  3. 추출 페이지에서 추출 추가를 선택합니다.

  4. 다음과 같이 추출 추가 양식을 작성합니다.

    1. 추출 정보의 경우:

      • 추출 유형: 통합 추출.

      • 프로세스 이름: EXT_1

      • 설명: 지역 1 CDB 추출

    2. 추출 옵션의 경우:

      • 인증서 도메인: GoldenGate

      • 인증서 별칭: Reg1_CDB

      • PDB에 등록: PDB 이름

      • 의도: 단방향

      • 시작: 지금

      • 트레일 이름: aa

  5. 다음을 선택합니다.

  6. PDB에서 CDB 루트 캡처를 사용하는 경우 PDB 이름과 함께 SOURCECATALOG 매개변수를 추가합니다.

  7. 생성 및 실행을 선택합니다.

2.5.2단계 - Replicat 구성

Oracle은 일반적으로 GGHUB가 대상 Oracle GoldenGate 데이터베이스와 동일한 지역에 있을 때 대부분의 워크로드에 더 나은 적용 성능을 제공하는 통합 병렬 Replicat를 사용할 것을 권장합니다.

GGHUB와 대상 데이터베이스 간의 네트워크 대기 시간이 가능한 한 짧은 경우 최상의 적용 성능을 얻을 수 있습니다. 다음 구성은 Oracle GGHUB에서 실행되는 원격 Replicat에 권장됩니다.

2.5.2.1단계 - 체크포인트 테이블 생성

체크포인트 테이블은 Oracle GoldenGate Replicat 프로세스의 필수 구성요소입니다. Administration Service의 Credentials 페이지에서 데이터베이스에 연결한 후 체크포인트 테이블을 생성할 수 있습니다.

대상 배치에서 체크포인트 테이블을 생성합니다.

  1. Oracle GoldenGate 웹 UI에 로그인합니다.

  2. 탐색 메뉴에서 DB 접속을 선택한 다음 대상 데이터베이스에 접속합니다.

  3. 대상 데이터베이스에 성공적으로 접속한 후 체크포인트 테이블을 선택합니다.

  4. 체크포인트 추가(더하기 아이콘)를 선택합니다. Add Checkpoint 페이지가 표시됩니다.

  5. 체크포인트 테이블에 ggadmin.chkp_table를 입력합니다.

  6. 제출을 선택합니다

체크포인트 테이블 추가를 참조하십시오.

2.5.2.2단계 - Replicat 추가

데이터베이스 접속을 설정하고 확인한 후 다음 단계에 따라 배치에 대한 Replicat를 추가할 수 있습니다.

  1. 탐색 메뉴에서 복제를 선택합니다.

  2. [복제] 페이지에서 복제 추가(더하기 아이콘)를 선택합니다. Add Replicat(복제 추가) 페이지가 표시됩니다.

  3. Replicat 유형을 선택하고 다음을 선택합니다.

  4. 다음과 같이 상세내역을 입력합니다.

    • 프로세스 이름: REP_1

    • 설명: 영역 2 PDB에 대한 Replicat

    • 의도: 단방향

    • 인증서 도메인: GoldenGate

    • 인증서 별칭: Reg2_PDB

    • 소스: 트레일

    • 트레일 이름: aa

    • 시작: 로그의 위치

    • 체크포인트 테이블: "GGADMIN"."CHKP_TABLE"

  5. 다음을 선택합니다.

  6. 작업 메뉴에서 시작을 선택합니다.

2.5.3단계 - 배포 경로 구성

배포 경로는 다음 그림에 설명된 것과 같이 추적 파일을 다른 또는 동일한 영역의 추가 Oracle GoldenGate Hub로 전송해야 하는 경우에만 필요합니다.

그림 1: Oracle GoldenGate 배포 경로

다음에 대한 이미지 설명입니다.

NGINX Reverse Proxy와 함께 Oracle GoldenGate 배포 경로를 사용하는 경우 경로 클라이언트 및 서버 인증서가 구성되었는지 확인하기 위한 추가 단계를 수행해야 합니다.

자세한 내용은 배포 서비스 경로를 참조하십시오. 단계별 예는 "NGINX를 사용하여 온프레미스 Oracle GoldenGate를 OCI GoldenGate에 연결하기" 비디오에서 인증서를 올바르게 구성하는 것입니다.

다음은 이 하위 단계에서 수행되는 단계입니다.

단계 2.5.3.1 - 대상 서버의 루트 인증서를 다운로드한 다음 소스 Oracle GoldenGate에 업로드합니다.

대상 배포 서버의 루트 인증서를 다운로드하고 소스 배포 서비스 관리자에 CA 인증서를 추가합니다.

  1. 대상 GoldenGate에 대한 GoldenGate 웹 UI에 로그인합니다.

  2. Connect an on-premises Oracle GoldenGate to OCI GoldenGate using NGINX 비디오에서 "2단계 - 대상 서버의 루트 인증서 다운로드"를 따릅니다.

2.5.3.2단계 - 사용할 소스 Oracle GoldenGate에 대한 대상 배치에서 사용자 생성

  1. 대상 GoldenGate 웹 UI의 왼쪽 탐색에서 사용자 관리를 선택합니다.

  2. 새 사용자 추가를 선택한 후 다음을 완료합니다.

    1. 인증자: 드롭다운에서 비밀번호를 선택합니다.

    2. 역할: 드롭다운에서 연산자를 선택합니다.

    3. 사용자 이름: 사용자 이름을 입력합니다.

    4. 비밀번호 및 비밀번호 확인: 이 사용자와 연관된 비밀번호를 입력합니다.

  3. 제출을 선택합니다.

단계 2.5.3.3 - 소스 Oracle GoldenGate에서 경로 접속 생성

소스 배치에서 대상 배치를 이전 단계에서 생성한 유저와 연결하는 Path Connection을 생성합니다. 예를 들어, OP2C의 도메인과 WSSNET의 별칭입니다.

  1. 소스 Oracle GoldenGate에 로그인합니다.

  2. 탐색 메뉴에서 경로 접속을 선택합니다.

  3. [경로 접속] 페이지에서 경로 접속 추가를 선택한 후 다음을 완료합니다.

    1. 인증서 별칭: 별칭을 입력합니다.

    2. 사용자 ID: 2.5.3.2단계에서 생성한 사용자의 이름을 입력합니다.

    3. 비밀번호 및 비밀번호 확인: 2.5.3.2단계에서 이 사용자와 연관된 비밀번호를 입력합니다.

  4. 제출을 선택합니다.

단계 2.5.3.4 - 소스 Oracle GoldenGate에서 대상 배치로의 배포 경로 생성

배포 서버에서 수신기 서버로 추적 파일을 전송하기 위한 경로가 생성됩니다. 배포 서비스에서 경로를 생성할 수 있습니다. 소스 배치 경로를 추가하려면 다음과 같이 하십시오.

  1. 소스 Oracle GoldenGate의 탐색 메뉴에서 배포 서비스 경로를 선택합니다.

  2. Add Path(더하기 아이콘)를 선택합니다. Add Path 페이지가 표시됩니다.

  3. 다음과 같이 상세내역을 입력합니다.

    1. 경로 이름을 입력합니다.

    2. 소스의 경우 드롭다운에서 추출 이름을 선택합니다.

    3. 생성된 소스 URI의 경우 서버 이름으로 localhost를 입력합니다. 이렇게 하면 Oracle RAC 노드에서 배포 경로를 시작할 수 있습니다.

    4. 대상 인증 방법의 경우 UserID 별칭을 선택합니다.

    5. 대상의 경우 wss(보안 웹 소켓)를 선택합니다.

    6. 대상 호스트의 경우 대상 시스템에 연결하는 데 사용할 대상 호스트 이름/VIP를 입력합니다.

    7. 포트 번호에 대해 NGINX가 구성된 포트 번호를 입력합니다(기본값은 443).

    8. 도메인에 대해 2.3.3.3단계에서 생성한 인증서 도메인을 선택합니다.

    9. 별칭의 경우 2.3.3.3단계에서도 만든 자격 증명 별칭 wssnet을 선택합니다.

    10. 자동 다시 시작 옵션의 경우 배포 서버가 자동으로 시작될 때 배포 경로를 다시 시작하도록 설정합니다. 배포 서버의 RAC 노드 재배치 후 수동 개입이 필요하지 않도록 해야 합니다.

    11. 재시도에 10을 입력합니다.

    12. 다시 시작 시도 사이에 일시 중지할 시간(분)인 지연의 경우 1을 입력합니다.

  4. Create Path(경로 생성)를 선택합니다.

  5. [작업] 메뉴에서 시작을 선택합니다.