本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
MSK使用 Precission 中的 Connect 将VSAM文件迁移和复制到亚马逊RDS或亚马逊
由 Prachi Khanna (AWS) 和 Boo GOPALSAMY pathy () 创作 AWS
环境:PoC 或试点 | 来源:VSAM | 目标:数据库 |
R 类型:重构 | 工作量:IBM | 技术:大型机;现代化 |
AWS服务:亚马逊MSK;亚马逊RDS;AWS大型机现代化 |
Summary
此模式向您展示如何使用 C onnec
先决条件和限制
先决条件
IBMz/OS V
2R1 或更高版本 CICS适用于 z/OS (CICSTS) V5.1 或更高版本的事务服务器
(CICS/VSAM数据捕获) IBMMQ 8.0
或更高版本 符合 z/OS 安全要求
(例如,SQData加载库的APF授权) VSAM恢复日志已开启
(可选)用于自动捕获CDC日志的CICSVSAM恢复版本 (CICSVR)
一个活跃的AWS账户
A mazon Virtual Private Cloud (VPC),其子网可通过您的传统平台访问
来自 P VSAM recist 的 Connect
限制
Connect 不支持基于源VSAM架构或副本自动创建目标表。您必须首次定义目标表的结构。
对于非流媒体目标(例如 Amazon)RDS,您必须在 Apply Engine 配置脚本中指定目标映射的转换源。
记录、监控和警报功能通过外部组件(例如 Amazon)实现,APIs并且需要外部组件(例如 Amazon CloudWatch)才能完全运行。
产品版本
SQData40134 适用于 z/OS
SQData4.0.43 适用于亚马逊弹性计算云(亚马逊AMI)上的亚马逊 Linux 亚马逊机器映像 () EC2
架构
源技术堆栈
Job 控制语言 (JCL)
z/OS Unix 外壳和交互式系统生产力工具 () ISPF
VSAM公用事业 (IDCAMS)
目标技术堆栈
Amazon EC2
Amazon MSK
Amazon RDS
Amazon VPC
目标架构
将VSAM文件迁移到亚马逊 RDS
下图显示了如何使用源环境(本地大型机)中的CDC代理/发布者以及目标环境(云)中的应用引擎
图表显示了以下批处理工作流:
Connect 通过比较备份文件VSAM中的文件来识别更改,从而捕获对文件的更改,然后将更改发送到日志流。
Publisher 使用系统日志流中的数据。
发布者通过 TCP /IP 将捕获的数据更改传达给目标引擎。 控制器守护程序对源环境和目标环境之间的通信进行身份验证。
目标环境中的 Apply Engine 从 Publisher 代理接收更改并将它们应用到关系或非关系数据库。
图表显示了以下在线工作流:
Connect 使用日志副本捕获联机文件更改,然后将捕获的更改流式传输到日志流。
Publisher 使用系统日志流中的数据。
发布者通过 TCP /IP 将捕获的数据更改传达给目标引擎。控制器进程守护程序对源环境和目标环境之间的通信进行身份验证。
目标环境中的 Apply Engine 从 Publisher 代理接收更改,然后将它们应用到关系或非关系数据库。
将VSAM文件迁移到亚马逊 MSK
下图显示了如何以高性能模式将VSAM数据结构从大型机流式传输到 AmazonMSK,以及如何自动生成JSON或AVRO架构与 Amazon MSK 集成的转换。
图表显示了以下批处理工作流:
Connect 通过使用 CICS VR 或比较备份VSAM文件中的文件来捕获文件更改以识别更改。捕获的更改将发送至日志流。
Publisher 使用系统日志流中的数据。
发布者通过 TCP /IP 将捕获的数据更改传达给目标引擎。控制器进程守护程序对源环境和目标环境之间的通信进行身份验证。
在并行处理模式下运行的 Replicator Engine 将数据拆分为工作缓存单元。
Worker 线程从缓存中捕获数据。
数据通过工作线程发布到 Amazon MSK 主题。
用户使用连接器将来自亚马逊的更改应用MSK到目标,例如亚马逊 DynamoDB、亚马逊简单存储服务 (Amazon S3) Service 或 OpenSearch 亚马逊服务。
图表显示了以下在线工作流:
在线文件中的更改是通过使用日志复制来捕获的。捕获的更改将传输到日志流。
Publisher 使用系统日志流中的数据。
发布者通过 TCP /IP 将捕获的数据更改传达给目标引擎。控制器进程守护程序对源环境和目标环境之间的通信进行身份验证。
在并行处理模式下运行的 Replicator Engine 将数据拆分为工作缓存单元。
Worker 线程从缓存中捕获数据。
数据通过工作线程发布到 Amazon MSK 主题。
用户使用连接器将来自亚马逊MSK的更改应用于 DynamoDB、Amazon S3 OpenSearch 或服务等目标。
工具
适用于 Apache Kafka 的亚马逊托管流媒体 Kafka(MSK亚马逊)是一项完全托管的服务,可帮助您构建和运行使用 Apache Kafka 处理流数据的应用程序。
Amazon Relational Database Service (AmazonRDS) 可帮助您在AWS云中设置、操作和扩展关系数据库。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
安装 Connect CDC 4.1。 |
| IBM大型机开发人员/管理员 |
设置 zFS 目录。 | 要设置 zfS 目录,请按照 Preclist 文档中 zfS 变量目录 注意:Controller Daemon 和 Capture/Publisher 代理配置存储在 z/OS S UNIX ystems Services 文件系统(称为 zFS)中。控制器进程守护程序、Capture、Storage 和 Publisher 代理需要预定义 zFS 目录结构以存储少量文件。 | IBM大型机开发人员/管理员 |
配置 TCP /IP 端口。 | 要配置 TCP /IP 端口,请按照 Preclist 文档中 TCP/IP 端口 注意:控制器守护程序需要源系统上TCP的 /IP 端口。这些端口由目标系统上的引擎引用(在那里处理捕获的更改数据)。 | IBM大型机开发人员/管理员 |
创建 z/OS 日志流。 | 要创建 z/OS 日志流 注意:Connect 使用日志流在迁移期间在源环境和目标环境之间捕获和流式传输数据。 有关创建 z/OS JCL 的示例 LogStream,请参阅 Precist 文档logStreams中的创建 z/OS 系统 | IBM大型机开发人员 |
IDs为 ZFS 用户和已启动的任务进行识别和授权。 | 用于授RACF予对 OMVS zFS 文件系统的访问权限。有关示例JCL,请参阅 Precist 文档IDs中的识别和授权 zfS 用户并启动任务 | IBM大型机开发人员/管理员 |
生成 z/OS 公有密钥/私有密钥以及授权密钥文件。 | 运行JCL生成密钥对。有关示例,请参阅此模式的其他信息部分中的密钥对示例。 有关说明,请参阅 Precisely 文档中的生成 z/OS 公有密钥和私有密钥以及授权密钥文件 | IBM大型机开发人员/管理员 |
激活CICSVSAM日志复制并将其附加到日志流。 | 运行以下JCL脚本:
| IBM大型机开发人员/管理员 |
通过激活VSAM文件恢复日志FCT。 | 修改文件控制表 (FCT) 以反映以下参数更改:
| IBM大型机开发人员/管理员 |
为发布商代理CDCzLog进行设置。 |
| IBM大型机开发人员/管理员 |
激活控制器进程守护程序。 |
| IBM大型机开发人员/管理员 |
激活 Publisher。 |
| IBM大型机开发人员/管理员 |
激活日志流。 |
| IBM大型机开发人员/管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
精确地安装在EC2实例上。 | 要在AMI适用于亚马逊的亚马逊 Linux 上安装 Precission 的 ConnectEC2,请按照 Precist 文档中安装Connect CDC (SQData) UNIX 中的说明进行 | 将军 AWS |
打开 TCP /IP 端口。 | 要修改安全组以包含用于入站和出站访问的 Controller Daemon 端口,请按照 Precist 文档中 TCP/IP | 将军 AWS |
创建文件目录。 | 要创建文件目录,请按照 Precisely 文档中的准备目标应用环境 | 将军 AWS |
创建 Aply Engine 配置文件。 | 在 Apply Engine 的工作目录中创建 Apply Engine 配置文件。以下示例配置文件显示 Apache Kafka 作为目标:
注意:有关更多信息,请参阅 Apache Kafka 文档中的安全性 | 将军 AWS |
为 Apply Engine 处理创建脚本。 | 为 Apply Engine 创建脚本以处理源数据并将源数据复制到目标。有关更多信息,请参阅 Precisely 文档中的创建应用引擎脚本 | 将军 AWS |
运行脚本。 | 使用 | 将军 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
验证要CDC处理VSAM的文件和目标表的列表。 |
| 常规AWS,大型机 |
验证 Connect CDC SQData 产品是否已链接。 | 运行测试作业并验证此作业的返回码是否为 0(成功)。 注意:Connect A CDC SQData pply Engine 状态消息应显示活动连接消息。 | 常规AWS,大型机 |
任务 | 描述 | 所需技能 |
---|---|---|
在大型机中运行批处理作业。 | 使用修改过的运行批处理应用程序作业JCL。在修改JCL后包含执行以下操作的步骤:
| 常规AWS,大型机 |
检查日志流。 | 检查日志流,确认您可看到已完成的大型机批处理作业的更改数据。 | 常规AWS,大型机 |
验证源增量更改和目标表的计数。 | 要确认记录已计数,请执行以下操作:
| 常规AWS,大型机 |
任务 | 描述 | 所需技能 |
---|---|---|
在某个CICS地区运行在线交易。 |
| IBM大型机开发人员 |
检查日志流。 | 确认日志流中填充了特定记录级别更改。 | AWS大型机开发人员 |
验证目标数据库计数。 | 监视 Apply Engine 以获取记录级别计数。 | Precisely、Linux |
验证目标数据库中的记录计数与数据记录。 | 查询目标数据库以验证记录计数与数据记录。 | 将军 AWS |
相关资源
VSAMz/OS
(准确地说是文档) Apply Engine
(Precisely 文档) 复制器引擎
(Precisely 文档) 日志流
(IBM文档)
其他信息
配置文件示例
这是日志流的示例配置文件,其中源环境是大型机,目标环境是 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