Escolar Documentos
Profissional Documentos
Cultura Documentos
Treinamento DB2
SQL ESTTICO vs. SQL DINMICO
ESTTICO ..................................................... ..................................................... Exec SQL Delete from Dept End-Exec. ..................................................... ..................................................... ..................................................... Instruo SQL Completa Fixo
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
OPEN
MATR SOBRENOME
FETCH
30 SILVA
290 SANTOS 300 ALMEIDA
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
DATABASE
Treinamento DB2
Atribuio de Autoridade
Instruo SQL
Privilgio Sobre Recurso
GRANT
TO
AUTH-ID
REVOKE
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;
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
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
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 .
SYSUT1
Treinamento DB2
SYSUT1
SORT
SORTOUT
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
Treinamento DB2
Sysut1
ndices
UNLOAD
Sysut1
SORT
Sysut1
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.
Treinamento DB2
UNLOAD
Sysut1
Sysut1
SORT
Sortout
Sortout
BUILD
Indexes
REORG Reorg
Treinamento DB2
UNLOAD CONTINUE
RESTART
TERMINATE
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
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
Mergecopy
Treinamento DB2
Incremental
MERGECOPY
Full
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
08:45
09:00
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
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.
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
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