DB2 UDB for z/OS Versão 8
Rompendo Limites
Jelson Carvalho
Objetivos
Apresentar algumas melhorias do DB2 for
OS/390 Versão 8 em relação a versões
anteriores
Introduzir conceitos utilizados na nova
versão
Formar base de conhecimento para as
demais apresentações do evento
Orientação principal para aspectos da
administração de banco de dados
Principais aspectos
Escalabilidade
Disponibilidade
Desempenho
Funcionalidade
Instalação e migração
Conclusões
Escalabilidade
Escalabilidade
Removendo inibidores de crescimento
Explorando arquitetura de 64 bits
Mais partições
Mais arquivos log
Aumentando limites no SQL
Removendo inibidores de crescimento
Limites do DB2 for z/OS :
Memória Virtual
Logs Ativas
Logs Arquivadas
Partições
Tamanho do SQL
Tabelas no join
V7
231
31
1000
254
32 KB
15
V8
264
93
10,000
4096
2 MB
225
Explorando arquitetura de 64 bits
Memória
Expandida
Memória Central
Memória Central
S/370 24-bit
XA/ESA 31-bit
Memória
Central
z/Architecture 64-bit
Memória Virtual
Memória Virtual
Memória Virtual
Arquitetura
Antiga S/370
Arquitetura
Atual ESA
Suporte para endereçamento real fornecido pela z/Architecture do OS/390 V2R10
Sistema Operacional suportando aplicações de 24-bit, 31-bit e 64-bit
128GB (64GB máximo atual no z900) de memória central
Registradores de 64 bits, etc...
Evolução de 64 bit
Suporte de hardware para 64 bit zSeries,
z/Architecture (z800, z900, z990)
Suporte do sistema operacional
Suporte de 64 bit para Memória Real (OS/390 V2R10
ESAME mode +)
Grandes quantidades de memória real (para performance)
Melhoria em todas as versões do DB2
Vantagens do data space na V6 (melhor que hiperpool)
Suporte de 64 bit para Memória Virtual (z/OS V1.2 +)
Explorado pelo DB2 V8 (requer z/OS 1.3)
Move grandes áreas de memória para acima da barra
Explorado pelo IRLM V2.2 (parte do DB2 V8)
Bloqueios sempre na memória privada acima da barra
Melhora escalabilidade, disponibilidade e facilidade
Não necessita mais de hiperpool ou data space
Utilização de 64 bit pelo DB2 movimentação acima da barra
16 EB
DBM1
Buffer pool
EDM pool
(DSC+DBD)
RID lists
Sort pool
Compression
dictionary
Barra
2 GB
16 M
0
Suporte para 4096 partitions
Número máximo de partições aumentado de 254 para 4096
Table spaces e índices
Table space usa DSSIZE para ir além de 254 partições
ALTER TS ADD PARTITION acrescenta partições ao final
Tamanho máximo da tabela continua 16 TB para páginas de 4 KB
Convenção para nomes de arquivos expandida
'A001‘ - 'A999' partições 1-999
'B000' - 'B999' partições 1000-1999
'C000' - 'C999' partições 2000-2999
'D000' - 'D999' partições 3000-3999
'E000' - 'E096' partições 4000-4096
Número máximo de partições permitidas depende do tamanho da
página e do DSSIZE
Páginas de 4 KB, DSSIZE=1 GB => 4096 partições, 4 TB tamanho
máximo da tabela
Páginas de 4 KB, DSSIZE=64 GB => 256 partições, 16 TB tamanho
máximo da tabela
Suporte para mais arquivos log
Aumento no número de logs ativas de 31 para
93
Aumento no número de logs arquivadas que
podem ser registradas no BSDS de 1000 para
10000
Ambos requerem conversão prévia do BSDS
para acomodar informação adicional
Executar job DSNJCNVB para converter o
BSDS
Tem que estar em Modo de Novas Funções
antes que a conversão seja permitida
Aumentando limites no SQL
Limites do DB2 for z/OS :
V7
V8
Nome da tabela(*)
18
128
Nome da coluna
18
30
Chave de índice
255
2000
Literais em caráter
255
32704
Tamanho de predicados 55
32704
Tamanho do SQL
32 KB
2MB
Tabelas no join
15
225
(*) Idem views, alias, índices, triggers, sinônimos
Disponibilidade
Disponibilidade
Evolução online de esquema
ALTER ao invés de DROP / CREATE
Data Partitioned Secondary Indexes
(DPSI)
Recuperação a nível de sistema para um
ponto no tempo
Alteração online de mais parâmetros do
DSNZPARM
Evolução online de esquema
Mudança de partições
Adicionar uma partição ao final da tabela
Rodar partições
Redistribuir partições
Desvinculação entre particionamento e clustering
Possibilidade de fazer drop do partitioning index
Data Partitioned Secondary Indexes
Possibilidade de alterar o índice clustering
Aplicável também a tabelas não particionadas
Alteração de índices
Adicionar colunas a índices
Alteração de tabelas
Possibilidade de alterar tipos de dados e tamanhos (aumentos)
Inclui tipos de dados de colunas referenciadas em views
Inclui alteração de colunas usadas em índices
Adição de partição ao final da tabela
ALTER TABLE ... ADD PARTITION ENDING AT ("31-12-2003");
ts
Partição 1
1999
1999 Jan
Jan
Partição 2
1999
1999 Fev
Feb
Partição 58
2003
2003 Out
Oct
Partição 59
2003
2003 Nov
Nov
Partição 60
2003
2003 Dez
Dec
pi
npsi
dpsi
Rotação de partições (1)
ts
Part 1
1999
1999 Jan
Jan
Part 2
1999
1999 Fev
Feb
Part 59
2003
2003 Nov
Nov
Part 60
2003
2003 Dez
Dec
pi
npi
Rotação de partições (2)
ALTER TABLE ... ROTATE FIRST TO LAST
ENDING AT ("31-01-2004") RESET;
ts
1999
1999 Jan
Jan
Part 2
1999
1999 Fev
Feb
Part 59
2003
2003 Nov
Nov
Part 60
2003
2003 Dez
Dec
Part 1
pi
npi
Particionamento controlado pela tabela
CREATE TABLE CUSTOMER (
ACCOUNT_NUM
INTEGER,
CUST_LAST_NM
CHAR(30),
...
LAST_ACTIVITY_DT
DATE,
STATE_CD
CHAR(2))
PARTITION BY ( ACCOUNT_NUM ASC )
( PARTITION 1 ENDING AT (199),
PARTITION 2 ENDING AT (299),
PARTITION 3 ENDING AT (399),
PARTITION 4 ENDING AT (499) ) ;
Tabela particionada
401
402
403
404
405
406
301
302
303
304
305
306
201
202
203
204
205
206
TB
101
102
103
104
105
106
Não necessita índices para particionamento !!!
Classificação dos índices na Versão 8
Um índice pode estar ou não correlacionado às
colunas de particionamento de uma tabela
Partitioning index (PI)
Secondary index
Um índice pode ser ou não fisicamente
particionado
Partitioned
Non-partitioned
Índice clustering :
Qualquer índice pode ser o clustering
O índice clustering pode ser de chave não única
Partitioned index and non-partitioned
index
Índice particionado - 1 partição por partição de dados
Tabela particionada
IX
Índice não particionado
401
402
403
404
405
406
301
302
303
304
305
306
201
202
203
204
205
206
TB
101
102
103
104
105
106
IX
401,AM
402,PI
403,RO
404,PB
405,MS
406,MA
301,PR
302,MT
303,PA
304,SE
305,TO
306,AC
401,FEV,AM
402,MAR,PI
403,JUN,RO
404,SET,PB
405,OUT,MS
406,NOV,MA
301,ABR,PR
302,MAI,MT
303,JUN,PA
304,JUL,SE
305,SET,TO
306,NOV,AC
201,JAN,SP
202,FEV,RN
203,JUL,CE
204,AGO,RJ
205,OUT,PE
206,DEZ,SC
101,JAN,MG
102,FEV,AL
103,MAR,RS
104,ABR,ES
105,NOV,GO
106,DEZ,BA
Tabela
particionada
201,SP
202,RN
203,CE
204,RJ
205,PE
206,SC
101,MG
102,AL
103,RS
104,ES
105,GO
106,BA
401
402
403
404
405
406
301
302
303
304
305
306
201
202
203
204
205
206
101
102
103
104
105
106
Partitioning indexes (Partitioned and
Non-Partitioned)
Partitioned Partitioning index - part_ix_1
Non-partitioned Partitioning index - part_ix_2
AC
AL
AM
BA
CE
ES
GO
MA
MG
MS
MT
PA
PB
PE
PI
PR
RJ
RN
RO
RS
SC
SE
SP
TO
JAN
FEV
MAR
ABR
NOV
DEZ
JAN
FEV
JUL
AGO
OUT
DEZ
ABR
MAI
JUN
JUL
SET
NOV
FEV
MAR
JUN
SET
OUT
NOV
205,JAN,PE
206,FEV,SC
201,JUL,SP
202,AGO,RN
203,OUT,CE
204,DEZ,RJ
304,ABR,SE
303,MAI,PA
306,JUN,AC
302,JUL,MT
305,SET,TO
301,NOV,PR
404,FEV,PB
403,MAR,RO
405,JUN,MS
401,SET,AM
406,OUT,MA
402,NOV,PI
Tabela
particionada
106,JAN,BA
101,FEV,MG
102,MAR,AL
105,ABR,GO
104,NOV,ES
103,DEZ,RS
Secondary indexes (Partitioned and NonPartitioned)
Data Partitioned Secondary Index (DPSI) - data_part_si_1
Non-Partitioned Secondary Index (NPSI) - non_part_si_2
Benefícios do DPSI
Online REORG
Não executa a fase de BUILD2 com DPSI’s
Carga de partições (LOAD PART)
Sem páginas compartilhadas
Remove contenção de páginas e problemas de sobrecarga do GPB
Permite uso de estratégia mais eficiente para extensão de tabelas
(APPEND)
Operações mais fáceis a nível de partição
Tornam mais fácil e eficiente a inclusão e exclusão de novas partições
Falha de armazenamento
Recuperação a nível de partição
Sobrecarga em data sharing
Designação por afinidade membro partição é efetiva no DPSI
Permite paralelismo de query
Outras melhorias de índices
ALTER INDEX ADD COLUMN
ALTER INDEX PADDED / NOT PADDED
Chaves de índices com tamanhos variáveis (NOT
PADDED)
ALTER clustering index
Para tabelas particionadas e não particionadas
Efetivo imediatamente
REORG necessário para reordenar todas as linhas
existentes na sequência do novo índice clustering
Outras melhorias na área de desempenho
ALTER TABLE data types suportados na
V8
FROM
TYPE
DO
TIPODATA
DE DADO
TO DATA
PARA
TIPOTYPE
DE DADO
smallint
smallint
smallint
smallint
smallint
smallint
smallint
smallint
integer
integer
integer
integer
float(1-21)
float(1-21)or
orreal
real
<=decimal(7,s)
<=decimal(7,s)
<=decimal(15,s)
<=decimal(15,s)
decimal(p,s)
decimal(p,s)
char(n)
char(n)
char(n)
char(n)
varchar(n)
varchar(n)
varchar(n)
varchar(n)
graphic(n)
graphic(n)
graphic(n)
graphic(n)
vargraphic(n)
vargraphic(n)
vargraphic(n)
vargraphic(n)
integer
integer
float(1-21)
float(1-21)or
orreal
real
float(22-53)
float(22-53)or
ordouble
double
>=>=decimal(5,0)
decimal(5,0)
float(22-53)
float(22-53)or
ordouble
double
>=decimal(10,0)
>=decimal(10,0)
float(22-53)
float(22-53)or
ordouble
double
float(1-21)
float(1-21)or
orreal
real
float(22-53)
float(22-53)or
ordouble
double
decimal(p+a,s+b)
decimal(p+a,s+b)
char(n+x)
char(n+x)
varchar(n+x)
varchar(n+x)
char(n+x)
char(n+x)
varchar(n+x)
varchar(n+x)
graphic(n+x)
graphic(n+x)
vargraphic(n+x)
vargraphic(n+x)
vargraphic(n+x)
vargraphic(n+x)
graphic(n+x)
graphic(n+x)
Dentro do mesmo tipo de
grupo de dados
(caráter ou numérico)
Tamanho menor maior
ALTER TABLE tab1
ALTER COLUMN cola
SET DATA TYPE
CHAR(20);
Para tipos de dados decimais,
“a” mais “b” tem que ser maior
do que zero ou não ocorre
mudança
Para tipos de dados caráter,
“x” tem que ser maior ou igual
a zero
Que acontece à tabela e aos dados
Tabela
Nova definição registrada no catálogo e no diretório
Máximo de 255 ALTERS por table space antes que o REORG seja
requerido
Table space é colocado em “advisory reorg-pending” (AREO)
Planos, packages e solicitações de SQL dinâmico guardadas na
memória que referenciem a coluna alterada são invalidados
Valores do RUNSTATS para as colunas são invalidados e tratados
como se fossem -1 (mesmo tratamento dado no aumento de colunas
varchar na Versão 7)
Dados
Dados existentes permanecem inalterados
No SELECT, os dados são materializados no novo formato
INSERT e UPDATE alteram a linha inteira para o formato mais recente
REORG altera todas as linhas para a versão atual (mais recente) e
melhora a performance (em muitos casos o REORG online pode ser
usado)
Recuperação a nível de sistema para um
ponto no tempo
Mais fácil, flexível e permitindo recuperação
mais rápida
Manuseia grande número de table spaces e
índices (na V8 só suporta o subsistema DB2
inteiro ou o data sharing group)
Dois novos utilitários criados
BACKUP SYSTEM: Cópia rápida por volume
DB2 databases (e logs)
Escopo de data sharing group
z/OS V1R5 requerido (DFSMShsm, DFSMSdss, DFSMS)
DASD que suporte o Flashcopy API
RESTORE SYSTEM
Para um ponto arbitrário no tempo
Manuseia eventos de creates, drops, LOG NO
Parâmetros de sistema já existentes na
V7, alteráveis online na V8
Parameter
CHGDC
EDPROP
SYSADM
SYSADM2
SYSOPR1
SYSOPR2
CACHEDYN
SRTPOOL
XLKUPDLT
MAXKEEPD
PARTKEYU
RESYNC
IDTHTOIN
MAXTYPE1
POOLINAC
TCPKPALV
TCPALVER
Panel
DSNTIPO
DSNTIPO
DSNTIPP
DSNTIPP
DSNTIPP
DSNTIPP
DSNTIP4
DSNTIPC
DSNTIPI
DSNTIPE
DSNTIP4
DSNTIPR
DSNTIPR
DSNTIPR
DSNTIP5
DSNTIP5
DSNTIP5
Panel Field
DPROP Support
DPROP Support
System Admin 1
System Admin 2
System Operator 1
System Operator 2
Cache Dynamic SQL
Sort Pool Size
X Lock for Searched U/D
Max Kept Dyn Stmts
Update Part Key Cols
Resync Interval
Idle Thread Timeout
Max Inactive DBAT’s
Pool Thread Timeout
TCP/IP Keepalive
TCP/IP Already Verified
Desempenho
Desempenho
Habilidade de usar índices mais frequentemente
Mais predicados indexáveis
Varredura reversa de índices (backward scan)
Índices NOT PADDED (acesso IX-only para dados
tipo VARCHAR)
Materialized Query Tables
Suporte para tabelas voláteis
Melhoria no EXPLAIN
Visual Explain inteligente
Predicados estágio 1 indexáveis com
tipos de dados diferentes
DB2 foi melhorado para permitir acesso via índice quando a variável
de programa e a coluna da tabela não têm o mesmo tipo de dados
ou tamanho
Atende linguagens de programação que não suportam todo o
conjunto de tipos de dados do DB2
C/C++ não possui tipo de dados DECIMAL
Java não tem tipo de dados CHAR de tamanho fixo
Alguns exemplos:
Coluna é decimal; variável de programa é float
Coluna é char(3); Literal ou variável de programa é char(4)
Melhoria significante de performance para muitas aplicações
Pode ser usado com “transitive closure”
Existem ainda algumas restrições para estágio 1, indexável
Simplifica tarefas do programador de aplicações e do DBA
Predicado estágio 1 na Versão 8 exemplos
salary
hv_float
dec (12,2)
floating
SELECT FROM employee
WHERE salary > :hv_float;
Antes da V8
Predicado estágio 2
Table space scan
V8
Predicado estágio 1
Pode usar índice
pela coluna salário
Exemplo de Transitive Closure
CHAR(4)
SELECT DEPT.NAME, EMP.NAME
FROM EMP, DEPT
WHERE EMP.DEPTID = ? AND
EMP.DEPTID = DEPT.ID
CHAR(3)
AND
Gerado
DEPT.ID = ? ;
Antes da V8
Predicado estágio 2
Varredura do table space
A partir da V8
Predicado estágio 1
Pode usar índice pela
coluna DEPTID
Materialized Query Tables (MQT)
Previamente conhecida como "Automatic
Summary Tables"
Otimizador é capaz de reescrever a solicitação
para acessar a MQT em lugar da tabela ou view
(se MQT for habilitada para otimização da
query)
Melhoria significante de performance
Dois tipos de MQT’s
Mantida pelo sistema (através da solicitação SQL
REFRESH)
Mantida pelo usuário (através de triggers,
atualizações batch, LOAD, etc.)
Sem Materialized Query Tables
Cada query é recomputado !
Q11, Q12, ...
Q21, Q22, ...
CLIENTE
PRODUTO
VENDA
LOCAL
TEMPO
Com Materialized Query Tables
Q11, Q12, ...
MQT
Reusa muitas vezes
Pré-computa uma vez
Armazena na MQT
CLIENTE
PRODUTO
VENDA
LOCAL
TEMPO
MQT
Q21, Q22, ...
Melhorias em índices
Índice de real tamanho variável
Acesso IX-only
Redução de espaço para o índice
ALTER INDEX PADDED / NOT PADDED + REBUILD
Tamanho máximo da chave aumentado de 255 para 2000 bytes
Chaves em Unicode podem se tornar maiores
DB2 em plataformas de LUW pode ter chaves > 255
Suporte para varredura reversa do índice
Usada por “scrollable cursors”
Pode definir apenas um índice quando necessita ordem ASC e DESC
para as mesmas colunas
Otimizador usa a varredura para frente se ambos os índices estiverem
disponíveis (varredura reversa do índice só pode ser usada com
“dynamic prefetch”
Varredura reversa de índice
DB2 pode selecionar um índice ascendente e usar a
varredura reversa para evitar um sort em ordem
descendente
Para ser capaz de usar um índice para varredura
reversa:
O índice tem que ser definido sobre as mesmas colunas usadas
no ORDER BY e
A ordenação tem que ser exatamente oposta à requerida no
ORDER BY
Se o índice for definido como DATE DESC, TIME ASC, pode fazer:
Varredura direta para ORDER BY DATE DESC, TIME ASC
Varredura reversa para ORDER BY DATE ASC, TIME DESC
Mas tem que usar o sort para:
ORDER BY DATE ASC, TIME ASC ou
ORDER BY DATE DESC, TIME DESC
Suporte para tabelas voláteis
Tabelas cujo conteúdo pode variar de vazio a
muito grande em tempo de execução
Favorece o acesso através de índice para
tabelas que possuem cardinalidade imprevisível
Melhoria significativa de performance para
algumas aplicações SAP (cluster tables)
Pode evitar conflitos de bloqueio causados por
caminhos de acesso diferentes para consultas
diversas, acessando a mesma tabela
CREATE TABLE T1 ..... VOLATILE
Melhoria no EXPLAIN
Melhorias na solicitação EXPLAIN permitem obter
informação de EXPLAIN para entradas no “DB2 global
statement cache”
Visual Explain melhorado para explorar esta nova
função
EXPLAIN
STMTCACHE
STMTID
id-host-variable
integer-constant
STMTTOKEN
token-host-variable
string-constant
Visual Explain inteligente
Melhorias significativas
na ferramenta de
Visual Explain:
Informação muito
mais detalhada sobre
o caminho de acesso
Estatísticas mais
detalhadas para cada
nó no gráfico
Documento XML
descrevendo o
caminho de acesso
escolhido para a
query
Mais fácil para
coletar informações
para análise
Funcionalidade
Funcionalidade
Entrada e saída delimitadas no LOAD e
no UNLOAD
Melhorias no RUNSTATS
Redistribuição de partições
Melhorias no Online REORG
Mudanças para suportar DPSI’s
Novos padrões para melhoria de
performance
Entrada e saída delimitadas no LOAD e
no UNLOAD
Utilitários LOAD / UNLOAD aceitam / produzem
arquivos delimitados
Benefícios:
Facilita a importação / exportação de (grandes quantidades
de) dados do DB2 for z/OS para sistemas operacionais em
outras plataformas e vice versa
Elimina necessidade de escrever programas para converter
dados de plataforma não z/OS no formato posicional para
usar o utilitário LOAD do DB2 for z/OS ou para inclusão
utilizando o INSERT
Descarregar / exportar dados de outro DBMS no formato
delimitado e carregá-los no DB2 for z/OS
Melhorias no RUNSTATS
Coleta de estatísticas de distribuição não uniforme
para colunas não indexadas
Técnica na V7 é usar programa separado - DSTATS
RUNSTATS da V8 permite coletar frequências e estatísticas
de distribuição não uniforme para colunas ou grupo de
colunas que não fazem parte de um índice
Usadas pelo otimizador e podem conduzir a melhoria
significativa de performance de certas consultas
Não é suportada para estatísticas em linha
Pode também coletar os valores menos frequentes
(LEAST)
RUNSTATS com UPDATE NONE REPORT NO
Invalida comandos existentes no “Dynamic Statements
Cache” que referenciam objeto especificado
RUNSTATS com UPDATE NONE HISTORY ALL só
atualiza as tabelas HISTORY
Redistribuição de partições
Antes do REORG TABLESPACE
Part 1
Part 2
Part 1
Part 2
Part 3
Part 4
Partitioning
Index
Part 4
Data
Partitions
Part 3
LK='50000'
LK='80000'
Depois do REORG TABLESPACE ... REBALANCE
Part 1
Part 1
Part 2
Part 2
Part 3
Part 3
LK='30000' LK='80000'
Part 4
Partitioning
Index
Part 4
Data
Partitions
Etapas da redistribuição
Faz unload das linhas do table space ou de uma faixa
de partições
Classifica as linhas pela(s) coluna(s) de particionamento
e distribui pelo número de partições
A divisão não é perfeita se existirem muitas duplicatas de
chaves
Recarrega os dados
Atualiza o valor da chave limite de cada partição no
catálogo
Invalida planos, packages e o “dynamic statement
cache”
Quando a ordem de clustering não casa com a chave de
particionamento rodar o REORG duas vezes:
Na primeira para mover as linhas para a partição correta
Na segunda para classificar na sequência de clustering
Melhorias no Online REORG
Não possui a fase de BUILD2 no REORG PART
quando usando DPSI’s
Suporte para processo de DISCARD com Online
REORG SHRLEVEL CHANGE
Suporte para fazer Online REORG SHRLEVEL
REFERENCE de todas as tabelas do catálogo
(incluindo as que possuem links)
Permite especificar SCOPE PENDING para
reorganizar somente as partições que estiverem em
estado de reorg pending (REORP) ou em estado de
advisory reorg pending (AREO) para um table space
específico ou faixa de partições
Mudanças para suportar DPSI’s
CHECK INDEX
Permite usar a opção PART para especificar a
partição do DPSI a ser verificada
COPY
DSNUM pode especificar uma partição do DPSI
LISTDEF
PARTLEVEL permite especificar granularidade
para DPSI’s
TEMPLATE
Templates criadas para DPSI’s podem fazer uso
da variável &PA
Novos padrões para melhoria de
performance
RESTART é o novo padrão para Utilitários
SORTKEYS para LOAD, REORG e REBUILD
SORTDATA para REORG
SORTDATA agora permitido para registros de 32k
REORG usa índice clustering implícito
Se não tem índice clustering, usa o primeiro
índice definido
Se o table space não possui índices, SORTDATA
funciona como nas versões anteriores à V8
Instalação e migração
Instalação e migração
Características gerais
Caminhos para migração
Migração para a versão 8
Modos de operação
Processo de migração
Verificação da instalação (IVP)
Mudanças no catálogo
Características gerais
DB2 e IRLM são exclusivamente 64-bit
Pré-requisitos básicos:
zSeries z800, z900 ou posterior
z/OS V1R3 ou posterior (algumas funções necessitam a
V1R4 ou V1R5)
Principais mudanças no catálogo:
Nomes longos
Unicode
Processo de migração:
Somente partindo da Versão 7
Processo em várias etapas
Suporta coexistência das versões 7 e 8 em data sharing
somente no modo de compatibilidade
Caminhos para migração
Suspenso em 30/06/2002
V.5
V.6
V.7
V.8
Migrar para o DB2 for z/OS V7
Migrar para o z/OS V1R3 ou posterior
Requer WLM em goal mode
Migrar para o IBM COBOL V2 or V3
Sem suporte para OS/VS COBOL or VS COBOL II
Pode continuar a executar módulos antigos de COBOL sob LE,
mas sem garantia
IMS V7, CICS TS V1.3 ou V2.2, IRLM 2.2
Migração para a versão 8
DB2 Versão 7
V8 Modo de Compatibilidade (CM)
Coexistência das
Versões 7 e 8
em data sharing
Retorno possível
com sucesso
do CATMAINT
Habilitação do Modo de Novas Funções (ENFM)
V8 Modo de Novas Funções (NFM)
Sem retorno para
V7 ou CM depois
de passar para
ENFM ou NFM
Modos de operação
V7
Módulos
- Módulos
da V7
- Funções
da V7
- Fallback SPE
DSNTIJTC
- Atualização do
CATMAINT
DSNTIJNE
- Início do
CATENFM
V8 CM
V8 ENFM
V8 NFM
- Módulos
da V8
- Algumas
funções
da V8
- Módulos
da V8
- Módulos
da V8
- Algumas
funções
da V8
Restaurar módulos V7
Catálogo
e
diretório
- Catálogo
e diretório
da V7
Catálogo V8
-EBCDIC
-nomes curtos
-padded IXs
DSNTIJNF
- Fim do
CATENFM
- Funções
da V8
DSNTIJNE
Catálogo V8
Catálogo V8
- EBCDIC/
- Unicode
Unicode
- nomes longos
- nomes
curtos/longos - not-padded
IXs (C/D)
- mixed IXs
Processo de migração (1)
Aplicar fallback SPE (PQ48486) a todos os
membros
Existência da PTF é mandatória
Iniciar todos os membros no mesmo nível de SPE
Migrar para o código da nova versão sem novas
funções (modo de compatibilidade)
Usar CATMAINT para migrar o catálogo e diretório
Esteja atento para sobrecargas
Testar ambiente com novo código
Processo de migração (2)
Habilitar modo de novas funções
Todos os membros do data sharing group devem
estar em V8 CM
Executar conversão das tabelas do catálogo para
nomes longos e Unicode
Um table space de cada vez numa ordem obrigatória
Usando online REORG com SHRLEVEL CHANGE
Pode ser interrompido e reiniciado a qualquer tempo
Depois da conversão de todos os objetos do
catálogo mudar para modo de novas funções
Verificação da instalação (IVP)
Importante – não é possível executar os jobs de IVP
da Versão 8 até que o DB2 esteja no Modo de Novas
Funções da Versão 8
Executar jobs da IVP da Versão 7 para verificar o
sucesso da migração para a Versão 8 Modo de
Compatibilidade
Na migração é recomendado executar partes das
aplicações exemplo da Versão 7 no Modo de Novas
Funções da Versão 8
Verificar a migração
Garantir que os jobs antigos funcionam no Modo de Novas
Funções da Versão 8
Os jobs da IVP da Versão 8 são criados pela CLIST
de instalação como parte da Habilitação do Modo de
Novas Funções no processo de migração
Mudanças no catálogo
Nomes longos (128 byte varchar Unicode)
Table, view and alias
Column (30)
Schema
UDF, stored procedures, triggers, packages
Alguns tamanhos de página maiores do que 4 KB
Páginas de 4K, 8K, 16K, 32K no catálogo do DB2
DB2 cria buffer pools para estes novos tamanhos de página
Quando usando data sharing, o usuário tem que criar os GBP’s
para estes buffer pools
Índices maiores do que 255 bytes
Contem dados em Unicode
Conclusões
Vantagens da Versão 8
Permite uso mais eficiente dos recursos
de hardware e software disponíveis
Voltado para ambientes com grandes
volumes de acessos
OLTP
E-Business
Queries
OLAP
Data Mining