Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Migre e replique arquivos VSAM para o Amazon RDS ou o Amazon MSK usando o Connect da Precisely

Criado por Prachi Khanna (AWS) e Boopatia GOPALSAMY (AWS)

Ambiente: PoC ou piloto

Origem: VSAM

Destino: Banco de dados

Tipo R: redefinir arquitetura

Workload: IBM

Tecnologias: mainframe; modernização

Serviços da AWS: Amazon MSK; Amazon RDS; AWS Mainframe Modernization

Resumo

Esse padrão mostra como migrar e replicar arquivos do Método de acesso ao armazenamento virtual (VSAM - Virtual Storage Access Method) de um mainframe para um ambiente de destino na Nuvem AWS usando o Connect da Precisely. Os ambientes de destino abrangidos por este padrão incluem o Amazon Relational Database Service (Amazon RDS) e o Amazon Managed Streaming for Apache Kafka (Amazon MSK). O Connect usa a captura de dados de alteração (CDC - change data capture) para monitorar continuamente as atualizações dos seus arquivos VSAM de origem e, em seguida, transferir essas atualizações para um ou mais dos seus ambientes de destino da AWS. Você pode usar esse padrão para atender às suas metas de modernização de aplicativos ou análise de dados. Por exemplo, você pode usar o Connect para migrar seus arquivos do aplicativo VSAM para a Nuvem AWS com baixa latência ou migrar seus dados do VSAM para um data warehouse ou data lake da AWS para análises que possam tolerar latências de sincronização maiores do que as necessárias para a modernização do aplicativo.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • O Connect não oferece suporte à criação automática de tabelas de destino com base nos esquemas ou copybooks do VSAM de origem. Você deve definir a estrutura da tabela de destino pela primeira vez.

  • Para destinos sem streaming, como o Amazon RDS, você deve especificar a fonte de conversão para o mapeamento de destino no script de configuração do Apply Engine.

  • As funções de registro, monitoramento e alerta são implementadas por meio de APIs e exigem que componentes externos (como a Amazon CloudWatch) estejam totalmente operacionais.

Versões do produto

  • SQData 40134 para z/OS

  • SQData 4.0.43 para a imagem de máquina da Amazon (AMI) do Amazon Linux no Amazon Elastic Compute Cloud (Amazon EC2)

Arquitetura

Pilha de tecnologia de origem

  • Job Control Language (JCL - Linguagem de controle de trabalho)

  • Shell z/OS Unix e Interactive System Productivity Facility (ISPF - Facilidade de produtividade do sistema interativo)

  • Utilitários VSAM (IDCAMS)

Pilha de tecnologias de destino

  • Amazon EC2

  • Amazon MSK

  • Amazon RDS

  • Amazon VPC

Arquitetura de destino

Migração de arquivos VSAM para o Amazon RDS

O diagrama a seguir mostra como migrar arquivos VSAM para um banco de dados relacional, como o Amazon RDS, em tempo real ou quase em tempo real usando o agente/publicador do CDC no ambiente de origem (mainframe on-premises) e o Apply Engine no ambiente de destino (Nuvem AWS).

O diagrama mostra o seguinte fluxo de trabalho em lote:

  1. O Connect captura as alterações em um arquivo comparando os arquivos VSAM dos arquivos de backup para identificar as alterações e, em seguida, envia as alterações para o fluxo de registros.

  2. O publicador consome dados do fluxo de log do sistema.

  3. O publicador comunica as alterações de dados capturadas a um mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

  4. O mecanismo de aplicação no ambiente de destino recebe as alterações do agente do Publisher e as aplica a um banco de dados relacional ou não relacional.

O diagrama mostra o seguinte fluxo de trabalho on-line:

  1. O Connect captura as alterações no arquivo on-line usando uma replicação de log e, em seguida, transmite as alterações capturadas para um logstream.

  2. O publicador consome dados do fluxo de log do sistema.

  3. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

  4. O mecanismo de aplicação no ambiente de destino recebe as alterações do agente do Publisher e as aplica a um banco de dados relacional ou não relacional.

Migração de arquivos VSAM para o Amazon MSK

O diagrama a seguir mostra como transmitir estruturas de dados VSAM de um mainframe para o Amazon MSK no modo de alto desempenho e gerar automaticamente conversões de esquema JSON ou AVRO que se integram ao Amazon MSK.

O diagrama mostra o seguinte fluxo de trabalho em lote:

  1. O Connect captura as alterações em um arquivo usando o CICS VR ou comparando arquivos VSAM de arquivos de backup para identificar alterações. As alterações capturadas são enviadas para o fluxo de registros.

  2. O publicador consome dados do fluxo de log do sistema.

  3. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

  4. O Replicator Engine que está operando no modo de processamento paralelo divide os dados em uma unidade de cache de trabalho.

  5. Os segmentos de trabalho capturam os dados do cache.

  6. Os dados são publicados nos tópicos do Amazon MSK a partir dos segmentos de trabalho.

  7. Os usuários aplicam alterações do Amazon MSK a destinos como Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) ou Amazon Service usando conectores OpenSearch .

O diagrama mostra o seguinte fluxo de trabalho on-line:

  1. As alterações no arquivo on-line são capturadas usando uma replicação de log. As alterações capturadas são transmitidas para o logstream.

  2. O publicador consome dados do fluxo de log do sistema.

  3. O publicador comunica as alterações de dados capturadas ao mecanismo de destino por meio de TCP/IP. O Controller Daemon autentica a comunicação entre os ambientes de origem e de destino.

  4. O Replicator Engine que está operando no modo de processamento paralelo divide os dados em uma unidade de cache de trabalho.

  5. Os segmentos de trabalho capturam os dados do cache.

  6. Os dados são publicados nos tópicos do Amazon MSK a partir dos segmentos de trabalho.

  7. Os usuários aplicam alterações do Amazon MSK a destinos como DynamoDB, Amazon S3 ou Service usando conectores OpenSearch .

Ferramentas

Épicos

TarefaDescriçãoHabilidades necessárias

Instale o Connect CDC 4.1.

  1. Entre em contato com a equipe do Precisely Support para obter uma licença e pacotes de instalação.

  2. Use exemplos de JCLs para instalar o Connect CDC 4.1. Para obter instruções, consulte Install Connect CDC (SQData) usando JCL na documentação do Precisely.

  3. Execute o comando SETPROG APF para autorizar as bibliotecas de carregamento do SQDATA.V4nnn.LOADLIB.

Desenvolvedor/administrador de mainframe IBM

Configure o diretório zFS.

Para configurar um diretório zFS, siga as instruções dos diretórios de variáveis do zFS na documentação do Precisely.

Observação: As configurações do controlador Daemon e do agente Capture/Publisher são armazenadas no sistema de arquivos z/OS UNIX Systems Services (conhecido como zFS). Os agentes Controller Daemon, Capture, Storage e Publisher exigem uma estrutura de diretórios zFS predefinida para armazenar um pequeno número de arquivos.

Desenvolvedor/administrador de mainframe IBM

Configure portas TCP/IP.

Para configurar portas TCP/IP, siga as instruções das portas TCP/IP na documentação do Precisely.

Observação: o Daemon do controlador requer portas TCP/IP nos sistemas de origem. As portas são referenciadas pelos mecanismos nos sistemas de destino (onde os dados de alteração capturados são processados).

Desenvolvedor/administrador de mainframe IBM

Crie um logstream do z/OS.

Para criar um logstream do z/OS, siga as instruções de Criar fluxos de registros do sistema z/OS na documentação do Preciously.

Observação: o Connect usa o logstream para capturar e transmitir dados entre o ambiente de origem e o ambiente de destino durante a migração.

Para ver um exemplo de JCL que cria um z/OS LogStream, consulte Criar LogStreams do sistema z/OS na documentação Precisely.

Desenvolvedor de mainframe da IBM

Identifique e autorize IDs para usuários do zFS e tarefas iniciadas.

Use o RACF para conceder acesso ao sistema de arquivos OMVS zFS. Para ver um exemplo de JCL, consulte Identificar e autorizar IDs de usuários e tarefas iniciadas do ZFS na documentação do Precisely.

Desenvolvedor/administrador de mainframe IBM

Gere as chaves públicas/privadas do z/OS e o arquivo de chave autorizado.

Execute o JCL para gerar o par de chaves. Para obter um exemplo, consulte Exemplo de par de chaves na seção Informações adicionais desse padrão.

Para obter instruções, consulte Gerar chaves públicas e privadas do z/OS e o arquivo de chave autorizado na documentação do Precisely.

Desenvolvedor/administrador de mainframe IBM

Ative o CICS VSAM Log Replicate e anexe-o ao fluxo de logs.

Execute o seguinte script JCL:

//STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER SQDATA.CICS.FILEA - LOGSTREAMID(SQDATA.VSAMCDC.LOG1) - LOGREPLICATE
Desenvolvedor/administrador de mainframe IBM

Ative o log de recuperação de arquivos VSAM por meio de um FCT.

Modifique a Tabela de controle de arquivos (FCT - File Control Table) para refletir as seguintes alterações de parâmetros:

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
Desenvolvedor/administrador de mainframe IBM

Configure o CD CzLog para o agente do Publisher.

  1. Crie o arquivo CAB do CD CzLog Publisher.

  2. Criptografe os dados publicados.

  3. Prepare o CD CzLog Publisher Runtime JCL.

Desenvolvedor/administrador de mainframe IBM

Ative o Daemon do controlador.

  1. Abra o painel do ISPF e execute o seguinte comando para abrir o menu Precisamente: EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn'

  2. Para configurar o Daemon do controlador, escolha a opção 2 no menu.

Desenvolvedor/administrador de mainframe IBM

Ative o publicador.

  1. Abra o painel do ISPF e execute o seguinte comando para abrir o menu Precisamente: EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn'

  2. Para configurar o publicador, escolha a opção 3 no menu e eu para inserir.

Desenvolvedor/administrador de mainframe IBM

Ative o fluxo de registro.

  1. Abra o painel do ISPF e execute o seguinte comando para abrir o menu Precisamente: EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn'

  2. Para configurar o fluxo de registros, escolha a opção 4 no menu e eu para inserir. Em seguida, insira o nome do fluxo de logs criado nas etapas anteriores.

Desenvolvedor/administrador de mainframe IBM
TarefaDescriçãoHabilidades necessárias

Instale Precisely em uma instância do EC2.

Para instalar o Connect da Preciously no Amazon Linux AMI para Amazon EC2, siga as instruções de Install Connect CDC (SQData) no UNIX na documentação do Preciously.

AWS geral

Abra portas TCP/IP.

Para modificar o grupo de segurança para incluir as portas do Controller Daemon para acesso de entrada e saída, siga as instruções do TCP/IP na documentação do Precisely.

AWS geral

Crie diretórios de arquivos.

Para criar diretórios de arquivos, siga as instruções de Preparar o ambiente de aplicação de destino na documentação do Precisely.

AWS geral

Crie o arquivo de configuração do Apply Engine.

Crie o arquivo de configuração do Apply Engine no diretório de trabalho do Apply Engine. O exemplo de arquivo de configuração a seguir mostra o Apache Kafka como destino:

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

Observação: Para obter mais informações, consulte Segurança na documentação do Apache Kafka.

AWS geral

Crie scripts para o processamento do Apply Engine.

Crie os scripts para que o Apply Engine processe os dados de origem e replique os dados de origem para o destino. Para obter mais informações, consulte Criar um script de mecanismo de aplicação na documentação do Precisely.

AWS geral

Execute os scripts.

Use os comandos SQDPARSE e SQDENG para executar o script. Para obter mais informações, consulte Analisar um script para ZoS na documentação do Precisely.

AWS geral
TarefaDescriçãoHabilidades necessárias

Valide a lista de arquivos VSAM e tabelas de destino para processamento de CDC.

  1. Valide arquivos VSAM, incluindo logs de replicação, logs de recuperação, parâmetros FCT e o fluxo de logs.

  2. Valide as tabelas do banco de dados de destino, incluindo se as tabelas foram criadas de acordo com a definição de esquema necessária, o acesso à tabela e outros critérios.

AWS geral, Mainframe

Verifique se o produto Connect CDC SQData está vinculado.

Execute um trabalho de teste e verifique se o código de retorno desse trabalho é 0 (bem-sucedido).

Observação: As mensagens de status do Connect CDC SQData Apply Engine devem mostrar mensagens de conexão ativas.

AWS geral, Mainframe
TarefaDescriçãoHabilidades necessárias

Execute o trabalho em lotes no mainframe.

Execute o trabalho de aplicação em lote usando um JCL modificado. Inclua etapas na JCL modificada que façam o seguinte:

  1. Faça um backup dos arquivos de dados.

  2. Compare o arquivo de backup com os arquivos de dados modificados, gere o arquivo delta e anote a contagem de registros delta das mensagens.

  3. Envie o arquivo delta para o fluxo de log do z/OS.

  4. Execute o JCL. Para ver um exemplo de JCL, consulte Preparar arquivo, comparar e capturar JCL na documentação do Preciously.

AWS geral, Mainframe

Verifique o fluxo de logs.

Verifique o fluxo de registros para confirmar que você pode ver os dados de alteração do trabalho em lote concluído do mainframe.

AWS geral, Mainframe

Valide as contagens das alterações do delta de origem e da tabela de destino.

Para confirmar se os registros foram contabilizados, faça o seguinte:

  1. Reúna a contagem delta de origem das mensagens JCL em lote.

  2. Monitore o Apply Engine para ver as contagens em nível de registro do número de registros inseridos, atualizados ou excluídos no arquivo VSAM.

  3. Consulte a tabela de destino para ver as contagens de registros.

  4. Compare e contabilize todas as diferentes contagens de registros.

AWS geral, Mainframe
TarefaDescriçãoHabilidades necessárias

Execute a transação on-line em uma região do CICS.

  1. Execute a transação on-line para validar o caso de teste.

  2. Valide o código de execução da transação (RC=0 – Sucesso).

Desenvolvedor de mainframe da IBM

Verifique o fluxo de logs.

Confirme se o fluxo de registros está preenchido com alterações específicas no nível do registro.

Desenvolvedor do AWS Mainframe

Valide a contagem no banco de dados de destino.

Monitore o mecanismo de aplicação para obter contagens de níveis recordes.

Precisely, Linux

Valide as contagens de registros e os registros de dados no banco de dados de destino.

Consulte o banco de dados de destino para validar as contagens de registros e os registros de dados.

AWS geral

Recursos relacionados

Mais informações

Exemplo do arquivo de configuração

Este é um exemplo de arquivo de configuração para um fluxo de logs em que o ambiente de origem é um mainframe e o ambiente de destino é o 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;

Exemplo de par de chaves

Este é um exemplo de como executar o JCL para gerar o par de chaves:

//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