Translate

Mostrar mensagens com a etiqueta spufi. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta spufi. Mostrar todas as mensagens

terça-feira, 12 de maio de 2026

🔥☕ DB2 COMMANDS AVANÇADOS NO IBM Z — O QUE ESSES COMANDOS REALMENTE REVELAM SOBRE A SAÚDE DO MAINFRAME 💾🚨

 

Bellacosa Mainframe Db2 avançado para um sysprog

🔥☕ DB2 COMMANDS AVANÇADOS NO IBM Z — O QUE ESSES COMANDOS REALMENTE REVELAM SOBRE A SAÚDE DO MAINFRAME 💾🚨

A tela que você mostrou agora já entra em um nível MUITO mais avançado do DB2 z/OS.

Aqui não estamos mais falando apenas de:

-DIS THREAD(*)

Agora estamos entrando no território de:

  • troubleshooting pesado,

  • análise recovery,

  • pending states,

  • advisory states,

  • limbo pages,

  • tablespaces problemáticas,

  • diagnóstico profundo de storage DB2.

Esses são comandos típicos de:

  • DBA senior,

  • Sysprog,

  • suporte de produção crítica,

  • recovery team,

  • performance specialists.


🔥 CMD 1 — O “RAIO-X GLOBAL” DAS DATABASES

Comando

-DIS DB(*) SP(*) RESTRICT LIMIT(*)

💾 O QUE ELE FAZ?

Esse comando:

  • percorre TODAS as databases,

  • mostra TODOS os spaces,

  • filtra objetos em estado RESTRICT,

  • sem limite de quantidade.


🧠 EXPLICAÇÃO DOS PARÂMETROS

ParâmetroSignificado
DB(*)Todas as databases
SP(*)Todos os spaces
RESTRICTMostra objetos restritos
LIMIT(*)Sem limite de retorno

🚨 O QUE É RESTRICT?

Estados RESTRICT indicam:

  • objeto parcialmente indisponível,

  • utility incompleta,

  • recovery necessário,

  • inconsistência operacional.


💥 CENÁRIOS REAIS

Após falha de REORG

Você pode encontrar:

RESTRICT

indicando:

  • tablespace inconsistente.


Após falha LOAD

O objeto pode:

  • aceitar leitura,

  • mas bloquear update.


🔥 O QUE O SYSPOG PROCURA?

  • objetos presos,

  • utilities abandonadas,

  • estados recovery,

  • pendências ocultas.


🔥 CMD 2 — DISPLAY THREAD

Comando

-DIS THREAD(*)

💾 O COMANDO MAIS IMPORTANTE DO DB2

Esse comando mostra:

  • threads ativas,

  • conexões CICS,

  • batch,

  • TSO,

  • DDF,

  • waits,

  • CPU.


🚨 O QUE ANALISAR?

WAIT

Pode indicar:

  • lock,

  • I/O lento,

  • deadlock.


THREAD ZUMBI

Thread ativa sem progresso:

  • aplicação travada,

  • commit preso,

  • problema rede DDF.


THREAD MASSIVA

Uma única thread:

  • consumindo CPU absurda,

  • SQL ruim,

  • tablescan gigante.


🔥 CMD 3 — DISPLAY DATABASE OVERVIEW

Comando

-DISPLAY DATABASE(DSN8D13A) SPACE(*) OVERVIEW

💾 O QUE É OVERVIEW?

Mostra uma visão resumida:

  • status,

  • pendências,

  • utilities,

  • estados críticos.

Sem detalhar cada partição profundamente.


🎯 OBJETIVO

Obter diagnóstico rápido.

Muito usado em:

  • incidentes,

  • bridge call,

  • troubleshooting urgente.


💥 O QUE APARECE?

CampoSignificado
RWRead Write
RORead Only
STOPParado
UTUtility
CHKPCheck Pending

🚨 EXEMPLO REAL

Se aparecer:

UTRO

pode indicar:

  • utility rodando,

  • objeto somente leitura.


🔥 CMD 4 — LIST TABLESPACES SHOW DETAIL

Comando

-LIST TABLESPACES SHOW DETAIL

💾 O QUE ELE FAZ?

Lista:

  • tablespaces,

  • atributos,

  • detalhes físicos,

  • status internos.


🧠 INFORMAÇÕES IMPORTANTES

Pode mostrar:

  • DSSIZE,

  • PRIQTY,

  • SECQTY,

  • SEGSIZE,

  • bufferpool,

  • locksize,

  • partitioning.


🚨 MUITO USADO PARA

  • capacity planning,

  • tuning,

  • growth analysis,

  • storage troubleshooting.


💥 O DBA PROCURA

Tablespace gigante

Pode exigir:

  • reparticionamento,

  • compressão,

  • REORG.


Bufferpool inadequado

Pode gerar:

  • I/O excessivo,

  • CPU alta.


🔥 CMD 5 — DISPLAY DATABASE COM ADVISORY

Comando

-DISPLAY DATABASE(DSN8D13A) SPACENAM(*) LIMIT(*) ADVISORY(ARBDP,AREO*)

💾 ESSE É PESADO 😄

Aqui entramos em:

estados advisory.


🧠 O QUE É ADVISORY?

Não significa falha imediata.

Significa:

  • DB2 recomenda ação corretiva.


🚨 ARBDP

Advisory Rebuild Pending

Indica:

  • índice precisa rebuild.

Pode ocorrer:

  • após recover,

  • após falha,

  • inconsistência index.


🚨 AREO*

Advisory REORG Pending

O DB2 recomenda:

REORG

💥 POR QUE ISSO IMPORTA?

Mesmo funcionando:

  • performance degrada,

  • overflow aumenta,

  • access path piora,

  • CPU sobe.


🔥 SINTOMA CLÁSSICO

Aplicação:

“está ficando lenta”

DBA roda:

-DISPLAY DATABASE ... ADVISORY

e encontra:

AREO*

🔥 CMD 6 — DISPLAY DATABASE GLOBAL ADVISORY

Comando

-DISPLAY DATABASE(*) SPACENAM(*) LIMIT(*) ADVISORY

💾 O “CAÇA-PROBLEMAS” GLOBAL

Esse comando varre:

TODO o subsystem DB2.


🚨 O QUE ELE PROCURA?

  • AREO

  • ARBDP

  • RBDP

  • CHKP

  • COPY

  • pending states


💥 MUITO USADO EM:

  • health checks,

  • automação,

  • auditoria,

  • pré-manutenção,

  • pré-upgrade.


🔥 EM GRANDES BANCOS

Esse comando roda:

  • automaticamente,

  • várias vezes ao dia.


🔥 CMD 7 — LPL (Logical Page List)

Comando

-DISPLAY DATABASE(DSN8D13A) SPACENAM(*) LIMIT(*) LPL

💾 AGORA ENTRAMOS NO MODO “CIRURGIA CARDÍACA” 😄

LPL =

Logical Page List.


🚨 O QUE É LPL?

Lista páginas:

  • danificadas,

  • inconsistentes,

  • com problema recovery.


💥 COMO UMA PÁGINA ENTRA EM LPL?

  • falha I/O,

  • corrupção,

  • abend,

  • falha hardware,

  • escrita incompleta,

  • recover interrompido.


🚨 IMPACTO

Objetos em LPL:

  • podem ficar indisponíveis,

  • gerar SQLCODE,

  • causar abends,

  • travar aplicações.


🔥 O DBA PROCURA

Quantidade de páginas afetadas

Se poucas:

  • recover localizado.

Se muitas:

  • desastre potencial.


💣 COMANDOS ASSOCIADOS

Após detectar LPL:

Pode ser necessário:

-RECOVER
-START DB(...)
-STOP DB(...)

🔥 O QUE ESSA TELA ENSINA?

Essa tela é praticamente:

um mapa de sobrevivência do DB2.

Ela mostra:

  • diagnóstico,

  • recovery,

  • saúde,

  • inconsistência,

  • tuning,

  • pending states,

  • gargalos ocultos.


☕ A GRANDE VERDADE DO DB2 z/OS

O DB2 raramente “morre do nada”.

Antes do desastre ele:

  • avisa,

  • marca pending,

  • cria advisory,

  • registra utility,

  • sinaliza REORG,

  • aponta rebuild,

  • mostra waits,

  • denuncia locks.

O problema é:

pouca gente olha os comandos 😄


🚀 O QUE UM SYSPOG VETERANO FARIA?

Sequência clássica:

-DIS THREAD(*)
-DIS DB(*) SP(*) RESTRICT
-DIS UTIL(*)
-DIS LOG
-DIS BPOOL(*)
-DIS DATABASE(*) ADVISORY

Em poucos minutos ele consegue enxergar:

  • saúde do subsystem,

  • pressão operacional,

  • risco recovery,

  • gargalos,

  • objetos degradados,

  • ameaças à produção.

E isso…
diretamente do velho terminal 3270 💾🔥

segunda-feira, 19 de janeiro de 2026

💥 LAB: Db2 na prática — do TSO ao Batch

 

Bellacosa Mainframe Laboratio DB2

💥 LAB: Db2 na prática — do TSO ao Batch

Trabalharemos com o IBM Db2 13 for z/OS usando duas abordagens:

👉 Online (TSO/ISPF + SPUFI)
👉 Batch (JCL + DSNTEP2)


🧪 PARTE 1 — SPUFI (modo interativo)

🔹 O que é SPUFI?

👉 SPUFI = SQL Processor Using File Input

Ferramenta dentro do DB2I (ISPF) para rodar SQL rapidamente.


🚀 Passo a passo

1. Entrar no DB2I

No ISPF:

===> DB2I

2. Selecionar SPUFI

Option ===> 1

3. Criar dataset de entrada

Exemplo:

VAGNER.SQL.INPUT

4. Escrever o SQL

CREATE TABLE VAGNER.CLIENTES (
ID INTEGER,
NOME VARCHAR(50),
CIDADE VARCHAR(50)
);

INSERT INTO VAGNER.CLIENTES VALUES (1, 'ANA', 'SAO PAULO');
INSERT INTO VAGNER.CLIENTES VALUES (2, 'JOAO', 'CAMPINAS');

SELECT * FROM VAGNER.CLIENTES;

5. Executar (PF8)

👉 Resultado vai para o dataset de saída


💡 O que você aprendeu aqui

✔ Criar tabela
✔ Inserir dados
✔ Consultar
✔ Usar ambiente interativo


⚙️ PARTE 2 — DSNTEP2 (modo batch raiz)

Agora vem o modo produção de verdade 😎


🔹 O que é DSNTEP2?

👉 Programa utilitário que executa SQL via JCL

💡 Tradução Bellacosa:

SPUFI é treino… DSNTEP2 é jogo oficial ⚔️


📜 JCL COMPLETO

//DB2JOB JOB (ACCT),'DB2 LAB',CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID
//*
//STEP01 EXEC PGM=IKJEFT01
//STEPLIB DD DISP=SHR,DSN=DSN!!0.SDSNLOAD
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(DB2P)
RUN PROGRAM(DSNTEP2) PLAN(DSNTEP71) -
LIB('DSN!!0.SDSNLOAD')
END
/*
//SYSIN DD *
SELECT * FROM VAGNER.CLIENTES;
/*

🔍 Explicando (nível especialista)

🔹 IKJEFT01

👉 Interface TSO em batch


🔹 DSN SYSTEM(DB2P)

👉 Conecta no subsistema Db2


🔹 DSNTEP2

👉 Executa comandos SQL


🔹 PLAN(DSNTEP71)

👉 Plano necessário para execução


🔹 SYSIN

👉 Onde está o SQL


🧠 Resultado esperado

Você verá:

ID NOME CIDADE
----------------------
1 ANA SAO PAULO
2 JOAO CAMPINAS

💣 PEGADINHAS DE PRODUÇÃO

⚠️ 1. Falha de autorização

👉 Verifique permissões no RACF


⚠️ 2. PLAN não encontrado

👉 DSNTEP71 pode variar no ambiente


⚠️ 3. SQLCODE negativo

Exemplo:

  • -104 → erro de sintaxe
  • -204 → objeto não existe
  • -911 → deadlock

🔥 EVOLUÇÃO DO LAB

Quer subir o nível? Tenta isso:

💡 Desafio 1

Criar índice:

CREATE INDEX IDX1 ON VAGNER.CLIENTES (ID);

💡 Desafio 2

Update:

UPDATE VAGNER.CLIENTES
SET CIDADE = 'RIO DE JANEIRO'
WHERE ID = 1;

💡 Desafio 3

Delete:

DELETE FROM VAGNER.CLIENTES WHERE ID = 2;

🚀 VISÃO DE MAINFRAME RAIZ

👉 SPUFI → exploração / debug
👉 DSNTEP2 → automação / batch / produção

Se você domina isso, você já está acima de 80% dos devs Db2 💥


sábado, 11 de outubro de 2025

🔥☕ DSN COMMAND E SUBCOMMANDS NO DB2 z/OS — A PORTA DE ENTRADA DO UNIVERSO DB2 NO MAINFRAME IBM Z 💾🚨

 

Bellacosa Mainframe configurado o Db2

🔥☕ DSN COMMAND E SUBCOMMANDS NO DB2 z/OS — A PORTA DE ENTRADA DO UNIVERSO DB2 NO MAINFRAME IBM Z 💾🚨

Se existe um comando que praticamente todo programador COBOL/DB2, DBA ou sysprog encontra cedo ou tarde no Mainframe, esse comando é:

DSN

O DSN é o processador de comandos do Db2 no z/OS e funciona como um processador TSO.
Em outras palavras:

ele abre uma sessão de comunicação direta com o DB2.

É a partir dele que:

  • executamos SQL,

  • fazemos BIND,

  • REBIND,

  • RUN,

  • SPUFI,

  • administramos packages,

  • executamos programas DB2,

  • controlamos aplicações.


🔥 O QUE É O COMANDO DSN?

Tradução

O comando TSO DSN inicia uma sessão DSN.


💾 EXEMPLO BÁSICO

No prompt TSO:

READY

digite:

DSN SYSTEM(DB9G)

🚀 O QUE ACONTECE?

Você entra no ambiente DB2:

DSN

Agora:

  • comandos DB2,

  • SQL,

  • BIND,

  • RUN

podem ser executados.


🧪 LABORATÓRIO 1 — ENTRANDO NO DB2

Passo 1

No TSO:

DSN SYSTEM(DB9G)

Passo 2

Você verá:

DSN

Passo 3

Teste um comando:

-DIS THREAD(*)

Passo 4

Saia da sessão:

END

🔥 END COMMAND

“Saindo do universo DB2”

Tradução

O subcomando END termina a sessão DSN e retorna ao TSO.


💾 EXEMPLO

END

🚀 RESULTADO

Você volta ao:

READY

🔥 IMPORTANTE — FOREGROUND E BACKGROUND

Os subcomandos DSN podem rodar:

  • foreground (interativo),

  • background (batch JCL).

Exceto:

SPUFI

que roda apenas no foreground ISPF.


🔥 ABEND

“Forçar um crash controlado”

Tradução

O subcomando ABEND termina a sessão DSN com abend X'04E'.


🚨 IMPORTANTE

IBM diz claramente:

use apenas sob orientação do suporte IBM.


💾 PARA QUE SERVE?

Diagnóstico profundo:

  • dumps,

  • análise interna,

  • debugging DB2.


🚨 EXEMPLO

ABEND

💥 RESULTADO

Gera:

  • dump,

  • encerramento anormal,

  • diagnóstico técnico.


🔥 BIND PACKAGE

“Criando o package executável do DB2”

Tradução

Constrói um package de aplicação.

O DB2:

  • registra descrição no catálogo,

  • salva package no directory,

  • remove versões antigas.


💾 O QUE É PACKAGE?

Package contém:

  • SQL compilado,

  • access path,

  • metadata otimizada.


🧪 LABORATÓRIO 2 — BIND PACKAGE

Passo 1 — Pré-compilar COBOL DB2

Gerar DBRM.


Passo 2 — Entrar no DSN

DSN SYSTEM(DB9G)

Passo 3 — Executar bind

BIND PACKAGE(MYCOLL) MEMBER(PROG1)
      ACTION(REPLACE)
      VALIDATE(BIND)

🚀 RESULTADO

DB2 cria:

  • package executável,

  • access path SQL.


🚨 ERROS COMUNS

SQLCODE -805

Package não encontrado.


AUTH FAILURE

Sem privilégio BIND.


🔥 BIND PLAN

“Criando o plano de execução da aplicação”

Tradução

Constrói um application plan.

Todo programa DB2 precisa de um PLAN para:

  • alocar recursos,

  • executar SQL.


💾 RELAÇÃO PACKAGE vs PLAN

ItemFunção
PACKAGESQL compilado
PLANEstrutura execução

🧪 LABORATÓRIO 3 — BIND PLAN

Passo 1

DSN SYSTEM(DB9G)

Passo 2

BIND PLAN(PLAN1)
     PKLIST(MYCOLL.*)

🚀 RESULTADO

Plano criado associando packages.


🔥 BIND QUERY

“Congelando access paths”

Tradução

Lê informações da:

DSN_USERQUERY_TABLE

e controla bind options/access paths.


💾 PARA QUE SERVE?

Estabilizar performance SQL.

Muito usado para:

  • evitar regressão,

  • preservar access path.


💥 CENÁRIO REAL

Após upgrade DB2:

  • SQL ficou pior.

DBA usa:

BIND QUERY

para manter plano antigo.


🔥 BIND SERVICE

“Criando REST Services no DB2”

Tradução

Cria package representando REST Service DB2.


💾 IMPORTÂNCIA MODERNA

Permite:

  • APIs REST,

  • integração cloud,

  • microservices,

  • mobile.


🧪 EXEMPLO

BIND SERVICE(MYREST)

🔥 DCLGEN

“O gerador mágico de estruturas COBOL”

Tradução

Produz:

  • DECLARE TABLE SQL,

  • estrutura COBOL/PL1/C.


💾 O QUE ELE GERA?

Exemplo:

01 CLIENTE.
   05 CLI-ID       PIC S9(9) COMP.
   05 CLI-NOME     PIC X(30).

🧪 LABORATÓRIO 4 — DCLGEN

Passo 1

DSN SYSTEM(DB9G)

Passo 2

DCLGEN TABLE(CLIENTES)
       LIBRARY('USER.COPYLIB')
       ACTION(REPLACE)

🚀 RESULTADO

DB2 gera:

  • copybook COBOL,

  • DECLARE TABLE.


🔥 FREE PACKAGE

“Apagando packages antigos”

Tradução

Remove:

  • versões específicas,

  • collections inteiras,

  • packages antigos.


🧪 EXEMPLO

FREE PACKAGE(MYCOLL.PROG1)

🚨 CUIDADO

Se apagar package em produção:

SQLCODE -805

🔥 FREE PLAN

“Removendo plans”

Tradução

Apaga application plans do DB2.


🧪 EXEMPLO

FREE PLAN(PLANOLD)

🚨 IMPACTO

Aplicações associadas:

  • param imediatamente.


🔥 REBIND PACKAGE

“Reotimizando SQL sem recompilar”

Tradução

Rebind package após mudanças que afetam package sem alterar SQL.


💾 PARA QUE SERVE?

Muito usado após:

  • RUNSTATS,

  • upgrade DB2,

  • mudança índice,

  • tuning.


🧪 LABORATÓRIO 5 — REBIND PACKAGE

Passo 1

REBIND PACKAGE(MYCOLL.PROG1)

🚀 RESULTADO

DB2:

  • recalcula access path,

  • reotimiza SQL.


🚨 PERIGO

Às vezes:

  • performance piora 😄


🔥 REBIND PLAN

“Atualizando plans sem recriar”

Tradução

Rebind application plan após alterações atributos.


🧪 EXEMPLO

REBIND PLAN(PLAN1)

🔥 RUN

“Executando programa DB2”

Tradução

Executa aplicação contendo SQL.


🧪 LABORATÓRIO 6 — RUN COBOL DB2

Passo 1

DSN SYSTEM(DB9G)

Passo 2

RUN PROGRAM(PROGCOB)
    PLAN(PLAN1)
    LIB('USER.LOADLIB')

🚀 RESULTADO

Programa COBOL executado sob DB2.


🔥 SPUFI

“O SQL interativo clássico do Mainframe”

Tradução

Executa SQL usando entrada arquivo.


💾 O QUE É SPUFI?

SQL Processor Using File Input.

Ferramenta clássica DB2.


🧪 LABORATÓRIO 7 — SPUFI

Passo 1

Entrar no DB2I.


Passo 2

Selecionar:

SPUFI

Passo 3

Executar:

SELECT *
FROM SYSIBM.SYSTABLES
FETCH FIRST 10 ROWS ONLY;

🚀 RESULTADO

DB2 retorna linhas SQL.


🔥 O QUE SEPARA O PROGRAMADOR COBOL DO ESPECIALISTA DB2?

O iniciante:

  • escreve SQL.

O especialista:

  • entende:

    • BIND,

    • PLAN,

    • PACKAGE,

    • REBIND,

    • RUN,

    • DCLGEN,

    • access path,

    • runtime DB2.


💣 A GRANDE VERDADE DO DB2

O SQL é apenas:

a superfície.

O verdadeiro motor do DB2 vive:

  • nos packages,

  • nos plans,

  • nos binds,

  • nos traces,

  • no optimizer,

  • no runtime DSN.

E entender os subcomandos DSN é praticamente:

aprender a conversar diretamente com o coração do DB2 no IBM Z 💾🔥


sexta-feira, 3 de outubro de 2025

☕💾 Laboratório Prático 03 — Comandos DISPLAY no DB2 z/OS 💾☕

 

Bellacosa Mainframe Laboratorio pratico Db2

☕💾 Laboratório Prático 03 — Comandos DISPLAY no DB2 z/OS 💾☕

🎯 Objetivo do Laboratório

Aprender na prática como utilizar os principais comandos DISPLAY do DB2 para:

  • Monitoramento
  • Troubleshooting
  • Verificação de objetos
  • Consulta de threads
  • Acompanhamento de utilities
  • Diagnóstico básico de ambiente

📘 Cenário

Você é um Sysprog Júnior responsável por acompanhar o ambiente DB2 DB2P.

Usuários reclamam que:

  • aplicações estão lentas,
  • alguns objetos parecem indisponíveis,
  • e existe suspeita de utility em execução.

Seu trabalho será investigar usando comandos DISPLAY.


🧪 LAB 1 — Verificando Status de Database

Objetivo

Consultar o status de um database.

Comando

-DISPLAY DATABASE(DBTEST)

Exemplo de Saída

DSNT360I  -DB2P DISPLAY DATABASE SUMMARY

DATABASE = DBTEST
STATUS = RW

Perguntas

1) O que significa STATUS = RW?

A) Read Wrong
B) Read/Write
C) Recovery Waiting
D) Restart Work

✅ Resposta: B


Explicação

RW significa que o objeto está:

  • disponível,
  • online,
  • aceitando leitura e gravação.

🧪 LAB 2 — Verificando Tablespaces

Comando

-DISPLAY DATABASE(DBTEST) SPACENAM(*)

Saída Simulada

SPACENAM = TSCLI001
STATUS = RW

SPACENAM = TSCLI002
STATUS = STOP

Exercício

Qual tablespace apresenta problema?

✅ Resposta:
TSCLI002


Explicação

Status STOP indica objeto indisponível.

Possíveis causas:

  • utility ativa,
  • problema operacional,
  • recover pendente,
  • intervenção administrativa.

🧪 LAB 3 — Verificando Threads Ativas

Objetivo

Identificar aplicações conectadas.

Comando

-DISPLAY THREAD(*)

Saída Simulada

THREAD INFO

AUTHID = APPUSER
PLAN = DSNACLI
STATUS = ACTIVE

Perguntas

1) Quem está conectado?

✅ APPUSER


2) Qual PLAN está sendo utilizado?

✅ DSNACLI


3) O que significa STATUS ACTIVE?

A) Thread executando
B) Thread cancelada
C) DB2 parado
D) Utility ativa

✅ Resposta: A


🧪 LAB 4 — Investigando Utilities

Objetivo

Verificar utilities em execução.

Comando

-DISPLAY UTILITY(*)

Saída Simulada

UTILITY = REORG
STATUS = ACTIVE
DBNAME = DBTEST

Exercício

Qual utility está rodando?

✅ REORG


Pergunta

Qual possível impacto?

A) Nenhum
B) Pode haver lock ou degradação de performance
C) Reinício do z/OS
D) Exclusão automática de tabelas

✅ Resposta: B


🧪 LAB 5 — Verificando Bufferpools

Comando

-DISPLAY BUFFERPOOL(BP0)

Saída Simulada

BUFFERPOOL BP0
VPSEQT = 80
STATUS = ACTIVE

Exercício

O bufferpool está ativo?

✅ Sim


Explicação

O comando ajuda:

  • monitoramento,
  • análise de cache,
  • troubleshooting de performance.

🧪 LAB 6 — Verificando Logs

Comando

-DISPLAY LOG

Saída Simulada

CURRENT ACTIVE LOG DATA SET
COPY1 = DSNDB2.LOGCOPY1.DS01
COPY2 = DSNDB2.LOGCOPY2.DS01

Exercício

O DB2 utiliza quantas cópias de log ativo?

✅ 2 cópias


Explicação

O DB2 mantém redundância para recuperação e segurança.


🧪 LAB 7 — Troubleshooting Real

Cenário

Usuários reportam lentidão extrema.

Você executa:

-DISPLAY THREAD(*)

Resultado

AUTHID = BATCH01
STATUS = ACTIVE
TIME = 99999

Perguntas

1) O que pode indicar TIME muito alto?

A) Thread presa ou longa execução
B) DB2 desligado
C) Falha RACF
D) Problema JES2

✅ Resposta: A


2) Qual comando poderia ser usado em emergência?

-CANCEL THREAD(...)

✅ Correto


☕💀 DESAFIO FINAL — O Erro Clássico 💀☕

Cenário

Um operador executou:

-STOP DATABASE(DBTEST)

em produção sem validar impacto.


Pergunta

O que pode acontecer?

A) Nada
B) Aplicações ficam indisponíveis
C) Apenas SPUFI para
D) O DB2 corrige sozinho

✅ Resposta: B 😅


📘 Resumo dos Principais DISPLAY

ComandoFunção
DISPLAY DATABASEStatus de databases
DISPLAY THREADThreads/conexões
DISPLAY UTILITYUtilities ativas
DISPLAY BUFFERPOOLStatus de bufferpool
DISPLAY LOGInformações de log
DISPLAY GROUPData sharing
DISPLAY LOCATIONConexões distribuídas

☕🔥 Dica Bellacosa Mainframe 🔥☕

Sysprog experiente NÃO sai cancelando thread ou dando STOP em produção sem:

  • investigar,
  • validar impacto,
  • verificar utilities,
  • e entender quem está conectado.

No Mainframe…
“um DISPLAY bem feito evita um incidente gigantesco.” ☕💾

quarta-feira, 1 de outubro de 2025

☕💾 LAB 1 — Laboratório Prático DB2 para Iniciantes 💾☕

 

Bellacosa Mainframe Laboratorio Pratico Db2

☕💾 LAB 1 — Laboratório Prático DB2 para Iniciantes 💾☕

🎯 Objetivo do Laboratório

Neste laboratório o aluno irá aprender:

  • Entrar no ambiente TSO
  • Entender o conceito de Address Space
  • Acessar o SPUFI
  • Configurar o SPUFI
  • Executar os primeiros comandos SQL no DB2

📘 Parte 1 — Entrando no TSO

Objetivo

Acessar o ambiente z/OS.


Passos

1) Entrar no emulador 3270

Exemplo:

  • IBM Personal Communications
  • x3270
  • Rocket BlueZone

2) Informar usuário e senha

LOGON APPLID(TSO)

3) Após login, acessar ISPF

Digite:

ISPF

📘 Parte 2 — Entendendo Address Space

Conceito

No z/OS, cada sistema ou aplicação roda em um espaço de memória chamado:

✅ Address Space

Exemplos:

  • DB2
  • CICS
  • JES2
  • TSO User

Exercício

Pergunta:

O DB2 possui seu próprio Address Space?

✅ Resposta:
Sim.


Curiosidade ☕

O DB2 pode possuir:

  • MSTR
  • DBM1
  • IRLM
  • DIST

Cada um com funções específicas.


📘 Parte 3 — Entrando no SPUFI

Objetivo

Executar SQL interativamente.


Caminho clássico

Dentro do ISPF:

DB2I

ou:

DSN SYSTEM(DB2P)

Menu típico

SPUFI ===> 1

📘 Parte 4 — Configurando o SPUFI

Objetivo

Criar dataset de entrada e saída SQL.


Input Dataset

Exemplo:

USERID.SPufi.INPUT

Output Dataset

Exemplo:

USERID.SPUFI.OUTPUT

Exercício

O dataset INPUT contém:

A) Resultado SQL
B) JCL
C) Comandos SQL
D) Logs JES2

✅ Resposta: C


📘 Parte 5 — Primeiro SELECT

Objetivo

Consultar dados no DB2.


SQL

Digite no dataset INPUT:

SELECT * 
FROM SYSIBM.SYSDUMMY1;

Executar

Pressione:

ENTER

e depois:

PF3

Resultado Esperado

1
-
X

Explicação

SYSIBM.SYSDUMMY1
é uma tabela especial usada para testes simples.


📘 Parte 6 — Primeiro CREATE TABLE

Objetivo

Criar tabela simples.


SQL

CREATE TABLE LAB.CLIENTES
(
ID INTEGER,
NOME VARCHAR(30)
);

Resultado Esperado

SQLCODE = 0

Pergunta

O que significa SQLCODE = 0?

A) Warning
B) Erro grave
C) Execução com sucesso
D) Deadlock

✅ Resposta: C


📘 Parte 7 — Inserindo Dados

SQL

INSERT INTO LAB.CLIENTES
VALUES (1,'BELLACOSA');

Verificando

SELECT * FROM LAB.CLIENTES;

Resultado Esperado

ID   NOME
-- ----------
1 BELLACOSA

📘 Parte 8 — Atualizando Dados

SQL

UPDATE LAB.CLIENTES
SET NOME = 'MAINFRAME'
WHERE ID = 1;

Conferindo

SELECT * FROM LAB.CLIENTES;

Resultado

1   MAINFRAME

📘 Parte 9 — DELETE

SQL

DELETE FROM LAB.CLIENTES
WHERE ID = 1;

Conferindo

SELECT * FROM LAB.CLIENTES;

Resultado

0 ROWS FOUND

☕💀 DESAFIO FINAL — O Erro Clássico 💀☕

O que acontece se executar:

DELETE FROM LAB.CLIENTES;

sem WHERE?

A) Apenas 1 linha removida
B) Nada acontece
C) Todas as linhas são apagadas
D) O SPUFI trava automaticamente

✅ Resposta: C 😱


📘 Parte 10 — Encerrando

Removendo tabela

DROP TABLE LAB.CLIENTES;

📊 Resumo do Laboratório

TemaAprendido
TSOLogin e ISPF
Address SpaceConceito básico
SPUFIExecução SQL
SELECTConsulta
INSERTInclusão
UPDATEAlteração
DELETERemoção
DROPExclusão de objeto

☕🔥 Dica Bellacosa Mainframe 🔥☕

Quem domina:

  • SPUFI,
  • SQL básico,
  • DISPLAY,
  • e entende Address Space…

já começou oficialmente sua jornada no mundo DB2 Mainframe. ☕💾🔥