Precisely의 Connect를 MSK 사용하여 Amazon RDS 또는 Amazon으로 VSAM 파일 마이그레이션 및 복제 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Precisely의 Connect를 MSK 사용하여 Amazon RDS 또는 Amazon으로 VSAM 파일 마이그레이션 및 복제

작성자: Prachi Khanna(AWS) 및 BoopathyGOPALSAMY(AWS)

환경: PoC 또는 파일럿

소스: VSAM

대상: 데이터베이스

R 유형: 리아키텍트

워크로드: IBM

기술: 메인프레임, 현대화

AWS 서비스: Amazon MSK, Amazon RDS, AWS 메인프레임 현대화

요약

이 패턴은 Precisely에서 연결을 사용하여 메인프레임에서 AWS 클라우드의 대상 환경으로 가상 스토리지 액세스 방법(VSAM) 파일을 마이그레이션하고 복제하는 방법을 보여줍니다. 이 패턴에서 다루는 대상 환경에는 Amazon Relational Database Service(Amazon RDS) 및 Amazon Managed Streaming for Apache Kafka(Amazon )가 포함됩니다MSK. Connect는 변경 데이터 캡처(CDC)를 사용하여 소스 VSAM 파일에 대한 업데이트를 지속적으로 모니터링한 다음 이러한 업데이트를 하나 이상의 AWS 대상 환경으로 전송합니다. 이 패턴을 사용하여 애플리케이션 현대화 또는 데이터 분석 목표를 달성할 수 있습니다. 예를 들어 Connect를 사용하여 지연 시간이 짧은 AWS 클라우드로 VSAM 애플리케이션 파일을 마이그레이션하거나 AWS 데이터 웨어하우스 또는 데이터 레이크로 VSAM 데이터를 마이그레이션하여 애플리케이션 현대화에 필요한 것보다 높은 동기화 지연 시간을 견딜 수 있는 분석을 수행할 수 있습니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • Connect는 소스 VSAM 스키마 또는 카피북을 기반으로 한 자동 대상 테이블 생성을 지원하지 않습니다. 대상 테이블 구조를 처음으로 정의해야 합니다.

  • Amazon 과 같은 비스트리밍 대상의 경우 엔진 적용 구성 스크립트에서 변환 소스를 대상 매핑으로 지정RDS해야 합니다.

  • 로깅, 모니터링 및 알림 함수는 를 통해 구현APIs되며 외부 구성 요소(예: Amazon CloudWatch)가 완전히 작동해야 합니다.

제품 버전

  • SQData z/OS용 40134

  • SQData Amazon Elastic Compute Cloud(Amazon AMI)의 Amazon Linux Amazon Machine Image(EC2)에 대한 4.0.43

아키텍처

소스 기술 스택  

  • 작업 제어 언어(JCL)

  • z/OS Unix 쉘 및 대화형 시스템 생산성 시설(ISPF)

  • VSAM 유틸리티(IDCAMS)

대상 기술 스택

  • Amazon EC2

  • Amazon MSK

  • Amazon RDS

  • Amazon VPC

대상 아키텍처 

Amazon으로 VSAM 파일 마이그레이션 RDS

다음 다이어그램은 소스 환경(온프레미스 메인프레임)RDS에서 CDC 에이전트/퍼블리셔를 사용하고 대상AWS 환경(클라우드)에서 Apply Engine을 사용하여 실시간으로 또는 거의 실시간으로 Amazon 과 같은 관계형 데이터베이스로 VSAM 파일을 마이그레이션하는 방법을 보여줍니다.

Diagram showing data flow from on-premises mainframe to AWS 클라우드, including VSAM files and Amazon RDS.

이 다이어그램은 다음 배치 워크플로를 보여 줍니다.

  1. Connect는 백업 파일의 VSAM 파일을 비교하여 변경 사항을 식별하여 파일에 대한 변경 사항을 캡처한 다음 로그스트림에 전송합니다.

  2. 게시자는 시스템 로그스트림의 데이터를 사용합니다.

  3. 게시자는 캡처된 데이터 변경 사항을 TCP/IP를 통해 대상 엔진에 전달합니다. Controller Daemon은 소스와 대상 환경 간의 통신을 인증합니다.

  4. 대상 환경의 Apply Engine은 Publisher 에이전트로부터 변경 내용을 받아 관계형 또는 비관계형 데이터베이스에 적용합니다.

이 다이어그램은 다음 온라인 워크플로를 보여 줍니다.

  1. Connect는 로그 복제를 사용하여 온라인 파일의 변경 사항을 캡처한 다음 캡처된 변경 사항을 로그스트림으로 스트리밍합니다.

  2. 게시자는 시스템 로그스트림의 데이터를 사용합니다.

  3. 게시자는 캡처된 데이터 변경 사항을 TCP/IP를 통해 대상 엔진에 전달합니다. Controller Daemon은 소스 환경과 대상 환경 간의 통신을 인증합니다.

  4. 대상 환경의 Apply Engine은 Publisher 에이전트로부터 변경 내용을 받아 관계형 또는 비관계형 데이터베이스에 적용합니다.

Amazon으로 VSAM 파일 마이그레이션 MSK

다음 다이어그램은 MSK 고성능 모드에서 메인프레임에서 Amazon으로 VSAM 데이터 구조를 스트리밍하고 Amazon AVRO 와 통합되는 변환을 자동으로 생성JSON하거나 스키마 변환하는 방법을 보여줍니다MSK.

Diagram showing data flow between on-premises mainframe and AWS 클라우드 services.

이 다이어그램은 다음 배치 워크플로를 보여 줍니다.

  1. Connect는 CICS VR을 사용하거나 백업 파일의 VSAM 파일을 비교하여 변경 사항을 식별하여 파일의 변경 사항을 캡처합니다. 캡처된 변경 사항은 로그스트림으로 전송됩니다.

  2. 게시자는 시스템 로그스트림의 데이터를 사용합니다.

  3. 게시자는 캡처된 데이터 변경 사항을 TCP/IP를 통해 대상 엔진에 전달합니다. Controller Daemon은 소스 환경과 대상 환경 간의 통신을 인증합니다.

  4. 병렬 처리 모드에서 작동하는 Replicator Engine은 데이터를 작업 캐시 단위로 분할합니다.

  5. 작업자 스레드는 캐시에서 데이터를 캡처합니다.

  6. 데이터는 작업자 스레드의 Amazon MSK 주제에 게시됩니다.

  7. 사용자는 커넥터를 사용하여 Amazon DynamoDB, Amazon Simple Storage Service(Amazon S3) 또는 Amazon OpenSearch Service와 같은 MSK 대상에 Amazon의 변경 사항을 적용합니다.

이 다이어그램은 다음 온라인 워크플로를 보여 줍니다.

  1. 온라인 파일의 변경 사항은 로그 복제를 사용하여 캡처됩니다. 캡처된 변경 사항은 로그스트림으로 스트리밍됩니다.

  2. 게시자는 시스템 로그스트림의 데이터를 사용합니다.

  3. 게시자는 캡처된 데이터 변경 사항을 TCP/IP를 통해 대상 엔진에 전달합니다. Controller Daemon은 소스 환경과 대상 환경 간의 통신을 인증합니다.

  4. 병렬 처리 모드에서 작동하는 Replicator Engine은 데이터를 작업 캐시 단위로 분할합니다.

  5. 작업자 스레드는 캐시에서 데이터를 캡처합니다.

  6. 데이터는 작업자 스레드의 Amazon MSK 주제에 게시됩니다.

  7. 사용자는 커넥터 MSK를 사용하여 Amazon의 변경 사항을 DynamoDB , Amazon S3 또는 OpenSearch Service와 같은 대상에 적용합니다.

도구

에픽

작업설명필요한 기술

Connect CDC 4.1을 설치합니다.

  1. 라이선스와 설치 패키지를 받으려면 Prececiply 지원 팀에 문의하십시오.

  2. Connect CDC 4.1을 설치JCLs하려면 예제를 사용합니다. 자세한 내용은 정밀 설명서의 를 사용하여 Connect 설치CDC(SQData)JCL를 참조하세요.

  3. SETPROG APF 명령을 실행하여 Connect 로드 라이브러리 SQDATA.V4nnn을 승인합니다LOADLIB.

IBM 메인프레임 개발자/관리자

zFS 디렉터리를 설정합니다.

zFS 디렉터리를 설정하려면 Precisely 설명서에 있는 zFS 변수 디렉터리의 지침을 따르십시오.

참고 : 컨트롤러 Daemon 및 Capture/Publisher 에이전트 구성은 z/OS UNIX Systems Services 파일 시스템(zFS라고 함)에 저장됩니다. Controller Daemon, Capture, Storage, Publisher 에이전트에는 적은 수의 파일을 저장하기 위해 사전 정의된 zFS 디렉터리 구조가 필요합니다.

IBM 메인프레임 개발자/관리자

TCP/IP 포트를 구성합니다.

TCP/IP 포트를 구성하려면 정밀 설명서의 TCP/IP 포트의 지침을 따릅니다.

참고 : Controller Daemon에는 소스 시스템에 TCP/IP 포트가 필요합니다. 포트는 (캡처된 변경 데이터가 처리되는) 대상 시스템의 엔진에서 참조합니다.

IBM 메인프레임 개발자/관리자

z/OS 로그스트림을 생성합니다.

z/OS 로그스트림을 생성하려면 정밀 설명서의 z/OS 시스템 생성logStreams의 지침을 따릅니다.

참고: Connect는 마이그레이션 중에 로그스트림을 사용하여 소스 환경과 대상 환경 간에 데이터를 캡처하고 스트리밍합니다.

z/OS를 JCL 생성하는 예제는 정밀 설명서의 z/OS 시스템 생성을 logStreams LogStream참조하세요.

IBM 메인프레임 개발자

IDs zFS 사용자 및 시작된 작업을 식별하고 승인합니다.

RACF 를 사용하여 OMVS zFS 파일 시스템에 대한 액세스 권한을 부여합니다. 예제 는 정밀 설명서의 zFS 사용자 및 시작된 작업 식별 및 권한 부여IDs를 JCL참조하세요.

IBM 메인프레임 개발자/관리자

z/OS 공개/개인 키와 인증된 키 파일을 생성합니다.

를 실행JCL하여 키 페어를 생성합니다. 예제는 이 패턴의 추가 정보 섹션에 있는 키 쌍 예제를 참고하십시오.

자세한 지침은 Precisely 설명서의 z/OS 공개 및 개인 키와 인증된 키 파일 생성을 참고하십시오.

IBM 메인프레임 개발자/관리자

CICS VSAM 로그 복제본을 활성화하고 로그스트림에 연결합니다.

다음 JCL 스크립트를 실행합니다.

//STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER SQDATA.CICS.FILEA - LOGSTREAMID(SQDATA.VSAMCDC.LOG1) - LOGREPLICATE
IBM 메인프레임 개발자/관리자

를 통해 VSAM 파일 복구 로그를 활성화합니다FCT.

파일 제어 테이블(FCT)을 수정하여 다음 파라미터 변경 사항을 반영합니다.

Configure FCT Parms CEDA ALT FILE(name) GROUP(groupname) DSNAME(data set name) RECOVERY(NONE|BACKOUTONLY|ALL) FWDRECOVLOG(NO|1–99) BACKUPTYPE(STATIC|DYNAMIC) RECOVERY PARAMETERS RECOVery : None | Backoutonly | All Fwdrecovlog : No | 1-99 BAckuptype : Static | Dynamic
IBM 메인프레임 개발자/관리자

게시자 에이전트에 CDCzLog 대해 를 설정합니다.

  1. CDCzLog 게시자 CAB 파일을 생성합니다.

  2. 게시된 데이터를 암호화합니다.

  3. 게시자 런타임CDCzLog을 준비합니다JCL.

IBM 메인프레임 개발자/관리자

Controller Daemon을 활성화합니다.

  1. ISPF 패널을 열고 다음 명령을 실행하여 Precisely 메뉴를 엽니다. EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn'

  2. Controller Daemon을 설정하려면 메뉴에서 옵션 2를 선택합니다.

IBM 메인프레임 개발자/관리자

게시자를 활성화합니다.

  1. ISPF 패널을 열고 다음 명령을 실행하여 Precisely 메뉴를 엽니다. EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn'

  2. 게시자를 설정하려면 메뉴에서 옵션 3을 선택하고 삽입은 I를 선택합니다.

IBM 메인프레임 개발자/관리자

로그스트림을 활성화합니다.

  1. ISPF 패널을 열고 다음 명령을 실행하여 Precisely 메뉴를 엽니다. EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn'

  2. 로그스트림을 설정하려면 메뉴에서 옵션 4를 선택하고 삽입은 I를 선택합니다. 그런 다음 이전 단계에서 생성한 로그스트림의 이름을 입력합니다.

IBM 메인프레임 개발자/관리자
작업설명필요한 기술

EC2 인스턴스에 를 정확하게 설치합니다.

Amazon Linux AMI for Amazon 에 Precisely에서 Connect를 설치하려면 Precisely 설명서의 에 있는 Install ConnectCDC(SQData)UNIX의 지침을 EC2따르세요.

일반 AWS

TCP/IP 포트를 엽니다.

인바운드 및 아웃바운드 액세스를 위한 컨트롤러 데몬 포트를 포함하도록 보안 그룹을 수정하려면 정밀 설명서의 TCP/IP의 지침을 따릅니다.

일반 AWS

파일 디렉터리를 생성합니다.

파일 디렉토리를 생성하려면 Precisely 설명서의 대상 적용 환경 준비 지침을 따르십시오.

일반 AWS

Apply Engine 구성 파일을 생성합니다.

Apply Engine의 작업 디렉토리에 Apply Engine 구성 파일을 생성합니다. 다음 예제 구성 파일은 Apache Kafka를 대상으로 보여줍니다.

builtin.features=SASL_SCRAM security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.username= sasl.password= metadata.broker.list=

참고: 자세한 내용은 Apache Kafka 설명서의 보안을 참조하세요.

일반 AWS

Apply Engine 처리를 위한 스크립트를 생성합니다.

Apply Engine용 스크립트를 생성하여 소스 데이터를 처리하고 소스 데이터를 대상에 복제합니다. 자세한 내용은 Precisely 설명서의 Apply Engine 스크립트 생성을 참고하십시오.

일반 AWS

스크립트를 실행합니다.

스크립트를 시작하려면 SQDPARSESQDENG 명령을 실행합니다. 자세한 내용은 Precisely 설명서의 zOS용 스크립트 구문 분석을 참고하십시오.

일반 AWS
작업설명필요한 기술

CDC 처리할 VSAM 파일 및 대상 테이블 목록을 확인합니다.

  1. 복제 로그, 복구 로그, FCT 파라미터 및 로그스트림을 포함한 VSAM 파일을 검증합니다.

  2. 테이블이 필수 스키마 정의, 테이블 액세스, 기타 기준에 따라 생성되었는지 여부를 포함하여 대상 데이터베이스 테이블을 검증합니다.

일반 AWS, 메인프레임

Connect CDC SQData 제품이 연결되어 있는지 확인합니다.

테스트 작업을 실행하고 이 작업의 반환 코드가 0(성공)인지 확인합니다.

참고 : Connect CDC SQData Apply Engine 상태 메시지에는 활성 연결 메시지가 표시되어야 합니다.

일반 AWS, 메인프레임
작업설명필요한 기술

메인프레임에서 일괄 작업을 실행합니다.

수정된 를 사용하여 배치 애플리케이션 작업을 실행합니다JCL. 수정된 에 다음을 JCL 수행하는 단계를 포함합니다.

  1. 데이터 파일을 백업합니다.

  2. 백업 파일을 수정된 데이터 파일과 비교하고 델타 파일을 생성한 다음 메시지의 델타 레코드 수를 기록합니다.

  3. 델타 파일을 z/OS 로그스트림으로 푸시합니다.

  4. 를 실행합니다JCL. 예제 는 정밀 설명서의 파일 비교 캡처 준비를 JCL JCL참조하세요.

일반 AWS, 메인프레임

로그스트림을 확인합니다.

로그스트림을 확인하여 완료된 메인프레임 일괄 작업에 대한 변경 데이터를 볼 수 있는지 확인합니다.

일반 AWS, 메인프레임

소스 델타 변경 및 대상 테이블의 개수를 확인합니다.

레코드가 집계되었는지 확인하려면 다음을 수행합니다.

  1. 배치 JCL 메시지에서 소스 델타 수를 수집합니다.

  2. 파일에 삽입, 업데이트 또는 삭제된 레코드 수의 레코드 수준 수에 대해 Apply Engine을 모니터링합니다VSAM.

  3. 대상 테이블에서 레코드 수를 쿼리합니다.

  4. 모든 다른 레코드 수를 비교하고 집계합니다.

일반 AWS, 메인프레임
작업설명필요한 기술

CICS 리전에서 온라인 트랜잭션을 실행합니다.

  1. 온라인 트랜잭션을 실행하여 테스트 케이스의 유효성을 검사합니다.

  2. 트랜잭션 실행 코드의 유효성을 검사합니다(RC=0 — 성공).

IBM 메인프레임 개발자

로그스트림을 확인합니다.

로그스트림이 특정 레코드 수준 변경으로 채워졌는지 확인합니다.

AWS 메인프레임 개발자

대상 데이터베이스의 개수를 확인합니다.

Apply Engine에서 레코드 수준 수를 모니터링합니다.

Precisely, Linux

대상 데이터베이스의 레코드 수와 데이터 레코드를 확인합니다.

대상 데이터베이스를 쿼리하여 레코드 수와 데이터 레코드를 확인합니다.

일반 AWS

관련 리소스

추가 정보

구성 파일 예

이 파일은 소스 환경이 메인프레임이고 대상 환경이 Amazon인 로그스트림에 대한 예제 구성 파일입니다MSK.

-- JOBNAME -- PASS THE SUBSCRIBER NAME -- REPORT  progress report will be produced after "n" (number) of Source records processed. JOBNAME VSMTOKFK; --REPORT EVERY 100; -- Change Op has been ‘I’ for insert, ‘D’ for delete , and ‘R’ for Replace. For RDS it is 'U' for update -- Character Encoding on z/OS is Code Page 1047, on Linux and UNIX it is Code Page 819 and on Windows, Code Page 1252 OPTIONS CDCOP('I', 'U', 'D'), PSEUDO NULL = NO, USE AVRO COMPATIBLE NAMES, APPLICATION ENCODING SCHEME = 1208; --       SOURCE DESCRIPTIONS BEGIN GROUP VSAM_SRC; DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file; END GROUP; --       TARGET DESCRIPTIONS BEGIN GROUP VSAM_TGT; DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file; END GROUP; --       SOURCE DATASTORE (IP & Publisher name) DATASTORE cdc://10.81.148.4:2626/vsmcdct/VSMTOKFK OF VSAMCDC AS CDCIN DESCRIBED BY GROUP VSAM_SRC ACCEPT ALL; --       TARGET DATASTORE(s) - Kafka and topic name DATASTORE 'kafka:///MSKTutorialTopic/key' OF JSON AS CDCOUT DESCRIBED BY GROUP VSAM_TGT FOR INSERT; --       MAIN SECTION PROCESS INTO CDCOUT SELECT { SETURL(CDCOUT, 'kafka:///MSKTutorialTopic/key') REMAP(CDCIN, account_file, GET_RAW_RECORD(CDCIN, AFTER), GET_RAW_RECORD(CDCIN, BEFORE)) REPLICATE(CDCOUT, account_file) } FROM CDCIN;

키 쌍 예제

다음은 를 실행JCL하여 키 페어를 생성하는 방법의 예입니다.

//SQDUTIL EXEC PGM=SQDUTIL //SQDPUBL DD DSN=&USER..NACL.PUBLIC, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPKEY DD DSN=&USER..NACL.PRIVATE, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPARMS DD keygen //SYSPRINT DD SYSOUT= //SYSOUT DD SYSOUT=* //SQDLOG DD SYSOUT=* //*SQDLOG8 DD DUMMY