Você está na página 1de 48

Treinamento DB2

Autor: Sebastio Elton Meira

Treinamento DB2
SQL ESTTICO vs. SQL DINMICO
ESTTICO ..................................................... ..................................................... Exec SQL Delete from Dept End-Exec. ..................................................... ..................................................... ..................................................... Instruo SQL Completa Fixo

Estratgia de acesso pr-estabelecida.

Treinamento DB2
DINMICO ..................................................... Var . Instruo SQL fornecida durante a execuo. Execute

..................................................... Exec SQL Estratgia de acesso Immediate : Var pr-estabelecida. End-Exec ..................................................... Delete from Dept

Treinamento DB2
VARIVEL HOST Varivel Host As variveis HOST so utilizadas para permuta de valores entre a linguagem SQL e a linguagem de programao. Uma das possveis utilizaes da varivel HOST a de fornecer um valor a uma instruo AQL, tornando-a assim uma instruo genrica. A referencia varivel HOST deve ser precedida pelo caracter :. Seu uso facultativo mas recomenda-se sua utilizao para evitar possibilidade de confuso. O uso da varivel HOST opcional. Seu uso obrigatrio somente para as instrues SELECT. A varivel HOST deve ser compatvel com a coluna quanto ao seu data type e ao seu tamanho.

Treinamento DB2
As variveis HOST no devem ser utilizadas para referenciar nomes de tabelas ou de colunas. Exemplo de Variveis HOST: EXEC SQL INSERT INTO EMPR (MATR, SOBRENOME) VALUES ( :MATR, :SNOME ) END-EXEC EXEC SQL UPDATE EMPR SET SALARIO = SALARIO * :PERCENT WHERE CARGO = :CARGO END-EXEC

Treinamento DB2
PROCESSAMENTO DE MLTIPLAS LINHAS Processamento de Mltiplas Linhas

SELECT MATR SOBRENOME 30 SILVA 290 SANTOS 300 ALMEIDA

OPEN

MATR SOBRENOME

FETCH

30 SILVA
290 SANTOS 300 ALMEIDA

MATR SOBRENOME 30 SILVA

FETCH

290 SANTOS
300 ALMEIDA

Treinamento DB2
Select com Fetch
Definio de um CURSOR EXEC SQL DECALRE CUR001 CURSOR FOR SELECT MATR, SOBRENOME FROM EMPR WHERE DEPT = :DEPT END-EXEC Abrindo um CURSOR previamente definido. EXEC SQL OPEN CUR001 FETCH das linhas resultantes EXEC SQL FETCH CUR001 INTO :MATR, :SNOM END-EXEC Fechando o CURSOR quando terminar a leitura dos dados. EXEC SQL CLOSE CUR001 END-EXEC END-EXEC

Treinamento DB2
CommitROLLBACK COMMIT / / Rollback
COMMIT Indica trmino bem sucedido de uma unidade de trabalho Alterao dos dados sero gravadas. Todas os PAGE LOCKS sero liberados CURSOR fechado, exceto para CURSOR WITH HOLD ROLLBACK Unidade de trabalho corrente abandonado Atualizao dos dados desde o ltimo COMMIT so desfeitas Todos os PAGE LOCKS so liberados CURSOR fechado

Treinamento DB2
CDIGO FONTE SQL PR-COMPILAO CDIGO FONTE MODIFICADO COMPILAO MDULO OBJETO LINKEDIO MDULO DE CARGA LANGUAGE INTERFACE BIND BIBLIOTECA DE INCLUDE

CATLOGO DB2
DESCRIO DE TABELA AUTORIZAO DBRM

DIRETRIO PLANO/PACKAGE

EXECUO

Treinamento DB2
BIND BIND
BIND ADD Adiciona Plano Novo REBIND Refaz Plano (Ambiente alterado) BIND REPLACE Refaz Plano (SQL Alterado)

OTIMIZADOR

DBRM

PLANO PACKAGE

DBRM

CATLOGO

DIRETRIO

Treinamento DB2
SEGURANA INTERNA DO DB2
TABELAS VIEW SELECT UPDATE [Lista de colunas] INSERT

PLANOS PACKAGES

BIND EXECUTE

Treinamento DB2
SEGURANA INTERNA DO DB2
STOGROUP BUFFERPOOL TABLESPACE USE

DB2

SYSADM RECOVER TRACE, etc..

DATABASE

DBADM CREATETS LOAD, etc..

Treinamento DB2
Atribuio de Autoridade
Instruo SQL
Privilgio Sobre Recurso

GRANT

TO

AUTH-ID

REVOKE

Privilgio Sobre Recurso

FROM

+ AUTH-ID

Exemplo: GRANT SELECT ON EMPR TO PUBLIC REVOKE SELECT FROM EMPR FROM PUBLIC

Treinamento DB2
Utilitrios DB2 - On Line
10.QUIESCE

1. LOAD

4.REORG

7.COPY 11.MODIFY

2.CHECK INDEX

5.RUNSTATS

8.MERGE COPY

12.REPORT

3.CHECK DATA

6.STOPSPACE

9.RECOVER 13.REPAIR

Treinamento DB2
Utilitrios DB2 - Off Line

Treinamento DB2
Utilitrios DB 2 - Services AIDS
1. 2. 3. 4. 5. 6. 7. 8. DSN1COPY DSN1PRNT DSN1COMP DSN1LOGP DSN1CHKR DSNTIAUL DSNTEP2 DSNTIAD Trata user data por data set Listas e formatas data set pages Estimativas de espaos a ser arquivados(DB2) L o contedo da Log e formata para display. Verifica a Integridade dos diretrios e catlogo. Unload de tabelas para uma arquivo sequencial. Para emisso de SQL dinmico. Para emisso de SQL dinmico exceto SELECT.

Treinamento DB2
SYSIBM.SYSUTILX SysIBM.SysutilX Uma Tabela de Diretrio DB2.

UTILID

JOB NOME

UTILITY NOME

CHECKPOINT INFORMAO....

Identificador nico

Coluna inserida no Incio do Utility Coluna atualizada em Pontos de Checkpoints e Parada de Utility. Coluna eliminada quando do termino do Utility.

Treinamento DB2
LOAD LOAD Definio da Tabela: CREATE TABLE PROD.EMPRESA (NOME_EMPRESA CHAR(6) PRIMEIRO_NOME VARCHA(12) INTERM_NOME CHAR(1) ULTIMO_NOME VARCHAR(15) FONE CHAR(4) SALARIO DECIMAL(8,2) DEPTO CHAR(3) PRIMARY KEY(NOME_EMPRESA), FOREIGN KEY(DEPTO) REFERNCES DEPT ON DELETE SET NULL) IN TESTEDB1.TESTTSP1;

NOT NULL, NOT NULL, NOT NULL, NOT NULL, , , ,

Treinamento DB2
LOAD - JCL
//LOADTEST EXEC DSNUPROC,.... //DSNUPROC.SYSREC DD DSN=ARQUIVO.ENTRADA ,DISP=SHR //DSNUPROC.SYSUT1 DD DSN=ARQUIVO.SYSUT1,DISP=( MOD,DELETE,CATLG),... //DSNUPROC.SORTOUT DD DSN=ARQUIVO.SORTOUT,DISP=(MOD,DELETE,CATLG),... //DSNUPROC.SYSERR DD DSN=ARQUIVO.SYSERR,DISP=(MOD,DELETE,CATLG),... //DSNUPROC.SYSMAP DD DSN=ARQIVO.SYSMAP,DISP=(MOD,DELETE,CATLG),... //DSNUPROC.SYSIN DD *

LOAD DATA INTO TABLE PROD.EMPRESA WHEN (32:34) = A00 (NOME_EMPRESA POSITION (1:6), PRIMEIRO_NOME POSITION(8:16) CHAR, INTERM_NOME POSITION(19), ULTIMO_NOME POSITION(21:30) CHAR, DEPTO POSITION(32:34), FONE POSITION(36:39) NULLIF PHONE = , SALARIO POSITION(65:69) DECIMAL EXTERNAL)

Treinamento DB2
LOAD - Opo LOG
LOG YES Cada pgina ser registrada na LOG. LOG NO Carga mais rpida Requer ImageCopy Modificao por SQL no permitida enquanto no fizer o ImageCopy SQL error code 904

Treinamento DB2
LOAD - Continuao
LOAD RESUME NO REPLACE

LOAD RESUME YES

LOAD RESUME NO (Cond. Code = 8 ) TABLESPACE

Treinamento DB2
Violao de ndice nico Quando do LOAD, se inserido duas ou mais ocorrncias com a mesma chave o DB2 descartas todas as ocorrncias deste LOAD. CHAVE ENTRADA A B C D B CARGA NA TABELA A C D B DESCARTES B

FASES DO LOAD

Fases do Load
Dados de Entrada (SYSREC)
RELOAD

Sada Tabela

Treinamento DB2

Sysut1

Syserr

Sysmap

Sysut1

SORT

Sortout

Sortout Sysut1

BUILD

Sysut1 Syserr

Indexes

Sysut1 Syserr

IDEXVAL

Sada

Tabelas

FASES DO LOAD
Sysut1 Sysut1

Treinamento DB2

Sortout

ENFORCES

Sada

Tabelas

Parent Tables

Sortout Syserr

Dados entrada (SYSREC)

Fases do Load Continuao

Sortout Syserr

DISCARD

Sysdisc

Sysmap

Sortout Syserr

REPORT

Relatrio Sumrio

Treinamento DB2
CHECK DATA Checa todas as chaves estrangeiras de uma lista de tablespaces com os valores de chaves primrias correspondentes. Checa todas as ocorrncias dependente, ou somente as adicionadas pelo LOAD. Opcionalmente copia ocorrncias rf para uma tabela de exceo, e elimina a ocorrncia da tabela ou no. Tirar do Status de CHECK PENDING Nenhuma violao foi detectado, ou Erros so eliminados com a opo DELETE YES .

Fases do DO CHECK DATA FASES Check Data


Repetida para Dependent Table (Tabela FILHA) Dependent table
SCANTAB

SYSUT1

Treinamento DB2

SYSUT1
SORT

SORTOUT

Sortout/ndice chave estrangeira SYSERR


SCANTAB

ndice chave Primria

Dependent/Descendent Tables

Tabela Exceo

SYSERR

REPORTCK

Relatrio de Sumrio

Treinamento DB2
CHECK INDEX

O CHECK INDEX testa a consistncia entre o dados e o ndices. O Check procura a inconsistncia e emite uma mensagem de erro, descrevendo qual o problema. Exemplos de SYSIN: //DSNUPROC.SYSIN DD * CHECK INDEX NAME(prd.indice1, prd.index2) CHECK INDEX(prd.indice1 PART 3) CHECK INDEX(ALL) TABLESPACE PRD.EMPRESA

FasesDO CHECK INDEX FASES do Check Index

Treinamento DB2
Sysut1

ndices

UNLOAD

Sysut1

SORT

Sysut1

Sysut1 Relatrio Sumrio

CHECKINDEX
Tabelas

Treinamento DB2
REORG A fase de UNLOAD dos registros de uma tabela. Descarrega as ocorrncias na sequncia do ndice de clusterizao Fase de RELOAD carrega o dados de volta a tabela, respeitando os FREE PAGE, PCTFREE, etc. FASE de SORT Sorteia as chaves do ndices contidas no SYSUT1, gravando no SORTOUT. Fase de BUILD Reconstro os ndices com a sada do SORT.

FASES DO REORG Fases do Reorg


Table space

Treinamento DB2
UNLOAD

Sada dos Dados (SYSREC) Entrada dos Dados (SYSREC)


RELOAD
Table space

Sysut1

Sysut1

SORT

Sortout

Sortout

BUILD

Indexes

REORG Reorg

Treinamento DB2

UNLOAD CONTINUE

RESTART

UNLOAD PAUSE STOP Edit/Field Field/Edit

UNLOAD ONLY Edit/Field

TERMINATE

LOAD REPLACE Validation/Field/Edit

Treinamento DB2
COPY

Cria um Backup do Tablespace COPY TABLESPACE CURXDB01.CURXTS01 FULL YES SHRLEVEL REFERENCE Permite Atualizao Leitura compartilhada Se no quiser compartilhar acesso a base, emita o comando no DB2: -START DB(CURXDB01) SPACE(CURXTS01) ACCESS(UT) Assim somente utilitrios podem agir sobre os Objetos.

Copy
Controle de Cpia Incremental
SPACE MAP PAGE

Treinamento DB2

Altera Indicadores de Pginas

Altera bit no HEADER


DATA PAGE

O Copy Full e Incremental desliga o bit. Fazer sempre Image Copy FULL aps REORG LOG NO ou LOAD LOG NO. Se mais que 15% das pginas foram alteradas, opte por COPY FULL. Especifique DISP=(MOD,CATLG) para permitir restart do utilitrio.

Treinamento DB2
Mergecopy MERGECOPY

MERGECOPY

Image Copys Incremental

Merge Image Copy Incremental

SYSIN: MERGECOPY TABLESPACE PRD.EMPRESA NEWCOPY NO

Mergecopy

Treinamento DB2
Incremental

MERGECOPY

Full

Full Image Copy

SYSIN: MERGECOPY TABLESPACE PRD.EMPRESA NEWCOPY YES

NEWCOPY YES insere um apontamentos no catalogo DB2 como FULL Image Copy. NEWCOPY NO atualiza o registros com Image Copy Incremental.

Treinamento DB2
Funes do Utilitrio RECOVER 1. 2. 3. 4. 5. Inicializao Alocao Dinmica se no existir apontamento no statements DD Define os datasets do Tablespaces. Image Copy Merge e Restaura Aplica a log.

Recovery RECOVERY
22:00 IMAGECOPY EMPRESA FULL YES

Treinamento DB2

22:20

RUN PROGRAM XYZ

08:45

Descobre que programa Atualizou dados errados

09:00

Restaurar a partir do ltimo Image Copy

PONTOS DE RECOVERY Permite restaurar ate: Um especifico Full ou Incremental Image Copy RECOVER .... TOCOPY I.D15.CUR.DBP0TS01.G0001V00 Um especifico LOG RBA. RECOVER .... TORBA X005E00123456

Index Recovery

Treinamento DB2
Fase SORT Fase BUILD Index1

INDEX RECOVERY Fase UNLOAD

UNLOAD Sysut1 BUILD

Arquivo de Trabalho
SORT Tablespace Sysut1

Index2

Exemplos de SYSIN: RECOVER INDEX(PRD.INDICE1, PRD.INDICE2) RECOVER INDEX (ALL) TABLESPACE PRDXDB01.EMPRESA RECOVER INDEX(PRD.INDICE1 PART 2)

Treinamento DB2
RECOVERY PENDING segue as seguintes condies: Condio Term Util Term Util UTILITRIO FASE Recover TS -------Recover Index BUILD RELOAD Term Util Reorg/Load SORT BUILD Point in Time Recover -------TS Recovery Tablespace OBJETOS colocado em RECP TABLESPACE ndice ainda no construdos Tablespace, Parties e ndices Todos os ndices ndice ainda no construdos Todos os ndices

Treinamento DB2
MODIFY Elimina Image Copy desnecessrios e log ranges do catlogo DB2, As entradas so da SYSCOPY e SYSLGRNG. Possvel acesso concorrente durante o MODIFY com exceo do SYSCOPY e SYLGRNG. Exemplo: MODIFY RECOVERY TABLESPACE(CURXDB01.CURXTS01) DELETE DATE(19981101). MODIFY RECOVERY TABLESPACE(CURXDB01.CURXTS01) DELETE AGE(90) DELETE DATE eliminados as ocorrncias da data informada para trs DELETE AGE todos ocorrncias com a quantidades de dias maior que a informadas sero eliminadas.

Treinamento DB2
DIAGNOSE Ajuda no diagnstico de problemas de utilitrios. Normalmente sua utilizao a pedido do SUPORTE IBM STOSPACE Colhe informao de espao alocado para cada Storage Groups, Tablespaces e ndices relacionados. A informao registrada no catlogo DB2.

Treinamento DB2
QUIESCE

Verifica restries para os tablespaces especificados e cria um ponto de consistncia para eles. Para cada tabespace, o Quiesce cria uma entrada na SYSCOPY com RBA vlido para a recuperao. QUIESCE TABLESPACE CURXDB01.CURXTS01 TABLESPACE CURXDB01.CURXTS02

Treinamento DB2
REPORT Listas dados sobre Tablespaces. O relatrio pode Ter 2 tipos de sadas: TABLESPACESET Tablespace e tabelas que participam de Relacionamento de Integridade Relacional (RI). RECOVERY - Informaes de recuperao a partir do catlogo, diretrio e BSDS.

REPORT TABLESPACESET TABLESPACE CURXDB01.CURXTS01 REPORT RECOVERY TABLESPACE CURXDB01.CURXTS01.

RUNSTATS

RUNSTATS

Treinamento DB2

Varre um Tablespace ou ndice para atualizao no catlogo de utilizao de espao e eficincia do ndices. Esses dados so utilizados pelo otimizador do DB2. O Runstats atualizadas as tabelas: Estatstica usada pelo OTIMIZADOR 1. SYSTABLES 2. SYSTABLESPACE 3. SYSINDEXES 4. SYSCOLUMNS 5. SYSCOLDIST Outras para informaes do DBA 1. SYSTABLEPART 2. SYSINDEXPART 3. SYSCOLDISTSTAS 4. SYSCOLSTATS 5. SYSINDEXSTATS 6. SYSTABSTATS

DSNTIAUL DSNTIAUL

Treinamento DB2

Permite gerar um arquivo sequencial dos dados da tabelas, e um outro com as informaes de onde inicia e termina os registros, alem das informaes necessria para o LOAD. Exemplo do JCL:
//UNLOAD EXEC PGM=IKJEFT01,DYNAMNBR=20 //SYSUDUMP DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSPUNCH DD DSN=P915537.FONTES.CAPXTS14,UNIT=SYSDA, // DISP=(,CATLG,DELETE),SPACE=(TRK,(50,10),RLSE) //SYSREC00 DD DSN=P915537.DADOS.CAPXTS14,UNIT=SYSDA, // DISP=(,CATLG,DELETE),SPACE=(CYL,(80,05),RLSE) //SYSTSIN DD * DSN SYSTEM(DBP0) RUN PROGRAM(DSNTIAUL) PLAN(DSNTIB41) PARMS('SQL') LIB('DB2P1.V4R1M0.RUNLIB.LOAD') //SYSIN DD * SELECT * FROM SICAP.CAPXTB14ENTRADA ; /*

Treinamento DB2
COMANDOS DB2 Principais comandos DB2 -DIS DB(ABE*) SPACE(*) LIMIT(*) Verifica os status de todos os Tablespace e Indexspace do DATABASE que comece com ABE. -DIS DB(*) SPACE(*) LIMIT(*) RESTRICT Verifica todos os Tablespaces e Indexspace com alguma Restrio -START DB2 / -STOP DB2 Inicializa e encerra o DB2 (Comandos na console OS/390) -DIS UTIL(*) Mostra todos os UTILID com seus respectivos STATUS

Principais Comandos DB2 - Continuao

Treinamento DB2

-TERM UTIL(IMAGCCP) Termina o UTILID IMAGCCP -START DB(ABEXDB01) SPACE(*) ACCESS(RW) Libera todos Indexspace e Tablespaces para acesso de READ/WRITE -START DB(ABEXDB01) SPACE(ABEXTS12,ABEXPX12) ACCESS(UT) Starta os Tablespace ABEXTS12 e o Indexspace ABEXPX12 somente para acesso de utilitrios DB2. -DIS DB(ABEXDB01) SPACE(*) LIMIT(*) LOCKS Mostra todos os Tablespaces e Indexspaces do Database ABEXDB01 e as respectivas alocao. -DIS THREAD(*) Mostra todas as threads conectado ao DB2.

Treinamento DB2

Você também pode gostar