Translate

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

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.” ☕💾

quinta-feira, 2 de outubro de 2025

☕💾 LAB 2 — DB2 Teoria & Prática para Sysprog Júnior 💾☕

 

Bellacosa Mainframe coloca o aluno a prova num lab db2

☕💾 LAB 2 — DB2 Teoria & Prática para Sysprog Júnior 💾☕

🎯 Objetivo do Laboratório

Neste laboratório o aluno irá aprender na prática:

  • Catálogo e Diretório DB2
  • Recovery e LOG
  • Bufferpool
  • EDM Pool
  • Processamento interno DB2
  • Address Spaces
  • Troubleshooting básico

📘 Parte 1 — Conhecendo o Catálogo DB2

O que é?

O catálogo DB2 contém:

  • definições de tabelas,
  • índices,
  • packages,
  • plans,
  • objetos do ambiente.

Objetivo Prático

Consultar informações do catálogo.


SQL

SELECT NAME, CREATOR
FROM SYSIBM.SYSTABLES
FETCH FIRST 10 ROWS ONLY;

Resultado Esperado

NAME        CREATOR
----------- --------
SYSTABLES SYSIBM
SYSCOLUMNS SYSIBM
SYSINDEXES SYSIBM

Exercício

Quem criou as tabelas acima?

✅ SYSIBM


Explicação

O schema SYSIBM contém objetos internos fundamentais do DB2.


📘 Parte 2 — Entendendo o Diretório DB2

Conceito

O Directory DB2 armazena:

  • objetos internos,
  • controle operacional,
  • informações críticas do subsistema.

Pergunta

Qual database representa o Directory?

A) DSNDB06
B) DSNDB01
C) SYSUTIL
D) DSNCAT

✅ Resposta: B


Curiosidade ☕

DatabaseFunção
DSNDB01Directory
DSNDB06Catalog

📘 Parte 3 — Recovery e LOG

Objetivo

Visualizar informações de LOG.


Comando

-DISPLAY LOG

Resultado Simulado

CURRENT ACTIVE LOG DATA SET
COPY1 ACTIVE
COPY2 ACTIVE

Exercício

Quantas cópias de log estão ativas?

✅ 2


Explicação

O DB2 usa redundância para:

  • recovery,
  • rollback,
  • restart,
  • auditoria.

📘 Parte 4 — Simulando Recovery

Cenário

Uma tabela foi apagada acidentalmente.


Pergunta

Qual utilitário pode recuperar o objeto?

A) REORG
B) RECOVER
C) RUNSTATS
D) LOAD

✅ Resposta: B


Exemplo de Utility

//STEP1 EXEC PGM=DSNUTILB
//SYSIN DD *
RECOVER TABLESPACE DBTEST.TSCLI001
/*

📘 Parte 5 — Investigando Bufferpool

Objetivo

Consultar bufferpool.


Comando

-DISPLAY BUFFERPOOL(BP0)

Resultado Simulado

BUFFERPOOL NAME BP0
STATUS ACTIVE
VPSEQT 80

Exercício

O bufferpool está ativo?

✅ Sim


Pergunta

O bufferpool serve para:

A) Armazenar JCL
B) Cache de páginas DB2
C) Compilar COBOL
D) Gerar logs

✅ Resposta: B


📘 Parte 6 — EDM Pool

Conceito

EDM Pool armazena:

  • packages,
  • plans,
  • estruturas SQL em memória.

Pergunta

Problemas no EDM Pool podem causar:

A) SQL lento
B) Falha JES2
C) IPL automático
D) VTAM DOWN

✅ Resposta: A


📘 Parte 7 — Processamento DB2

Fluxo Simplificado

Aplicação → SQL → DB2 → Bufferpool → Disco

Explicação

O DB2 tenta acessar primeiro:
✅ memória (bufferpool)

Depois:
✅ disco físico


Exercício

Qual acesso é mais rápido?

A) Disco
B) Bufferpool

✅ Resposta: B


📘 Parte 8 — Address Spaces DB2

Objetivo

Conhecer os principais Address Spaces.


Principais

Address SpaceFunção
MSTRControle principal
DBM1Gerenciamento banco
IRLMLocks
DISTConexões distribuídas

Pergunta

Qual Address Space controla locks?

A) DIST
B) DBM1
C) IRLM
D) MSTR

✅ Resposta: C


📘 Parte 9 — Troubleshooting Real

Cenário

Usuários reclamam de lentidão.

Você executa:

-DISPLAY THREAD(*)

Resultado

THREAD STATUS = ACTIVE
TIME = 99999
AUTHID = BATCH01

Exercício

O que pode estar acontecendo?

A) Batch longo/travado
B) JES2 parado
C) IPL pendente
D) VTAM indisponível

✅ Resposta: A


Próximo Passo

Investigar:

  • SQL executado,
  • locks,
  • utilities,
  • CPU,
  • I/O.

📘 Parte 10 — Determination Problem

Cenário

Aplicação travou.

Você suspeita:

  • deadlock,
  • lock,
  • utility,
  • objeto parado.

Sequência de investigação

1) Verificar objeto

-DISPLAY DATABASE(DBTEST)

2) Verificar threads

-DISPLAY THREAD(*)

3) Verificar utility

-DISPLAY UTILITY(*)

4) Verificar logs

-DISPLAY LOG

☕💀 DESAFIO FINAL — O Caçador de Problemas 💀☕

Cenário

Objeto aparece:

STATUS = STOPPED

Pergunta

Qual pode ser a causa?

A) Utility ativa
B) Recovery pendente
C) Intervenção operacional
D) Todas as anteriores

✅ Resposta: D 😅


📊 Resumo Final

TemaConceito
CatalogMetadados
DirectoryControle interno
LOGRecovery
BufferpoolCache
EDM PoolSQL em memória
Address SpaceEstrutura DB2
DISPLAYDiagnóstico

☕🔥 Dica Bellacosa Mainframe 🔥☕

Sysprog júnior que aprende:

  • DISPLAY,
  • recovery,
  • bufferpool,
  • catálogo,
  • address spaces,

já começa a pensar como um verdadeiro especialista DB2 z/OS. ☕💾🔥

segunda-feira, 28 de setembro de 2020

🔥☕ LABORATÓRIO DB2 z/OS — 20 PROBLEMAS REAIS DE PRODUÇÃO COM SOLUÇÕES ☕🔥

 

Bellacosa Mainframe te coloca a prova no uso do DB2 com labs praticos


🔥☕ LABORATÓRIO DB2 z/OS — 20 PROBLEMAS REAIS DE PRODUÇÃO COM SOLUÇÕES ☕🔥

“O DIA EM QUE O OPERADOR VIROU DETETIVE DO DB2”

Este laboratório foi inspirado no menu DB2 COMMANDS da sua tela SDSF/DB2I.

A ideia aqui é simular:

  • incidentes reais,
  • troubleshooting,
  • crises de produção,
  • panes de batch,
  • locks,
  • bufferpool,
  • utilities,
  • recovery,
  • gargalos,
  • runaway SQL.

Cada cenário possui:

  • 🚨 Problema
  • 🔍 Investigação
  • 💣 Diagnóstico
  • ✅ Solução
  • 🧠 Explicação técnica

🔥 LAB 01 — TABLESPACE PAROU

🚨 Problema

Aplicação CICS começou a falhar:

SQLCODE -904
RESOURCE UNAVAILABLE

🔍 Investigação

-DIS DATABASE(ESCOLA)

💣 Resultado

SPACENAM ALUNOS
STATUS STOP

✅ Solução

-START DATABASE(ESCOLA) SPACENAM(ALUNOS)

🧠 Explicação

O tablespace estava parado.

Pode ocorrer após:

  • utility abortada
  • falha de recovery
  • intervenção operacional

🔥 LAB 02 — LOCK GIGANTE

🚨 Problema

Usuários reclamam:

“Sistema congelou”


🔍 Investigação

-DIS THREAD(*) LOCKS

💣 Resultado

Uma thread batch segurando lock exclusivo.


✅ Solução

-CANCEL THREAD(token)

🧠 Explicação

A thread travou milhares de registros.

O cancel provoca rollback.


🔥 LAB 03 — BUFFERPOOL SATURADO

🚨 Problema

DB2 lento.

Muito I/O.


🔍 Investigação

-DIS BUFFERPOOL(BP0) DETAIL

💣 Resultado

HIT RATIO = 62%

✅ Solução

Aumentar VPSIZE.


🧠 Explicação

Cache pequeno.

DB2 lendo disco excessivamente.


🔥 LAB 04 — REORG PENDENTE

🚨 Problema

Performance degradada.


🔍 Investigação

-DIS DATABASE(FINANCE)

💣 Resultado

AREO*

✅ Solução

Executar REORG.


🧠 Explicação

Tabela fragmentada.

DB2 recomenda reorganização.


🔥 LAB 05 — COPY PENDING

🚨 Problema

INSERT falhando.


🔍 Investigação

-DIS DATABASE(PAGTO)

💣 Resultado

COPY PENDING

✅ Solução

Executar COPY utility.


🧠 Explicação

Objeto precisa backup válido.


🔥 LAB 06 — REBUILD PENDING

🚨 Problema

Índice corrompido.


🔍 Investigação

-DIS DATABASE(CLIENTE)

💣 Resultado

REBUILD PENDING

✅ Solução

REBUILD INDEX

🧠 Explicação

Indexspace precisa reconstrução.


🔥 LAB 07 — UTILITY TRAVADA

🚨 Problema

REORG nunca termina.


🔍 Investigação

-DIS UTIL(*)

💣 Resultado

Utility em WAIT.


✅ Solução

-TERM UTIL(utilid)

Reexecutar utility.


🧠 Explicação

Utility ficou presa aguardando recurso.


🔥 LAB 08 — LOG QUASE CHEIO

🚨 Problema

DB2 emitindo alertas.


🔍 Investigação

-DIS LOG

💣 Resultado

Active logs quase esgotados.


✅ Solução

  • aumentar logs
  • acelerar archive
  • reduzir commits longos

🧠 Explicação

Transações segurando log excessivamente.


🔥 LAB 09 — THREAD ZUMBI

🚨 Problema

Sessões antigas nunca encerram.


🔍 Investigação

-DIS THREAD(*) TYPE(INACTIVE)

💣 Resultado

Centenas de conexões JDBC abandonadas.


✅ Solução

Cancelar threads.

Ajustar timeout DDF.


🧠 Explicação

Pooling mal configurado.


🔥 LAB 10 — DDF FORA

🚨 Problema

Aplicações distribuídas não conectam.


🔍 Investigação

-DIS DDF

💣 Resultado

DDF STOPPED

✅ Solução

-START DDF

🧠 Explicação

DRDA estava parado.


🔥 LAB 11 — DEADLOCK

🚨 Problema

SQLCODE -911.


🔍 Investigação

-DIS THREAD(*) LOCKS

💣 Resultado

Duas aplicações disputando recursos.


✅ Solução

Identificar offender.

Cancelar thread problemática.


🧠 Explicação

Deadlock clássico de concorrência.


🔥 LAB 12 — RUNAWAY SQL

🚨 Problema

CPU do LPAR explodiu.


🔍 Investigação

-DIS THREAD(*) SERVICE(WAIT)

💣 Resultado

SELECT sem índice.


✅ Solução

Cancelar thread.

Criar índice.


🧠 Explicação

Full tablescan monstruoso.


🔥 LAB 13 — CLAIMERS SEGURANDO OBJETO

🚨 Problema

REORG não inicia.


🔍 Investigação

-DIS DATABASE(DB1) CLAIMERS

💣 Resultado

Aplicações usando objeto.


✅ Solução

Encerrar aplicações.


🧠 Explicação

Claims impedem drains.


🔥 LAB 14 — BUFFERPOOL ERRADO

🚨 Problema

Objeto crítico lento.


🔍 Investigação

-DIS BUFFERPOOL(*)

💣 Resultado

Objeto em BP inadequado.


✅ Solução

Mover para bufferpool maior.


🧠 Explicação

Pool incompatível com workload.


🔥 LAB 15 — MASSIVE ARCHIVE

🚨 Problema

Milhares de archive logs.


🔍 Investigação

-DIS ARCHIVE

💣 Resultado

Archive atrasado.


✅ Solução

Verificar HSM/tape/storage.


🧠 Explicação

Offload congestionado.


🔥 LAB 16 — START READ ONLY

🚨 Problema

Necessidade de manutenção.


✅ Solução

-START DATABASE(FINANCE) ACCESS(RO)

🧠 Explicação

Permite leitura sem updates.


🔥 LAB 17 — INDEX INDISPONÍVEL

🚨 Problema

Queries lentas.


🔍 Investigação

-DIS DATABASE(DB2PRD)

💣 Resultado

Indexspace STOPPED.


✅ Solução

-START DATABASE(DB2PRD)

🧠 Explicação

Optimizer perdeu acesso ao índice.


🔥 LAB 18 — UTILITIES CONCORRENTES

🚨 Problema

COPY e REORG competindo.


🔍 Investigação

-DIS UTIL(*)

💣 Resultado

Conflito operacional.


✅ Solução

Replanejar janela batch.


🧠 Explicação

Utilities disputam recursos físicos.


🔥 LAB 19 — DB2 EM RECOVER

🚨 Problema

Objeto indisponível.


🔍 Investigação

-DIS DATABASE(SEGURADORA)

💣 Resultado

STATUS RECOVER

✅ Solução

Executar RECOVER utility.


🧠 Explicação

Objeto inconsistente.


🔥 LAB 20 — O “FANTASMA” DO MAINFRAME

🚨 Problema

Sistema lento apenas à noite.


🔍 Investigação

-DIS THREAD(*)
-DIS UTIL(*)
-DIS LOG
-DIS BUFFERPOOL(*)

💣 Resultado

Batch gigantesco executando RUNSTATS + REORG + COPY simultaneamente.


✅ Solução

Separar janela batch.

Priorizar workloads.


🧠 Explicação

Concorrência destrutiva:

  • I/O
  • CPU
  • log
  • bufferpool
  • locks

🔥 DESAFIO EXTRA — COMANDOS PARA TREINAR

Diagnóstico rápido

-DIS THREAD(*)
-DIS UTIL(*)
-DIS LOG
-DIS BUFFERPOOL(*)
-DIS DATABASE(*)

Administração

-START DATABASE(DB1)
-STOP DATABASE(DB1)

Emergência

-CANCEL THREAD(token)
-TERM UTIL(utilid)

☕ O QUE ESSE LAB ENSINA

Esse tipo de troubleshooting desenvolve:

  • visão operacional
  • raciocínio rápido
  • análise de sintomas
  • entendimento interno do DB2
  • troubleshooting de produção
  • mentalidade de DBA z/OS

🔥 FRASE FINAL DO LAB

“No mundo distribuído você abre dashboards.
No mainframe você conversa diretamente com o coração do banco.” ☕💣