데이터베이스 구성
Oracle GoldenGate for Db2 z/OS에 대한 데이터베이스 구성 설정에 대해 알아봅니다. Oracle GoldenGate에 대한 데이터베이스 설정이 필요합니다.
Db2 z/OS에 Extract 구성요소 설치
Oracle GoldenGate Db2 z/OS Extract는 SQL 객체를 사용하여 Db2 로그에 액세스하고 읽습니다. 이러한 Oracle GoldenGate Db2 z/OS 객체에는 최소 하드웨어 플랫폼인 zEC12, 최소 운영 체제 릴리스인 2.4 및 최소 Db2 릴리스인 12.1이 필요합니다. 구성 요소는 실행 가능한 로드 모듈, SQL 내장 프로시저 및 함수, 내장 프로시저를 통해 호출되는 외부 프로그램으로 구성됩니다. 이러한 구성 요소는 다음과 같습니다.
-
외부 인증 프로그램에는 다음이 포함됩니다.
-
oggib001– 초기화 및 유틸리티 프로그램 -
oggrb001– 로그 읽기 프로그램 기능 -
oggmt001– ECSA 및 64비트 메모리를 모니터하는 독립형 프로그램 -
oggjt001–oggib001프로그램에서 실행되는oggmt001시작 JCL에 대한 설정 프로그램 -
oggfr001– Oracle Support의 지침에 따라 DBA가 사용할 수 있는 유틸리티
-
-
SQL 내장 프로시저 및 함수 템플리트는 SQL 스크립트
zOS_OGG_Setup_Template.sql에OGGINITB및OGGREADB SQL와 함께 포함됩니다. -
JCL 절차,
oggtask.jcl
주: SQL 및 JCL 이름 값의 외부 이름은 기본값이며 편집 및 업데이트할 수 있습니다. 이 프로세스는 다음 절에서 설명합니다.
Db2 z/OS Extract용 복제 프로세스 그림은 Db2 z/OS Extract 및 해당 메인프레임 구성요소에 대한 복제 프로세스를 보여줍니다.
그림 1: Db2 z/OS 추출용 복제 프로세스

이 프로세스는 위 그림과 같이 숫자 1부터 9까지 사용하여 시작되고 실행됩니다. 이러한 단계는 다음과 같습니다.
-
Extract는 설치 중 생성된 매개변수 파일에서 JCL 매개변수를 비롯한 매개변수를 읽습니다.
-
Extract는 시작 정보를 보고하고 추적 파일을 작성할 준비를 합니다.
-
ODBC는 Db2 데이터베이스에서 정보를 수집하고 복제를 시작하는 데 사용됩니다.
-
OGGINITBSQL 내장 프로시저는 공유 메모리를 준비하고 복제에 필요한 다른 데이터를 수집하기 시작합니다. -
SQL 내장 프로시저에 의해 호출된
OGGIB001외부 프로그램은OGGJT001작업 설정 프로그램을 사용하여 메모리 모니터 작업을 시작합니다. -
OGGMT001메모리 모니터 작업은 ECSA 및 64비트 공유 메모리 모니터를 시작합니다. -
OGGREADBSQL 함수는 외부 프로그램OGGRB001를 호출합니다. -
OGGRB001외부 프로그램은 Db2 로그 읽기 프로그램을 반복해서 호출하여 Extract에 1~다수의 로그 레코드 버퍼를 반환하는 결과 집합을 생성합니다. -
로그 레코드 결과 집합이 완료되면 결과 집합을 Extract로 전송한 후
OGGRB001가 종료됩니다.
Extract는 종료 또는 비정상적인 종료까지 7-9단계를 반복합니다. 메모리 작업을 시작하지 못하면 OGGIB001 프로그램이 JCL 오류 또는 설정 문제가 있음을 나타내는 플래그를 반환하고 Extract가 해당 메모리 관리를 시작합니다. 메모리 작업이 제대로 시작되면 메모리 작업은 48바이트 ECSA 공유 메모리의 필드를 지속적으로 변경하는지 테스트합니다. 어떤 이유로든 추출이 종료되면 해당 필드의 변경이 중지됩니다. 이때 Extract 또는 네트워크가 느려지는 경우 메모리 관리자가 대기하고 구성된 시간 제한 후 종료하기 전에 메모리를 해제합니다.
Db2 z/OS Extract용 Oracle GoldenGate에 필요한 구성요소를 설치하려면 다음을 수행합니다.
-
라이브러리(PDSE)가 Db2 z/OS 시스템에 존재하고 라이브러리 항목이 권한이 부여된 라이브러리 목록에 있는지 확인합니다. 이 라이브러리는 Oracle GoldenGate 외부 프로그램 객체가 상주할 위치입니다.
-
APF 권한 부여된 WLM 절차가 위 단계의 PDSE를 참조하는지 확인합니다. Oracle은 내장 프로시저의 경우 WLM 환경의
NUMTCB값을 10-40으로 지정할 것을 권장합니다.NUMTCB값은 데이터베이스에 대해 동시에 실행 중인 최대 Extract 수와 각 Extract에 필요한 처리량에 따라 다릅니다.NUMTCB를 유연하게 설정하려면 WLM의 시작 JCL에서 지정하지만 생성 패널에서는 지정하지 마십시오. -
다음을 완료하여 WLM 애플리케이션 환경에 대한 보안을 설정하고 내장 프로시저를 생성할 수 있습니다.
-
(선택 사항) 내장 프로시저를 실행할 수 있는 WLM 설정 주소 공간을 지정합니다. 이 단계를 완료하지 않으면 WLM에서 설정한 주소 공간이 내장 프로시저를 실행할 수 있습니다.
-
사용자에게 특정 WLM 주소 공간에서 프로시저를 생성할 수 있는 액세스 권한을 부여합니다.
-
특정 스키마에서 프로시저를 생성할 수 있는 사용자 액세스 권한을 부여합니다. 해당 스키마에 대해
GRANT문을CREATIN옵션과 함께 사용합니다. -
특정 컬렉션의 프로시저에 대한 패키지를 생성할 수 있는 액세스 권한을 유저에게 부여합니다. 해당 컬렉션에 대해
GRANT문을CREATE옵션과 함께 사용합니다. -
적절한 사용자에게 WLM 환경을 새로고침할 수 있는 접근 권한을 부여합니다.
-
적절한 사용자에게 추가 RACF 권한을 추가하여 WLM 프로시저가 메모리 관리자 작업을 시작할 수 있도록 합니다.
-
-
WLM 시작 JCL 프로시저를 실행하는 데 사용된 ID에 RRSAF 사용 권한이 있는지 확인하십시오. Db2 WLM 주소 공간 중 하나가 시작될 때마다 RRSAF를 사용하여 Db2에 연결합니다. Db2 12 for z/OS Installation and Migration Guide를 참조하십시오.
-
Oracle GoldenGate for Db2 z/OS의 Linux 또는 UNIX 설치에는
zOSutils.zip라는 Oracle GoldenGate 설치 디렉토리에zOSPrograms.zip라는 파일이 포함된 ZIP 파일이 있습니다.zOSPrograms.tar에zOSPrograms.zip의 압축을 풀고 바이너리 모드로zOSPrograms.tar를 Db2 z/OS 시스템에 HFS 디렉토리에 복사합니다. -
USS 또는 OMVS의 Db2 z/OS 시스템에서 디렉토리를
zOSPrograms.tar가 포함된 디렉토리로 변경합니다. -
tar -xovf zOSPrograms.tar명령을 사용하여 객체를 복원합니다. -
객체를 권한이 부여된 PDSE에 복사합니다.
cp -X ogg[irmj][abt][0-9]* "//'authorized_PDSE_name'"를 사용합니다. 여기서authorized_PDSE_name은 Oracle GoldenGate 객체용 APF 권한 부여 PDSE의 이름입니다. 이 명령을 사용하면 기본 이름의 객체가 설치됩니다.주: 이 명령에서 복사 대상은 큰 따옴표로 묶인 슬래시 단일 따옴표로 묶인 PDSE 이름 작은 따옴표입니다.
-X는 소문자 x가 아닌 대문자 대문자 X입니다. -
서로 다른 이름으로 스크립트를 설치하면 시스템 프로토콜을 준수하거나 여러 버전의 Oracle GoldenGate를 실행할 수 있습니다. 다른 이름으로 스크립트를 설치하려면 PDSE에 복사하기 전에 프로그램 이름을 바꾸는 셸 스크립트를 만드는 것이 좋습니다. 다음 코드 조각에서는 셸 스크립트의 예를 제공합니다.
#!/bin/bash # Copy new programs renaming them to version 21.12 names. cp oggib001 oggi2112 cp oggrb001 oggr2112 cp oggmt001 oggm2112 cp oggjt001 oggj2112 cp -X oggi2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggr2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggm2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggj2112 "//'SYS4.WLMDSNA.AUTHLOAD'"chmod +x scriptname명령을 사용하여 스크립트를 실행할 수 있습니다. 새 버전에 대해 이 스크립트를 복사하고 재사용할 수 있습니다. -
Oracle GoldenGate가 Extract 객체를 호출할 수 있도록 선택한 SQL 툴을 사용하여 SQL 프로시저를 생성해야 합니다. Oracle GoldenGate 내장 프로시저에는 복제에 사용하는 사용자에게만 권한이 부여되어야 합니다.
Oracle GoldenGate 설치 디렉토리의 예제 SQL 스크립트 템플리트에는 Db2 z/OS 인스턴스에서 내장 프로시저와 함수를 설정하기 위한 SQL 문이 포함되어 있습니다.
zOSutils.zip에 포함된 SQL 스크립트zOS_OGG_Setup_Template.sql는 Db2 v12.1 이상용이며 Db2 z/OS 인스턴스에 접속할 수 있는 모든 플랫폼의 모든 SQL 툴에서 실행할 수 있습니다. 이 스크립트는 Extract와 함께 사용하는 Db2 인스턴스에서 실행되어야 합니다. 원격 설치 디렉토리에 제공된 스크립트는 ASCII 형식입니다.스크립트를 실행하기 전에 다음 행을 편집하십시오.
- Oracle GoldenGate에 사용할 WLM 환경에 대해 올바른 이름을 사용하도록
WLM ENVIRONMENT행을 수정합니다.
- Oracle GoldenGate에 사용할 WLM 환경에 대해 올바른 이름을 사용하도록
주: TRANLOGOPTIONS REMOTESCHEMA schemaname 추출 매개변수를 사용하여 oggifi0001 스키마 이름을 구성할 수 있습니다. 템플리트의 프로시저 및 함수 이름 OGGINITB 및 OGGREADB은 구성할 수 없습니다. 스크립트 이름과 PDSE 객체 이름이 일치하는 경우 스크립트에서 각 외부 이름 및 PDSE의 이름을 바꿀 수 있습니다. 이러한 이름 변경은 새 버전으로의 마이그레이션을 허용하는 절차의 일부이거나 Db2 z/OS에서 특정 이름 지정 절차를 준수해야 하는 경우입니다.
다음 테이블에는 편집 및/또는 업데이트할 수 있는 구성요소의 확인 목록이 포함되어 있습니다.
테이블 2 편집 가능한 구성요소 목록
| 구성요소 | 시작 | 이름 바꾸기 | 위치 |
|---|---|---|---|
oggib001 |
tar 파일 | 인증된 PDSE | |
oggrb001 |
tar 파일 | 인증된 PDSE | |
oggmt001 |
tar 파일 | 권한이 부여된 PDSE 및 proc 라이브러리 | |
oggjt001 |
tar 파일 | 승인된 PDSE 및 추출 매개변수 | |
oggpr001 |
tar 파일 | 프로시저 라이브러리 및 추출 매개변수 | |
| 프로클립 | MVS | 필요한 경우 추출 매개변수 추가 | |
| 단계 라이브러리 | MVS | WLM 및 oggpr001 프로시저 라이브러리 |
|
| 리모트스키마 | zOS_OGG_Setup_Template.sql 및 추출 매개변수 |
||
| WLM 이름 | MVS | zOS_OGG_Setup_Template.sql |
|
| 외부 프로그램입니다. | zOS_OGG_Setup_Template.sql |
주: 새 패치를 설치할 때마다 이 모든 단계를 수행해야 합니다.
Extract에 공유 메모리 관리자 사용
Oracle GoldenGate Extract는 공유 메모리 사용량을 모니터링하기 위해 WLM에서 별도의 작업 또는 작업을 시작합니다. 이 작업은 MVS에서 실행되는 최소 작업이지만 WLM이 아닙니다. 이 스크립트의 시작 사용자 이름은 WLM에서 시작할 때(일반적으로 RACF와 같은 것을 사용) 실행할 수 있는 권한이 있어야 합니다. 모니터링되는 이 공유 메모리는 작은 48 ~ 64바이트 ECSA 영역과 Extract 버퍼 크기를 기반으로 하는 더 큰 64비트 영역으로 구성됩니다.
공유 메모리의 특정 필드는 Extract가 수행하는 모든 읽기에 대해 업데이트됩니다. 스크립트에서 데이터를 반환하는지 여부에 관계없이 이러한 필드가 업데이트됩니다. 모니터는 해당 필드를 검사하여 Extract가 비활성 상태가 되지 않았는지 확인합니다. Extract가 비활성 상태이면 공유 메모리가 해제되고 모니터가 종료됩니다. Extract의 매개변수 파일에서 remote_memory_options 매개변수를 사용하여 Memory Manager를 제어할 수 있습니다.
여러 하위 매개변수를 지정하여 모니터 작업을 구성할 수 있습니다. 다음 예와 같이 원격 메모리 옵션의 하위 매개변수를 지정하여 모니터가 사용하는 대기 간격 및 비활성 시간을 구성할 수 있습니다.
remote_memory_options wait_interval 2000 inactive_time 01:00
대기 간격은 예제에서 100초 단위로 표시되며 모니터가 각 메모리 검사 사이에 20초 동안 대기하게 됩니다. 모니터에서 1시간(HH:MM 형식) 동안 검사했지만 Extract가 아직 비활성 상태인 경우 공유 메모리를 해제한 후 모니터가 종료됩니다. 해당 시간 동안 Extract가 활성 상태로 돌아오면 모니터가 상태를 재설정하고 모니터링을 계속합니다.
wait_interval는 100에서 6000 사이의 값을 가질 수 있으며 기본값은 1000입니다. inactive_time는 00:10에서 12:00 사이일 수 있으며 기본값은 00:30입니다. 모니터가 제대로 시작되지 않으면 Extract는 Extract 보고서에 경고 메시지를 표시하고 Extract는 처리를 계속합니다. Extract가 종료되면 ECSA 메모리를 해제하려고 시도합니다.
원격 메모리 매개변수에는 이 기능이 작동하도록 하는 세 가지 옵션이 있습니다. 이러한 파라미터의 구문은 다음과 같습니다.
-
task_procedure proc name -
task_library proc library -
task_setup task setup program
예제:
remote_memory_options task_procedure OGGPR001
remote_memory_options task_library TEST.PROCLIB
remote_memory_options task_setup OGGJT001
아래와 같이 단일 명령에서 여러 옵션을 지정할 수 있습니다.
remote_memory_options task_procedure OGGPR001 task_library TEST.PROCLIB task_setup OGGJT001
주: 원격 메모리 매개변수의 값은 대소문자를 구분하지 않습니다.
기본값은 프로시저 이름 OGGPR001 및 작업 설정 프로그램 OGGJT001입니다. MVS 시스템 기본 절차 라이브러리 중 하나에 절차가 설치될 수 있으므로 작업 라이브러리에 대한 기본값은 없습니다. 작업 라이브러리 매개변수는 프로시저가 시스템 기본 라이브러리에 없는 경우에만 필요합니다.
메모리 작업은 간단한 JOB 카드와 Extract에서 전달된 매개변수가 있는 EXEC 프로시저 이름으로 시작됩니다. 일부 z/OS 시스템에서는 작업 카드에 다양한 다른 매개변수가 필요할 수 있습니다. 아래 예제와 같이 원격 메모리 매개변수를 사용하여 JOB 매개변수를 수정할 수도 있습니다.
remote_memory_options task_jobname [valid MVS job name (see below)]
remote_memory_options task_acct_info [valid MVS acct value (see below)]
remote_memory_options task_programmer [valid MVS programmer name, Can use single quotes]
remote_memory_options task_class [valid MVS job class A to Z or 0 to 9]
remote_memory_options task_msgclass [valid MVS msgclass A to Z or 0 to 9]
remote_memory_options task_msglevel [valid MVS message level n or (,n) or (n,n) n=valid digit]
remote_memory_options task_priority [valid MVS priority 0-15]
적합한 두 문자와 별표(예: AA*)를 사용하여 JOB 이름을 지정할 수 있습니다. 기본 JOB 이름은 GG*입니다. 별표는 지정된 경우 6개의 난수로 바뀝니다. 그렇지 않은 경우 1-8바이트 문자 이름을 지정할 경우 유효한 MVS 작업 이름이어야 합니다.
다음 유효한 MVS 형식으로 계정 값을 지정합니다.
-
OTXI -
'MY ACCT' -
(ACCT,1234,ABC)
특수 문자를 허용하는 매개변수(예: acct_info 및 programmer)의 경우 작은 따옴표로 묶습니다. 또한 따옴표 내에 큰따옴표 또는 앰퍼샌드를 사용하는 방법에 대한 MVS 규칙은 계속 적용됩니다. Extract는 이러한 매개변수에 대해 최소한의 검증을 수행하고 MVS 프로세스에 대한 완전한 검증을 유지합니다. 중복 매개변수를 지정하고 중복을 무시하면 Extract가 첫번째 매개변수를 수락합니다.
샘플 절차 JCL 파일이 zOSPrograms.zip 파일에 포함됩니다. 이 JCL은 WLM 절차를 대체하지 않습니다. WLM에서 만든 모니터는 JCL을 사용하여 MVS에서 실행됩니다. JCL 프로시저를 사용하면 작업 출력 아카이브 또는 기타 프로시저를 지원하는 명령이나 JCL을 추가할 때 유연성이 향상됩니다.
주: 메모리 관리자에 대한 설치 및 설정 중 RACF 설정 문제, 개시자 사용, 작업 클래스 사용 또는 메모리 관리자와 관련된 기타 유사한 문제를 기다려야 하는 경우 메모리 관리자를 일시적으로 해제해야 할 수 있습니다. Extract는 이 인스턴스에서 레거시 모드로 작동하며 ECSA 및 64비트 공유 메모리를 해제합니다. Extract는 Extract 보고서 끝에 공유 메모리의 릴리스를 보여줍니다.
Oracle은 이를 영구적 솔루션으로 권장하지 않습니다. 사용 시 사용자는 ECSA 및 64비트 메모리의 릴리스를 모니터링해야 합니다. 이 기능을 켜는 매개변수는 밑줄로 시작하여 시스템이 이 모드에서 실행 중임을 사용자에게 알립니다. 다른 원격 메모리 옵션은 그대로 두고 메모리 관리를 해제하는 옵션을 제거하여 사용할 수 있습니다. 원격 메모리 관리 파라미터는 기본적으로 on으로 설정되며 다음과 같이 지정됩니다.
remote_memory_options _remote_memory_on
remote_memory_options _remote_memory_off
JCL의 형식은 다음과 같습니다.
//*====================================================================
//* EXAMPLE JCL FOR RUNNING THE COMMON MEMORY MONITOR PROCEDURE
//* ADDRESS SPACE NEEDING AN AUTHORIZED LOAD LIBRARY
//* NOTE: THE PROGRAM OGGMT001 CAN BE RENAMED IN THE LIBRARY BUT THE
//* NEW NAME MUST MATCH THE PROGRAM NAME IN THIS JCL
//*====================================================================
//OGGDSNNA PROC RGN=0K TR=,EX=,MEM=,LEN=,SEC=,DUR=,VER=
//OGGDSNNX EXEC PGM=OGGMT001,REGION=&RGN,TIME=NOLIMIT,
// PARM='&TR &EX &MEM &LEN &SEC &DUR &VER'
//*--------------------------------------------------------------------
//* REPLACE &PREFIX.**.AUTHLOAD LIBRARIES WITH SITE SPECIFIC FILE(S)
//* ALSO REPLACE THE CEE LIBRARY WITH SITE SPECIFIC FILE
//* DSNN COULD REPRESENT A DB2 SPECIFIC LOAD LIBRARY IF ONE EXISTS
//*--------------------------------------------------------------------
//STEPLIB DD DISP=SHR,DSN=&PREFIX..WLMDSNN.USER.AUTHLOAD
// DD DISP=SHR,DSN=CEE.SCEERUN
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
시스템에서 작동하도록 PREFIX로 표시된 라이브러리를 수정합니다. zOSPrograms.tar 파일에서 복사한 OGGMT001 프로그램의 이름을 바꾼 경우 JCL에서 변경해야 합니다. 정보 제공을 위해 PROC 문에 널 매개변수가 있습니다. 직무 OGGJT001 설정 프로그램은 추출에서 전달된 정보를 사용하여 해당 값을 제공합니다. 필요한 만큼 단계 라이브러리 데이터 세트 이름을 지정할 수도 있습니다. zOSPrograms.tar 파일에 제공된 JCL 절차에서는 두 개 이상의 단계 라이브러리를 사용하는 예를 제공합니다.