추출 및 복제 프로세스 추가 전

Oracle GoldenGate 배치에 대한 Extract 및 Replicat 프로세스를 생성하기 전에 필요한 필요 조건 구성에 대해 알아봅니다.

TRANDATA 추가

i, Db2 LUW, Db2 z/OS, Oracle, PostgreSQL, SQL Server 및 Sybase의 경우 적합합니다.

소스 데이터베이스에 따라 DML 작업을 캡처하려면 보완 로깅을 사용으로 설정해야 하며, 웹 인터페이스에서 데이터베이스 연결의 Trandata 메뉴를 통해 또는 ADD TRANDATA 또는 ADD SCHEMATRANDATA를 실행하여 관리 클라이언트에서 사용으로 설정할 수 있습니다(Oracle 전용).

초기 로드 Extract에 대해 소스 데이터베이스에서 TRANDATA을 추가할 필요가 없습니다. 그러나 초기 로드 추출 및 변경 데이터 캡처(CDC) 추출이 모두 함께 사용되는 경우 온라인 인스턴스화를 위해 초기 로드 추출을 시작하기 전에 TRANDATA를 추가해야 합니다.

Oracle AI Database에 대해 TRANDATA 또는 SCHEMATRANDATA 사용

이 작업은 테이블, 스키마 또는 Global(데이터베이스) 레벨에서 수행할 수 있습니다.

보완 로깅을 사용으로 설정하려면 DB 접속 페이지에서 데이터베이스에 접속하고 트랜다타 메뉴를 선택한 후 다음 단계를 수행합니다.

  1. 필요에 따라 Table 또는 Schema 옵션을 선택하고 더하기 기호를 눌러 추가합니다.

  2. 보완 로깅을 설정해야 하는 테이블의 이름을 입력합니다. 스키마 이름으로 전체 테이블 이름(예: HR.EMP)을 입력해야 합니다. 특정 테이블 이름 대신 와일드카드를 사용할 수도 있습니다.

  3. 제출을 누릅니다.

CDC 없이 초기 로드의 경우 ADD TRANDATA를 건너뛸 수 있습니다.

ADD TRANDATA 및 ADD SCHEMATRANDATA 명령을 사용하여 trandata 및 스키마 레벨 trandata를 설정할 수도 있습니다.

주: ADD TRANDATA 명령을 실행하기 전에 먼저 DBLOGIN 명령을 사용하여 Extract가 추가될 데이터베이스에 접속해야 합니다. 또한 Extract를 추가하기 전에 ADD TRANDATA 또는 ADD SCHEMATRANDATA 명령을 실행하십시오.

비Oracle 데이터베이스에 대해 TRANDATA 사용

Db2 i, Db2 LUW, Db2 z/OS, PostgreSQL, SQL Server 및 Sybase에 적합합니다.

이 작업은 테이블 또는 Global(데이터베이스) 레벨에서 수행할 수 있습니다. 보완 로깅을 사용으로 설정하려면 DB 접속 페이지에서 데이터베이스에 접속하고 트랜다타 메뉴를 선택한 후 다음 단계를 수행합니다.

  1. 테이블 옵션을 선택하고 더하기 기호를 눌러 추가합니다.

  2. 보완 로깅을 설정해야 하는 테이블의 이름을 입력합니다. 전체 테이블 이름(예: EMPLOYEE)을 입력하십시오. 특정 테이블 이름 대신 와일드카드를 사용할 수도 있습니다.

  3. 제출을 누릅니다.

i에 대해 Db2에 대한 변경 사항 캡처를 사용으로 설정하려면

저널의 테이블에 대한 변경 사항을 캡처하려면 IBM i 명령줄에서 STRJRNPF 명령을 실행하거나 관리 클라이언트에서 ADD TRANDATA 명령을 실행할 수 있습니다. ADD TRANDATA 명령은 STRJRNPF를 호출하며 테이블에 대한 저널 작스를 시작하는데 권장되는 방법입니다. 이 명령은 필요한 저널 이미지 속성 (IMAGES): *BOTH가 STRJRNPF 명령에서 설정되기 때문입니다.

ADD TRANDATA 명령은 다음과 같습니다.

ADD TRANDATA table_specification

여기서 table_specification는 다음 중 하나입니다:

-

*schema.table* [JOURNAL *library/journal*]

-

*library/file* [JOURNAL *library/journal]*)

기본 분개 지정

ADD TRANDATA 명령에서 여러 테이블 또는 파일에 대한 기본 저널을 지정하려면 JOURNAL 키워드를 지정하는 대신 ADD TRANDATA를 실행하기 전에 다음 명령을 사용합니다.

DEFAULTJOURNAL *library/journal*

저널 없이 사용되는 모든 ADD TRANDATA 명령은 DEFAULTJOURNAL의 저널을 사용하는 것입니다.

DEFAULTJOURNAL의 현재 설정을 표시하려는 경우 인수없이 명령을 실행할 수 있습니다.

기본 분개 사양 제거**

기본 저널 사용을 제거하려면 다음 명령을 사용합니다.

DEFAULTJOURNAL CLEAR

Db2 LUW에 대한 변경 사항 캡처를 사용으로 설정하려면

CREATE TABLE 및 ALTER TABLE 명령의 DATA CAPTURE CHANGES 기능에서 제공하는 확장된 형식으로 데이터 변경사항을 기록하도록 Db2를 구성합니다. 이 형식은 Oracle GoldenGate에 update 문에 의해 변경된 행의 이전 및 이후 전체 이미지를 제공합니다. 다음과 같이 ALTER TABLE 명령을 실행합니다.

다음 명령을 실행합니다.

ADD TRANDATA owner.table

여기서 owner.table는 테이블의 정규화된 이름입니다. 와일드카드를 사용하여 테이블 이름을 여러 개 지정할 수 있습니다.

ADD TRANDATA는 다음 명령을 실행합니다. 여기에는 LONGVAR 열의 이전 이미지 로깅이 포함됩니다.

ALTER TABLE name DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;

예 7-1 LONGVAR 로깅을 제외하려면 다음을 수행합니다.

ALTER TABLE 명령에서 INCLUDE LONGVAR COLUMNS 절을 생략하려면 EXCLUDELONG 옵션과 함께 ADD TRANDATA를 사용합니다.

ADD TRANDATA *owner.table*, EXCLUDELONG

주: LONGVAR 열이 로깅에서 제외된 경우 GETUPDATEBEFORES, NOCOMPRESSUPDATES 및 NOCOMPRESSDELETES매개변수와 같이 이전 이미지가 필요한 Oracle GoldenGate 기능이 테이블에 해당 열이 포함된 경우 오류를 반환할 수 있습니다. 임시해결책은 TRANLOGOPTIONS 매개변수의 REQUIRELONGDATACAPTURECHANGES | NOREQUIRELONGDATACAPTURECHANGES 옵션을 참조하십시오.

Add a Checkpoint Table

체크포인트 테이블은 병렬이 아닌 모든 Replicat에 필요하며 Replicat를 추가하기 전에 데이터베이스에서 생성되어야 합니다. 트랜잭션에서 체크포인트가 성공하거나 실패하므로 Replicat는 프로세스 또는 데이터베이스에 오류가 있어도 트랜잭션이 한 번만 적용되도록 합니다.

체크포인트 섹션 내에서 체크포인트 테이블을 볼 수 있습니다. 체크포인트 테이블을 추가하려면 DB 접속 페이지에서 대상 데이터베이스에 접속하고 체크포인트를 선택한 후 다음 단계를 수행합니다.

  1. 체크포인트 테이블 추가를 사용으로 설정하려면 더하기 기호를 누릅니다.

  2. 다음 형식으로 체크포인트 테이블 이름 추가

    *table*.*checkpoint_table_name*
  3. 제출을 누릅니다. 체크포인트가 생성된 후에는 체크포인트 테이블 리스트에서 확인할 수 있습니다.

명령줄에서 이 작업을 수행하려면 Oracle GoldenGate용 명령줄 인터페이스 참조의 ADD CHECKPOINTTABLE를 참조하십시오.

i용 Db2에서 저널링을 사용하여 체크포인트 테이블 추가

i 대상 데이터베이스의 Db2에서 체크포인트 테이블에 기록된 각 체크포인트는 Replicat 트랜잭션 내에서 저널링되어야 합니다.

저널링을 사용하여 체크포인트 테이블을 생성하는 일반적인 방법은 다음과 같습니다.

  1. 대상 시스템에서 Replicat 체크포인트 파일을 만듭니다.

    체크포인트 파일에 사용할 저널의 이름을 설정합니다. 기본값은 GGSCHEMA/OGGJRN입니다.

    DEFAULTJOURNAL 명령을 사용하여 현재 관리 클라이언트 세션에 대한 기본값을 설정하여 변경할 수 있습니다. DEFAULTJOURNAL 명령 구문은 다음과 같습니다.

    DEFAULTJOURNAL *library_name*/*journal_name*

    여기서 library_name은 라이브러리의 이름이고 journal_name은 선택적으로 지정된 저널이 있을 수 있는 후속 작업에 사용할 저널의 이름입니다.

  2. 체크포인트 테이블을 추가합니다.

    ADD CHECKPOINTTABLE *library_name*.chkptab
  3. 체크포인트 테이블에 저널링을 추가합니다.

    ADD TRANDATA *library_name*.CHKPTAB

체크포인트 테이블 생성에 대한 자세한 내용은 체크포인트 테이블 추가를 참조하십시오.

Heartbeat 테이블 추가

하트비트 테이블은 데이터 복제 주기 동안 지연을 모니터하는 데 사용됩니다. 자동 하트비트는 하트비트 시드 테이블과 하트비트 테이블의 레코드를 업데이트하고 하트비트 내역 레코드를 생성하여 각 소스 데이터베이스에서 복제 스트림으로 전송됩니다.

복제 스트림의 각 프로세스는 추적 정보로 하트비트 레코드를 업데이트한 다음 대상 데이터베이스의 하트비트 테이블에서 업데이트합니다. 이러한 하트비트 레코드는 대상 데이터베이스의 하트비트 테이블에 삽입되거나 갱신됩니다.

주: 하트비트 테이블 생성은 선택 사항이지만 권장됩니다.

하트비트 테이블을 추가하려면 DB 접속 페이지에서 각 소스 및 대상 데이터베이스에 접속하고 하트비트 메뉴를 선택한 후 다음 단계를 수행합니다.

  1. 하트비트 테이블을 추가하려면 옆에 있는 더하기(+) 기호를 클릭합니다.

  2. 기본 설정을 적용하거나 필요에 따라 사용 가능한 값을 수정합니다.

    주: 대상만에 대한 옵션이 있는 데이터베이스의 경우 소스 데이터베이스와 연관될 불필요한 작업이 생성되지 않도록 복제 스트림에서 해당 데이터베이스를 대상 데이터베이스로만 사용하려는 경우 이 옵션을 선택합니다.

  3. 제출을 누릅니다.

명령줄에서 이 작업을 수행하고 중요한 데이터베이스 관련 제한을 검토하려면 Oracle GoldenGate에 대한 명령줄 인터페이스 참조의 ADD HEARTBEATTABLE를 참조하십시오.

다음 단계에서는 하트비트 테이블을 설정하는 명령에 대해 설명합니다.

  1. 명령줄에서 관리 클라이언트를 실행합니다.

  2. 관리 클라이언트에서 배치에 연결합니다.

    CONNECT https://remotehost:*srvmgrport* DEPLOYMENT *deployment_name* AS *deployment_user* PASSWORD *deployment_password*

    예제는 다음과 같습니다.

    CONNECT https://remotehost:16000 DEPLOYMENT *ggdep_postgres* AS ggadmin PASSWORD P@ssWord
  3. DBLOGIN USERIDALIAS 명령을 사용하여 소스 및 대상 데이터베이스에 접속합니다. 다음 예에서는 인증서 별칭이 ggeast인 소스 데이터베이스에 대한 접속을 보여줍니다.

    (https://remotehost:16000 ggdep_postgres)> DBLOGIN USERIDALIAS ggeast
  4. Heartbeat 테이블 추가:

    (https://remotehost:16000 ggdep_postgres)> ADD HEARTBEATTABLE

선택적으로 단방향 복제에만 사용되는 대상 전용 데이터베이스의 경우 하트비트 레코드 업데이트 기능을 만들지 않는 TARGETONLY 옵션을 포함할 수 있습니다.

명령 옵션에 대한 자세한 내용은 ADD HEARTBEATTABLE을 참조하십시오.

PostgreSQL에 대한 Heartbeat 업데이트 및 비우기 함수 실행

Oracle GoldenGate for PostgreSQL는 업데이트 및 비우기 작업에 대한 몇 가지 제한 사항과 함께 하트비트 테이블 구성을 지원합니다.

하트비트 테이블 및 연관된 함수는 ADD HEARTBEATTABLE 명령에서 생성되지만, PostgreSQL의 경우 함수를 호출하는 자동 스케줄러가 없습니다.

한 가지 기본 기능은 하트비트 레코드 업데이트 및 하트비트 기록 테이블 비우기 기능을 모두 제어합니다. 이러한 두 기능에 대한 기본 설정은 업데이트 빈도의 경우 60초, 내역 레코드 비우기의 경우 1일입니다. 이 경우 기본적으로 30일보다 오래된 모든 레코드가 삭제됩니다.

기본 하트비트 레코드 함수를 호출하려면 유저가 실행되는 운영 체제 레벨 작업을 생성해야 합니다.

"select ggschema.gg_hb_job_run();"

이 함수가 호출되면 업데이트 빈도 설정 및 기록 레코드 비우기 설정을 고려하고 함수 호출의 스케줄러 설정에 관계없이 해당 값을 사용합니다.

예를 들어, 사용자는 다음 구문을 사용하여 Cron 작업을 생성하고 1분마다 실행되도록 할 수 있습니다.

PGPASSWORD="gguserpasswd" psql -U gguser -d dbname -h remotehost -p 5432 -c "select ggschema.gg_hb_job_run();" >/dev/null
 2>&1

Windows 작업 스케줄러, pgAdmin 또는 pg_cron은 함수 호출을 예약하는 데 사용할 수 있는 다른 프로그램입니다.

Oracle GoldenGate CDC 정리 작업 생성

SQL Server 사용자의 경우 Extract를 추가하기 전에 Oracle GoldenGate CDC 정리 작업을 생성해야 합니다. Oracle GoldenGate CDC 정리 프로세스의 세부정보의 단계를 수행하여 이 작업을 수행할 수 있습니다.

PostgreSQL: 원격 배치에 대한 추출 고려 사항

원격 배치의 경우 소스 데이터베이스와 Oracle GoldenGate가 별도의 서버에 설치됩니다. 원격 배포는 PostgreSQL용 Azure 또는 Amazon Aurora PostgreSQL와 같은 클라우드 데이터베이스를 지원하는 데 사용할 수 있는 유일한 옵션입니다.

원격 배치의 경우 데이터베이스 서버와 Oracle GoldenGate 서버 간의 운영체제 엔디언이 동일해야 합니다.

Oracle GoldenGate 서버의 서버 시간 및 시간대를 데이터베이스 서버의 시간 및 시간대와 동기화해야 합니다. 이 작업을 수행할 수 없는 경우 LSN에서 Extract를 생성하거나 변경할 때 Extract의 위치를 지정해야 합니다.

원격 캡처 사용 사례에서 SQLEXEC를 사용하면 Extract가 처리하는 각 레코드에 대해 SQLEXEC 작업을 순차적으로 수행해야 하므로 추가 대기 시간이 발생할 수 있습니다. SQLEXEC가 필요한 특수 필터링이 원격 허브 Extract에 의해 수행되고 성능에 미치는 영향이 너무 심각한 경우 Extract 프로세스를 소스 데이터베이스에 더 가깝게 이동해야 할 수 있습니다.

원격 배포의 경우 낮은 네트워크 대기 시간이 중요하며, Oracle GoldenGate 서버와 소스 데이터베이스 서버 간의 네트워크 대기 시간은 1밀리초 미만일 것을 권장합니다.