Translate

quarta-feira, 29 de julho de 2020

🔥☕ LABORATÓRIO DB2 UTILITIES z/OS — 20 INCIDENTES REAIS DE PRODUÇÃO ☕🔥

Bellacosa Mainframe apresenta Laboratorio de incidentes no Db2


🔥☕ LABORATÓRIO DB2 UTILITIES z/OS — 20 INCIDENTES REAIS DE PRODUÇÃO ☕🔥

“Quando o DBA entra na sala de máquinas do mainframe”

Este laboratório é baseado no menu DB2 UTILITIES da sua tela:

  • REBUILD
  • COPY
  • RECOVER
  • REORG
  • RUNSTATS
  • LOAD
  • CHECK
  • REPAIR
  • UNLOAD
  • QUIESCE

Aqui você vai encontrar:

  • 🚨 problemas reais
  • 🔍 investigação
  • 💣 diagnóstico
  • ✅ solução
  • 🧠 análise operacional

🔥 LAB 01 — REBUILD PENDING

🚨 Problema

Aplicação começou a falhar.

SQLCODE:

-904 RESOURCE UNAVAILABLE

🔍 Investigação

-DIS DATABASE(ESCOLA)

💣 Resultado

INDEXSPACE IXALUNO
STATUS RBDP

✅ Solução

Executar:

//STEP1 EXEC DSNUPROC,SYSTEM=DB9G
//SYSIN DD *
REBUILD INDEX(ESCOLA.IXALUNO)
/*

🧠 Explicação

Índice inválido.

O optimizer não consegue utilizá-lo.


🔥 LAB 02 — COPY PENDING

🚨 Problema

INSERT falhando após LOAD.


🔍 Investigação

-DIS DATABASE(FINANCE)

💣 Resultado

COPY PENDING

✅ Solução

COPY TABLESPACE FINANCE.CLIENTE

🧠 Explicação

Objeto exige backup válido.


🔥 LAB 03 — SQL MUITO LENTO

🚨 Problema

Queries demorando minutos.


🔍 Investigação

RUNSTATS não executa há meses.


💣 Diagnóstico

Optimizer usando access path ruim.


✅ Solução

RUNSTATS TABLESPACE FINANCE.CLIENTE

🧠 Explicação

Sem estatísticas atualizadas:

  • DB2 escolhe índices ruins
  • pode fazer full tablescan

🔥 LAB 04 — TABELA FRAGMENTADA

🚨 Problema

I/O elevadíssimo.


🔍 Investigação

AREO*

💣 Diagnóstico

Fragmentação pesada.


✅ Solução

REORG TABLESPACE FINANCE.CLIENTE

🧠 Explicação

Páginas desorganizadas.


🔥 LAB 05 — LOAD QUEBROU ÍNDICES

🚨 Problema

Após LOAD REPLACE:

  • índices sumiram
  • SQL lento

🔍 Investigação

RBDP

✅ Solução

REBUILD INDEX

🧠 Explicação

LOAD REPLACE invalida índices.


🔥 LAB 06 — UTILITY PRESA

🚨 Problema

REORG nunca termina.


🔍 Investigação

-DIS UTIL(*)

💣 Resultado

Utility em WAIT.


✅ Solução

-TERM UTIL(REORG01)

🧠 Explicação

Utility aguardando drain/lock.


🔥 LAB 07 — RECOVER NECESSÁRIO

🚨 Problema

Disco falhou.


🔍 Investigação

Objeto inacessível.


✅ Solução

RECOVER TABLESPACE FINANCE.CLIENTE

🧠 Explicação

Restauração via image copy + logs.


🔥 LAB 08 — INDEX CORROMPIDO

🚨 Problema

Abends em SQL.


🔍 Investigação

CHECK INDEX INDEXSPACE IXCLI01

💣 Resultado

Corrupção detectada.


✅ Solução

REBUILD INDEX

🧠 Explicação

Estrutura B-tree inconsistente.


🔥 LAB 09 — ORPHAN ROWS

🚨 Problema

Violação referencial.


🔍 Investigação

CHECK DATA TABLESPACE FINANCE.CLIENTE

💣 Resultado

Orphan rows encontradas.


✅ Solução

Corrigir dados.

Executar CHECK novamente.


🧠 Explicação

Foreign key inconsistente.


🔥 LAB 10 — BUFFERPOOL EXPLODINDO

🚨 Problema

REORG causando pressão memória.


🔍 Investigação

-DIS BUFFERPOOL(*)

💣 Resultado

Page stealing elevado.


✅ Solução

  • aumentar BP
  • reduzir concorrência utilities

🧠 Explicação

REORG consome memória intensamente.


🔥 LAB 11 — LOG FULL

🚨 Problema

Batch travado.


🔍 Investigação

-DIS LOG

💣 Resultado

Logs quase esgotados.


✅ Solução

  • aumentar commits
  • acelerar archive
  • reduzir transações longas

🧠 Explicação

LOAD/REORG podem gerar muito log.


🔥 LAB 12 — UNLOAD GIGANTE

🚨 Problema

Necessidade de exportar bilhões de linhas.


✅ Solução

UNLOAD TABLESPACE BIGDB.TRANSAC

🧠 Explicação

UNLOAD é muito mais rápido que SELECT tradicional.


🔥 LAB 13 — REORG BLOQUEANDO ONLINE

🚨 Problema

Usuários reclamam indisponibilidade.


🔍 Investigação

REORG executado SHRLEVEL NONE.


✅ Solução

REORG SHRLEVEL CHANGE

🧠 Explicação

Permite acesso concorrente.


🔥 LAB 14 — QUIESCE ANTES DE DEPLOY

🚨 Problema

Necessidade de rollback seguro.


✅ Solução

QUIESCE TABLESPACESET FINANCE

🧠 Explicação

Cria ponto consistente recuperação.


🔥 LAB 15 — REPAIR MAL UTILIZADO

🚨 Problema

DBA júnior removeu pendência errada.


💣 Resultado

Objeto inconsistente.


🧠 Explicação

REPAIR ignora validações normais DB2.


🚨 Moral

REPAIR é bisturi nuclear.


🔥 LAB 16 — RUNSTATS ESQUECIDO

🚨 Problema

Plano SQL mudou drasticamente.


🔍 Investigação

Stats desatualizadas.


✅ Solução

RUNSTATS TABLESPACE FINANCE.PEDIDOS

🧠 Explicação

Optimizer “envelheceu”.


🔥 LAB 17 — TEMPLATE ERRADO

🚨 Problema

COPY falhando.


🔍 Investigação

Dataset template inválido.


💣 Resultado

Allocation errors.


✅ Solução

Corrigir TEMPLATE.


🧠 Explicação

Naming padrão incorreto.


🔥 LAB 18 — LISTDEF MAL DEFINIDO

🚨 Problema

REORG atingiu tablespaces errados.


🔍 Investigação

LISTDEF genérico demais.


✅ Solução

Restringir INCLUDE.


🧠 Explicação

Automação perigosa.


🔥 LAB 19 — LOAD MASSIVO SEM SORT

🚨 Problema

LOAD extremamente lento.


🔍 Investigação

Sem SORT adequado.


✅ Solução

Adicionar SORTDEVT/SORTNUM.


🧠 Explicação

LOAD depende muito de sort eficiente.


🔥 LAB 20 — O COLAPSO DA JANELA BATCH

🚨 Problema

Batch noturno explodiu.


🔍 Investigação

Rodando simultaneamente:

  • COPY
  • REORG
  • RUNSTATS
  • LOAD

💣 Resultado

  • lock contention
  • log saturation
  • I/O overload
  • CPU spike

✅ Solução

Separar scheduling utilities.


🧠 Explicação

Utilities competem brutalmente por:

  • disco
  • bufferpool
  • log
  • CPU

🔥 DESAFIO EXTRA — COMANDOS PARA TREINAR

Ver utilities

-DIS UTIL(*)

Terminar utility

-TERM UTIL(utilid)

Ver status objetos

-DIS DATABASE(DB1)

Ver logs

-DIS LOG

🔥 EXERCÍCIO AVANÇADO

Monte um fluxo completo:

COPY
REORG
RUNSTATS
CHECK INDEX
CHECK DATA

E explique:

  • por que essa sequência existe,
  • quais riscos evita,
  • e como impacta performance.

☕ VISÃO “BELLACOSA MAINFRAME”

As DB2 Utilities são os “robôs industriais” do z/OS.

Elas:

  • reconstruem,
  • reorganizam,
  • restauram,
  • limpam,
  • validam,
  • e mantêm vivo o banco mais crítico da empresa.

No mundo distribuído muita gente reinicia serviço.

No mainframe…
o DBA conversa diretamente com os mecanismos internos do banco. ☕💣


Sem comentários:

Enviar um comentário