Carlos Henrique P. de Oliveira

Propaganda
PUC – BD3
Prof. Elvira Uchôa
IBM DataBase 2
DB2 versão 7.2
Versão original em 02/05/2002
Versão 3 em 09/05/02
Carlos Henrique P. de Oliveira
Rafael Vieira Siqueira A.
0. Introdução:
0a. O DB2
Desde a fundação do e-business, o software DB2 é o primeiro sistema de
gerenciamento de banco-de-dados relacional multiplataforma, multimídia e pronto
para Web. O DB2 é o bastante para atender as necessidades de grandes
corporações e flexível para servir a média e pequena empresa com negócios em
e-business.
Escalonamento inigualável. O DB2 suporta milhões de usuários e terabytes
de dados em aplicativos de e-business de ponta, em todo o mundo.
Além disso utiliza da tecnologia da Internet para facilitar o acesso,
disponibilidade e segurança da informação. O DB2 dá poderes a seus funcionários
externos ao colocar as informações sobre a empresa ao alcance de todos.
O resultado é de mais de 60 milhões de usuários de DB2 e mais de 300 mil
corporações pelo mundo inteiro utilizando a solução da IBM para gerenciamento
de dados.
0b. Arquitetura do DB2
O DB2 tem arquitetura DRDA - Distributed Relational Database Architecture
(Arquitetura de Banco-de-dados Relacional Distribuído). Esta arquitetura define
formatos e protocolos para prover acesso transparente à dados remotos.
DB2 opera nos ambientes MVS/XA e MVS/370. O DB2 aproveita das
vantagens de tecnologia de novos e já existentes hardware e software. DB2 foi
projetado para utilizar a arquitetura XA, incluindo endereçamento virtual de 31-bits
e armazenamento real de alta capacidade.

Tabelas Grandes – A arquitetura DB2 possibilita que tabelas sejam
realmente grandes, até 64 bilhões de bytes em tamanho. Essas tabelas
podem ser divididas em partes menores para serem reorganizadas e
recuperadas individualmente para facilitar sua administração.

Recuperação Integrada – DB2 engloba um mecanismo de recuperação
integrado. Possui log de discos, recuperação automática em
reinicializações e serviços mais comuns com funções de recuperação.

A recuperação do DB2 é em integral coordenada com a recuperação do
IMS/VS e CICS/OS/VS. DB2 comunica com ambos IMS/VS e CICS/OS/VS
para que inconsistências em potencial possam ser resolvidas sem perda de
dados.

Segurança – Além de flexível engloba um mecanismo de autorização e
acesso.

Suporte à fragmentação somente horizontal - Hash partitioning
(balanceamento) e Partition maps (paralelismo). A fim determinar onde uma
relação será fragmentada, o administrador seleciona "uma chave de
partição" que seja incorporada em uma função Hash junto com o número
das divisões desejadas, já o partition maps oferece paralelismo.

Suporte à particionamento – Para tornar tabelas com grande tamanho
administráveis, DB2 suporta “espaço de tabelas” (table spaces)
particionáveis. Uma table space pode ser dividida em partições com valores
padrões de bases de dados. Partições também podem ser reorganizadas
ou recuperadas independentes, reduzindo o tempo que a table space inteira
fica indisponível. Particionamento também possibilita que dados ativos
sejam armazenados em dispositivos rápidos e dados inativos em
dispositivos mais lentos.
0c. Produtos DB2 oferecidos pela IBM
DB2 Universal Database Personal Edition
Fornece um sistema de gerenciamento de banco de dados relacional de usuário
único para seu desktop OS/2, Linux ou Windows
DB2 Universal Database Workgroup Edition
Um banco de dados DB2 de vários usuários para aplicativos e dados
compartilhados em uma configuração de grupo de trabalho ou departamento em
LAN's com base em PC
DB2 Universal Database Enterprise Edition
Um banco de dados DB2 de vários usuários para configurações complexas e
grandes necessidades de banco de dados, desde plataformas Intel até UNIX e dos
processadores únicos até os maiores SMP's.
DB2 Universal Database Enterprise Extended Ed
Fornece um mecanismo de alta performance para manipulação de dados
complexos em configurações de servidor SMP e MPP agrupado para Windows
NT**, Ambiente Operacional Solaris da Sun e AIX.
DB2 Connect Personal Edition
Fornece ao seu desktop OS/2, Linux ou Windows acesso transparente, por
conexão direta, aos dados armazenados no DB2 em servidores S/390* ou S/400*.
DB2 Connect Enterprise Edition
Estende a função Connect para plataformas UNIX e estações de trabalho cliente
em um grupo de trabalho, departamento ou em uma configuração de LAN.
DB2 Connect Unlimited Edition
É um modelo de utilização ilimitada com base nos direitos de milhões de unidades
de serviço (MSU, millions of service units) por hora do DB2 Universal Database for
OS/390.
DB2 Personal Developer's Edition
Fornece todas as ferramentas necessárias para que um desenvolvedor de
software construa ferramentas e aplicativos de negócios para produtos DB2
Personal Edition.
DB2 Universal Developer's Edition
Fornece todas as ferramentas necessárias para que um desenvolvedor de
software construa aplicativos cliente/ servidor a serem executados no DB2
Universal Database.
1. Projeto de BD-Distribuído
1a. Suporte à fragmentação
O DB2 somente suporta a fragmentação horizontal, podendo ser através de
Hash partitioning ou Partition maps.
No Hash partitioning é utilizada uma função hash que gera para cada linha
um código único, assim os dados são fragmentados de forma que a distribuição
seja balanceada.
No Partition maps a fragmentação é feita sobre os valores de determinadas
colunas.
1b. Mecanismos de replicação
A IBM fornece três produtos: DataPropagator (Produto em foco),
DataJoiner ou IMS DataPropagator.
O Data Propagator é uma ferramenta para dados relacionais e pode ser
usado entre qualquer versão do DB2. Já o DB2 DataJoiner é pode ser usado com
SGBDS de diversos fabricantes.
Componentes
O DB2 DataPropagator consiste em 3 principais componentes:
administration interfaces, change-capture mechanisms e o Apply Program.
- As interfaces de administração são usadas para criar tabelas de controle que
armazenam o critério de replicação.
- Após configurar o ambiente de replicação, o mecanismo de change-capture
captura as alterações ocorridas nas tabelas de origens através do log, e as
armazena em tabelas temporárias.
- O Apply Program lê essas tabelas e aplica as modificações as tabelas de
destino ou lê diretamente das tabelas de origem.
Tabelas de controle
São usadas para que os componentes de replicação possam se comunicar
e também para gerenciar as tarefas de replicação.
Servidores Lógicos
Todo componente de replicação reside em um servidor lógico. Existem 3
tipos:
-
Source server - Contém o change-capture mechanism, as tabelas
de origem que se desejam replicar, e as tabelas de controle que
são usadas pelo programa de captura e pelo Apply Program.
-
Target server - Contém as tabelas de destino.
-
Control server
Program.
-
Contém as tabelas de controle para o Apply
Apply Program
Inicialmente faz a leitura diretamente da tabela de origem para popular a
tabela de destino. Se for desejado que as modificações sejam copiadas o Apply
Program o faz lendo as modificações armazenadas nas tabelas temporárias.
Geralmente roda no Target Server, mas ele pode rodar em qualquer
servidor lógico.
Cada Apply Program está associado a um Control Server, que contém as
tabelas de controle com as definições das regras de replicação. As tabelas de
controle podem ser usadas por mais de uma instância do Apply Program. Por
exemplo, se você tem um Source Server e dois Targets Servers, você pode
separar os Apply Programs em cada Target Server. As duas instâncias da
aplicação podem compartilhar as tabelas de controle, que possuirá informações
específicas para cada instância.
Schedule for applying updates
A sincronização pode ser síncrona, ou assíncrona. Existem três formas de
sincronização assíncrona: Por tempo determinado, por evento ou por comando do
administrador.
Configurações de Replicação
- Data
distribution
Nesta forma de replicação a uma única tabela origem, que é
read/write, as demais tabelas destino são read-only.
- Data consolidation
Nesta configuração diversos servidores consolidam seus dados em
uma tabela destino. Neste caso podem haver conflitos.
- Update
anywhere
Neste caso tanto as tabelas de origem como as tabelas de destino
são read/write. Neste caso podem haver conflitos.
- Occasionally connected
Assim como o update anywhere todas as tabelas são read/write
porém você tem a flexibilidade de sincronizar de acordo com a demanda.
Essa configuração é recomendada para a sincronização de dados com
computadores portáteis pois não necessitam de uma conexão contínua.
Resolução de conflitos
A resolução padrão de conflito considera que se ocorre um conflito entre a
origem e o destino, a origem ganha.
É aconselhado modelar a aplicação de forma que não ocorram conflitos. Para
isso é sugerido que se utilize o update anywhere nas seguintes condições:
– Fragmentação por chave
– Fragmentação por tempo
Há a opção de ignorar os conflitos e rejeitar qualquer alteração
conflitante.
2. Controle do Ambiente Distribuído
2a. Gerenciamento de View
Não foram encontradas informações sobre esse tópico durante a pesquisa.
2b. Controle de Segurança
Pode ser especificado o tipo de autenticação.
-
SERVER O login e o password são validados no servidor do DDCS.
CLIENT O login e o password são validados no cliente do DDCS.
DCS O login e o password são validados no “host system”.
Há snapshot de tabelas com permissões e direitos dos usuários sobre os
bancos que são realizados para garantir autenticação e acesso em servidores
distribuídos.
2c. Controle de Integridade
Não foram encontradas informações sobre esse tópico durante a pesquisa.
3. Transparência
3a. Transparência de distribuição
A ferramenta DataJoiner contém a funcionalidade Distributed Database
Connection Services (DDCS), que permite aos clientes de sua LAN acessar
transparentemente dados armazenados em hosts como se estivesse utilizando
um banco de dados centralizado.
O DDCS Utiliza o padrão DRDA (Distributed Relational Database
Architecture) e possui a uma interface gráfica para o controle.
3b. Transparência de replicação
O DB2 suporta a transparência de Replicação.
3c. Transparência de fragmentação
O DB2 suporta a transparência de Fragmentação.
4. Processamento Distribuído de Consulta
4a. Suporte ao processamento distribuído de consulta
As informações dos tópicos a seguir cobrem esta parte.
4b. Tipo de otimizador de consulta utilizado
A IBM vem aperfeiçoando e melhorando há 25 anos o otimizador de
consulta, que é baseado em custo e em regras. O DB2 suporta OLAP e níveis
múltiplos de processamento de consultas em paralelo (a granularidade da
otimização caracteriza-se por suportar várias queries ao mesmo tempo).
Os planos de acesso podem ser estáticos e usados diversas vezes, e
também pode ser dinâmicos conforme a obtenção das estatísticas.
O otimizador de consultas do DB2 estima para o calculo do custo as
características do ambiente de hardware: velocidade da CPU, velocidade de I/O,
banda de rede, uso e alocação de buffer e também características do dado,
tamanho da tabela, o esquema de particionamento, indexes.
A unidade de custo é denominada “timeron”. É uma unidade de custo
abstrata, e quanto menor o valor do “timeron”, melhor e mais rápido é o resultado
obtido com o plano de acesso.
4c. Mecanismos de otimização de consulta distribuída
Os registros de estatísticas são produzidos quando o DB2 é inicializado,
interrompido, em intervalos de tempo especificados no ZPARM, quando
Performance ou Statistics traces são inicializados e quando o DB2 executa o
checkpoint.
Por padrão, o intervalo de tempo entre geração de estatísticas no DB2 é de
30 minutos, mas pode ser gerado manualmente com o comando “runstat”.
Há algumas ferramentas para uso no DB2 que permitem visualizar detalhes
do plano de acesso, como o “Explain” e até mesmo graficamente, como o “Visual
Explain”.
Exemplo do “Visual Explain” – Repare o custo medido em “timeron” e as opções monitoradas
possíveis como “Data Joiner” e “Parallelism”.
5. Processamento Distribuído de Transação
5a. Suporte ao processamento distribuído de transação
-
Localmente
“Transaction logging” (log de transação) é o processo utilizado pelo DB2
para registrar as modificações realizadas no banco-de-dados, no momento que
são realizadas. Cada vez que uma alteração é feita a uma tupla em uma tabela, os
registros que refletem a modificação são documentados para um log-buffer, que é
simplesmente uma área da memória.
No DB2, quando uma transação termina pela execução do COMMIT ou
ROLLBACK, quando um mecanismo do sistema operacional administra a
memória, ou quando o log torna-se cheio, todos os registros associados com as
transações, páginas de memória ou buffer são imediatamente escritos do log na
memória para logs em disco.
O processo de transaction logging do DB2 garante que todos os registros
de uma transação completa não serão perdidos devidos a falhas de sistemas.
Dois métodos de log de transação são oferecidos junto ao DB2: Circular e
Arquivamento. Cada um destes métodos oferece um nível de capacidade de
restauração diferente. Tão logo o banco-de-dados esteja ativado e o log de
transação ativo, o banco de dados inicia sua operação. Caso o Gerenciador do
DB2 não encontre um log para usar, ele suspenderá o processamento até que um
log torne-se disponível.
-
Distribuído
O responsável por coordenar transações entre banco-de-dados múltiplos é
o Transaction Manager em conjunto com o Transaction Processing (TP)
Monitor. Há suporte para TP Monitor de terceiros, como é o caso do monitor de
ambiente processador de transação, o TxSeries CICS. Por padrão, quando não é
especificado ferramenta a parte, o Transaction Manager usa o próprio TP Monitor
nativo do DB2.
5b. Protocolo de recuperação
O DB2 “two-phase commit” é implementado através do DB2 Connect. Além
disso, aplicações executando em servidores (por exemplo, DB2 para aplicações
MVS/ESA) usando SNA pode acionar o processo “two-phase commit” envolvendo
servidores e banco-de-dados DB2.
A garantia de integridade centralizada junto a distribuída, somada ao
protocolo Two-Phase-Commit que garante a integridade, torna o DB2 um banco
distribuído altamente confiável.
6. Suporte a acesso a dados de SGBD Heterogêneo
O DB2 roda em hardware IBM ou não-IBM, tais qual SUN e HP, com
sistemas Unix, Windows, Linux, NUMA-Q e OS/2. Também há suporte de
conectividade com sistemas de handheld Windows CE, Linux e Palm OS.
Replicação e acesso de dados entre BD heterogêneos
DataPropagator
DataPropagator é principal produto da IBM para solução em replicação. A sua
arquitetura assíncrona é baseada em três componentes principais independentes, que se
comunicam por meio de tabelas de controle de replicação.
Interface de administração - O DataJoiner Replication Administration tool
(DJRA) é usado para definir as configurações de replicação, definir um banco-dedados para replicação, registrar tabelas de origem, entre outras funções.
Mecanismo de captura de alteração - No caso do DB2 como origem da
replicação, o mecanismo captura dados alterados lendo o log de transações DB2.
No caso da origem da replicação não-IBM, triggers de captura emula a função de
captura. Os dados alterados capturados são armazenados em tabelas dedicadas
de dados alterados.
Execução - O mecanismo de execução faz a leitura dos dados alterados
nas tabelas dedicadas de dados alterados e executa a replicação no destino.
DataPropagator possibilita replicação bidirecional (Update Anywhere), somente
apenas em replicações de DB2 para DB2. Para outros banco-de-dados a replicação
bidirecional não é possível com o DataPropagator.
DataJoiner
DataJoiner é a solução gateway que possibilita acesso transparente há bancode-dados IBM ou não-IBM, relacionais ou não-relacionais. Dados heterogêneos podem
ser acessados como se fossem um banco-de-dados DB2. Usuários e aplicações de DB2
podem utilizar sintaxe SQL e API para acessar dados armazenados em origem
heterogênea. Com esta funcionalidade é possível referenciar origem de dados múltiplas
em uma única expressão SQL.
Isso mostra que o DataJoiner além de ser usado para replicação entre sistemas
heterogêneos, também pode ser usado para acesso á dados distribuídos.
A solução IBM de DataPropagator e DataJoiner é uma solução complexa, porém
suporta uma enorme variedade de SGBDs em praticamente todas as principais
plataformas e ainda oferece uma variedade de opções de configurações.
7. Bibliografia
7a. Livros
A guide to DB2
Autor: Date, C. J. – 1985
7b. Sites na Internet
DB2 Product Family - Family Overview - IBM Software
www.ibm.com/bd2/
DB2 Documentation
http://bebi.novosoft.ru/sqllib/doc/html/db2q0/frame3.htm#db2q019
http://www.pdc.kth.se/doc/SP/manuals/db2-7.1/html/db2d0/frame3.htm#db2d010
http://www.pdc.kth.se/doc/SP/manuals/db2-7.1/html/db2d0/frame3.htm#db2d005
Pearson Techonology Group - DB2 Developer's Guide
http://www.pearsonptg.com/book_detail/0,3771,0672318288,00.html
DB2 Explains Itself: A Roadmap to Faster Query Runtime
http://www.inquiry.com/techtips/db2_pro/10Min1101/gn1101-2.asp
Download