Translate

Mostrar mensagens com a etiqueta edm pool. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta edm pool. Mostrar todas as mensagens

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

quarta-feira, 11 de março de 2020

🔥☕ DB2 z/OS MAINFRAME — A ANATOMIA DO “CÉREBRO DOS DADOS” ☕🔥

 

Bellacosa Mainframe entenda o funcionamento do DB2

🔥☕ DB2 z/OS MAINFRAME — A ANATOMIA DO “CÉREBRO DOS DADOS” ☕🔥

Salve jovem padawan neste laboratorio pratico veremos alguns dos componentes mais profundos e importantes do DB2 z/OS:
Storage Groups, Bufferpools, Logs, Optimizer, EDM Pool, índices B-Tree, Data Sharing, BSDS e arquitetura interna do banco.

Isso já entra no território de:

  • DBA de produção,
  • suporte avançado,
  • performance tuning,
  • recovery,
  • troubleshooting crítico,
  • arquitetura interna do DB2.

O DB2 no z/OS não é apenas um “banco de dados”.

Ele é:

  • sistema transacional,
  • gerenciador de memória,
  • engine de recovery,
  • scheduler interno,
  • coordenador de locking,
  • otimizador SQL,
  • e controlador de integridade transacional.

🔥 1) STORAGE GROUP — O “MAPEAMENTO DO TERRITÓRIO”

🧠 O que é

Storage Group é o agrupamento lógico de volumes DASD usados pelo DB2.


🔍 Função

O DBA não precisa dizer:

  • “grave exatamente no disco XYZ”

O DB2 usa o Storage Group para decidir:

  • onde alocar datasets,
  • como distribuir dados,
  • onde criar VSAM LDS.

🧨 Exemplo

CREATE STOGROUP STGPRD
VOLUMES(PRD001,PRD002)
VCAT(DB2CAT);

🔥 O que ele controla

  • datasets DB2
  • VSAM LDS
  • tablespaces
  • indexspaces
  • crescimento físico

🚨 Problema clássico

Storage Group sem espaço.

Resultado:

  • inserts falham,
  • extents explodem,
  • utilities quebram.

🔥 LAB 01 — STORAGE GROUP LOTADO

🚨 Problema

Aplicação falhando:

SQLCODE -904
RESOURCE UNAVAILABLE

🔍 Investigação

Verificar volumes:

-DIS DB(*) SPACENAM(*)

💣 Diagnóstico

DASD cheio.


✅ Solução

Adicionar volume:

ALTER STOGROUP STGPRD
ADD VOLUMES(PRD003);

🧠 Explicação

O DB2 não conseguia expandir datasets.


🔥 2) TABELAS — O “CORPO FÍSICO” DOS DADOS

🧠 Estrutura lógica

Tabela:

  • colunas
  • linhas
  • constraints
  • índices

Mas internamente:

  • pages
  • RID
  • slots
  • overflow pages

🧨 Exemplo

CREATE TABLE ALUNOS
(
ID INTEGER,
NOME CHAR(40),
CURSO CHAR(20)
);

🔥 Tipos de tabelas

TipoUso
Segmentedtradicional
Partitionedgrandes volumes
Universalmoderno
Temporarytemporárias
Clonedeploy online

🚨 Problema clássico

Tabela enorme sem particionamento.

Resultado:

  • REORG gigantesco,
  • recovery lento,
  • scans monstruosos.

🔥 LAB 02 — TABELA GIGANTE

🚨 Problema

Tabela com 4 bilhões de linhas.

REORG demora 18 horas.


✅ Solução

Migrar para partitioned tablespace.


🧠 Explicação

Particionamento divide carga física.


🔥 3) ÍNDICES — O GPS DO DB2

🧠 O que fazem

Índices evitam full scan.


🔥 Estrutura B-Tree

Seu material menciona:

B-Tree : Índice – Arvore Binaria


🧠 Como funciona

A árvore possui:

  • root page
  • branch pages
  • leaf pages

🔍 O DB2 percorre:

ROOT → BRANCH → LEAF → ROW

🚨 Sem índice

O DB2 lê:

  • milhões de páginas.

🧨 Exemplo

CREATE INDEX IXALUNO
ON ALUNOS(ID);

🔥 LAB 03 — SQL MATANDO CPU

🚨 Problema

SELECT demorando minutos.


🔍 Investigação

EXPLAIN mostra:

TABLESPACE SCAN

✅ Solução

Criar índice:

CREATE INDEX IXCPF
ON CLIENTE(CPF);

🧠 Explicação

DB2 deixou de varrer tabela inteira.


🔥 4) CATALOGO DB2 — O “DNA” DO BANCO

Seu material aborda:

Catalogo
Metadados


🧠 O que é

O catálogo guarda:

  • definição tabelas
  • índices
  • colunas
  • privileges
  • packages
  • plans

🔍 Tabelas famosas

TabelaFunção
SYSIBM.SYSTABLEStabelas
SYSIBM.SYSCOLUMNScolunas
SYSIBM.SYSINDEXESíndices
SYSIBM.SYSPACKAGEpackages

🧨 Exemplo

SELECT NAME
FROM SYSIBM.SYSTABLES
WHERE CREATOR='ESCOLA';

🔥 LAB 04 — DESCOBRIR ÍNDICES

🚨 Problema

Ninguém sabe quais índices existem.


✅ Solução

SELECT NAME
FROM SYSIBM.SYSINDEXES
WHERE TBNAME='CLIENTE';

🧠 Explicação

Catálogo é o “Google interno” do DB2.


🔥 5) LOG — A “CAIXA PRETA” DO DB2

Seu material aborda:

Active LOG
Archive LOG
BSDS


🧠 O que é o LOG

Tudo que muda no DB2 vai para log.


🔥 Serve para

  • rollback
  • recovery
  • restart
  • integridade
  • auditoria

🔥 ACTIVE LOG

Logs atuais em uso.


🔥 ARCHIVE LOG

Logs antigos arquivados.


🔥 BSDS

Bootstrap Dataset.

Contém:

  • inventário logs
  • checkpoints
  • bootstrap recovery

🚨 Se BSDS corrompe…

O DB2 entra em crise séria.


🔥 LAB 05 — LOG FULL

🚨 Problema

Sistema travado.


🔍 Investigação

-DIS LOG

💣 Resultado

Logs esgotados.


✅ Solução

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

🧠 Explicação

Sem log livre o DB2 para updates.


🔥 6) BUFFERPOOL — O “PULMÃO” DO DB2

Seu material aborda:

Bufferpool
Frame Bufferpool


🧠 O que é

Cache de páginas em memória.


🔍 Fluxo

DASD → BUFFERPOOL → CPU

🚨 Bufferpool ruim = muito I/O


🧨 Exemplo

-DIS BUFFERPOOL(BP0)

🔥 LAB 06 — HIT RATIO HORRÍVEL

🚨 Problema

I/O gigantesco.


🔍 Resultado

HIT RATIO 58%

✅ Solução

Aumentar:

ALTER BUFFERPOOL(BP0) VPSIZE(50000)

🧠 Explicação

Mais páginas em cache.


🔥 7) DB2 DATA SHARING — O “CLUSTER” DO MAINFRAME

Seu material mostra:

DB2 DATA SHARING com Group Bufferpools


🧠 O que é

Vários DB2s compartilhando dados simultaneamente.


🔥 Permite

  • alta disponibilidade
  • escalabilidade
  • failover
  • paralelismo

🔍 Componentes

ComponenteFunção
Coupling Facilitysincronização
GBPcache compartilhado
IRLMlocking

🚨 Problema clássico

Contention no GBP.


🔥 LAB 07 — CONTENTION EM DATA SHARING

🚨 Problema

Locks excessivos.


🔍 Investigação

-DIS GROUP

💣 Resultado

GBP saturation.


✅ Solução

Aumentar Group Bufferpool.


🧠 Explicação

Muitos membros acessando mesmas páginas.


🔥 8) OPTIMIZER — O “CÉREBRO” DO SQL

Seu material aborda:

DB2 Optimizer


🧠 O que faz

Decide:

  • índice
  • join
  • scan
  • sort
  • access path

🔥 Sem optimizer

SQL seria inviável.


🔍 Ele analisa:

  • cardinalidade
  • seletividade
  • RUNSTATS
  • índices
  • distribuição dados

🔥 LAB 08 — OPTIMIZER ESCOLHEU MAL

🚨 Problema

SQL piorou após deploy.


🔍 Investigação

Novo access path.


✅ Solução

Executar:

RUNSTATS TABLESPACE FINANCE.CLIENTE

Rebind package.


🧠 Explicação

Stats antigas enganaram optimizer.


🔥 9) EDM POOL — O “CACHE CEREBRAL”

Seu material aborda:

  • EDM POOL
  • Dynamic Cache
  • PT/CT
  • Skeleton Pool
  • DBD


🧠 O que é

Cache interno de:

  • packages
  • plans
  • SQL dinâmico
  • estruturas DBD

🔥 Problema clássico

EDM pequeno.


🚨 Resultado

  • compilação excessiva
  • CPU alta
  • cache thrashing

🔥 LAB 09 — EDM SATURADO

🚨 Problema

CPU do DB2 explodindo.


🔍 Investigação

-DIS DDF

e monitor EDM.


💣 Resultado

Dynamic statement cache lotado.


✅ Solução

Aumentar EDM pool.


🧠 Explicação

SQL dinâmico recompilando continuamente.


🔥 10) BIND E PACKAGE

Seu material cita:

BindProgram


🧠 O que é BIND

Transforma SQL em package executável.


🔥 PACKAGE

Código SQL otimizado armazenado.


🔥 LAB 10 — PACKAGE INVALIDADO

🚨 Problema

Programa falha após alteração tabela.


💣 Resultado

Package inválido.


✅ Solução

REBIND PACKAGE

🧠 Explicação

DDL alterou estrutura dependente.


🔥 LAB EXTRA — INCIDENTE COMPLETO

🚨 Cenário

Sistema financeiro lento.


🔍 Investigação

Descoberto:

  • RUNSTATS vencido
  • bufferpool saturado
  • índice inválido
  • logs pressionados

✅ Solução

Fluxo:

  1. REBUILD INDEX
  2. REORG
  3. RUNSTATS
  4. Ajuste BUFFERPOOL
  5. Revisão commits

🧠 Resultado

CPU caiu:

  • de 92%
  • para 34%

☕ VISÃO “BELLACOSA MAINFRAME”

O DB2 z/OS parece um banco…

Mas internamente ele é:

  • sistema operacional de dados,
  • motor transacional,
  • mecanismo de recuperação,
  • orquestrador de memória,
  • e inteligência analítica.

Quem aprende:

  • logs,
  • bufferpool,
  • optimizer,
  • EDM,
  • utilities,
  • data sharing,

não aprende apenas SQL…

aprende a anatomia do coração digital das grandes corporações. ☕💣