Escolar Documentos
Profissional Documentos
Cultura Documentos
OBJETIVO
Workshop PostgreSQL
Tpicos
> O DBA e o SGBD
Ambiente de Trabalho
Problemas
Soluo
PDI Pentaho
> Tcnicas
Extrao
Carga Data Staging Area
Transformao
Carga Etapa Final
Tunning do SGBD
Tunning do Modelo
Tunning da Aplicao
> Processo de Importao
Implementao
> Administrao do SGBD
Esquemas
Individual
Catlogo do Sistema
Completa
> Infraestrutura
Workshop PostgreSQL
O DBA e o SGBD
> O DBA responsvel por:
> Implementar;
> Administrar;
> Cooperar para que o desempenho do SGBD seja aceitvel.
> A SUPDE possui poucos casos de DBAs responsveis por Administrao e
Tunning de servidores de bancos de dados em ambientes produtivos.
> Entender essas matrias, mesmo que superficialmente, coopera com o
processo de implementao e a qualidade final do produto de software.
Workshop PostgreSQL
Ferramentas de apoio
Alm das ferramentas de linha de comando...
Power Architect
Shell Script
Workshop PostgreSQL
pan.sh -norep
-file=SIASG-UNIDADE-GESTORA.ktr
-log=log_15-SIASG-UNIDADE-GESTORA.txt level:basic
Workshop PostgreSQL
Tcnicas
ADABAS
Arquivos TXT
Workshop PostgreSQL
Staging
Area
Transformao
Base
Final
Tcnicas: Extrao
Arquivos de Marcao Fixa
SIDEC (DDM)
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
01100001100110011100011100011000111000011100
Workshop PostgreSQL
PDI Pentaho
Workshop PostgreSQL
PostgreSQL (DDM)
Esquema Temporrio
Workshop PostgreSQL
Tcnicas: Transformao
SIDEC (DDM)
Esquema Temporrio
CarregarBase()
Workshop PostgreSQL
atualizaSituacaoAvisoCCL()
atualizaSituacaoAvisoCSL()
atualizaSituacaoAvisoEvento()
trataResultadoCompraVencDisp()
trataResultadoCompraDescMaterial()
trataResultadoCompraDescServico()
carregaCompraOriginal()
carregaSubrogacao()
carregaVersaoCompra()
carregaAviso()
carregaAvisoCompra()
carregaAvisoEvento()
carregaEdital_ccl()
geraAnexoItemLegado()
carregaItensVersoes()
vinculaBeneficioItemLicitacao()
carregaLocalEntrega()
replicaItensParaVersaoSemItem()
atualizaQuantidadeItensVersoes()
carregaPedidoDispensaEletronica()
carregaItemPedidoDispensaEletronica()
atualizaQuantidadeItensPde()
atualizaValorTotalItemPde()
AtualizaValorTotalItemCsl()
carregaGrupoPrecoGlobal()
carregaGruposVersoes()
carregaGrupoPrecoGlobalItemLicitacao()
vinculaGrupoBeneficioTipoiii()
atualizaPesquisaMercadoConsistente()
carregaGruposVersoesIntermediarias()
...
Divulgao de Compras
Esquema Temporrio
Esquema Definitivo
CarregarBase()
Workshop PostgreSQL
Workshop PostgreSQL
PDI + SHELL
> carregar_ddm_erro.sh
> carregar_siasgnet.sh
> carregar_siasgnet_dc.sh
Workshop PostgreSQL
PSQL + SHELL
Primeiro ambiente
Servidor 1
2 CPUs
4 GB Memria.
100 GB de HD
Servidor 2
1 CPU
3 GB Memria.
350 GB de HD (disco lento)
Segundo Ambiente
Servidor 3
4 CPUs
8 GB Memria.
150 GB de HD
Workshop PostgreSQL
Padro
Customizado
Aplicao
shared_buffer
work_mem
maintenance_work_mem
wal_buffers
fsync
checkpoint_segments
autovacuum
24 MB
1 MB
16 MB
64 kb
ON
3
ON
1 GB
32 MB
100 MB
2 MB
OFF
10
ON
Workshop PostgreSQL
Compra
Carga Completa
Os ndices devem ser criados
De acordo com a evoluo do processo.
Aviso
Compra
Aviso
CSL
Verso
Evento
CCL
Verso
CSL
Item
CCL
Evento
...
Item
...
Imagem: http://www.artesnacozinha.com.br
Workshop PostgreSQL
Script
Principal
(.sh)
Gerar bloco
de instrues
Script
Auxiliar
(.sql)
...
Config.
...
...
> Segmentao de etapas
> Otimizao da execuo
> Configurao Centralizada
Workshop PostgreSQL
Executar blocos
de instrues
Begin;
Commit;
> Siasgnet
> ddm
> siasgnet_dc
Carga individual
200 compras
0,025 %
Carga completa
796.619 Compras
Workshop PostgreSQL
Workshop PostgreSQL
dbd_42010_siasgnet
Esquemas
public
ddm
Workshop PostgreSQL
siasgnet_sp
siasgnet
siasgnet_irp
siasgnet_dc
Qualquer informao do SGBD pode ser adquirida atravs do catlogo. Esses dados
podem ser importantes para automatizar e facilitar tarefas.
pg_attribute
pg_class
pg_namespace
Workshop PostgreSQL
pg_constraint
Execuo do Processo
> O processo contemplou uma janela de tempo de 3 dias (final de semana).
Tarefas envolvidas:
Workshop PostgreSQL
Execuo do Processo
Onde efetuar a execuo final?
PRODUO
2
1
Extrao
3
Servidor
Aplic. Prod.
Executar
4
Servidor
BD prod.
Executar
4
Servidor 2
(disco rpido)
6
Restore
Qware
2
3
Servidor 1
(Espao HD)
DESENVOLVIMENTO
Workshop PostgreSQL
5
Backup
Execuo do Processo
Onde efetuar a execuo final?
Ambiente de
DESENVOLVIMENTO
Ambiente de
PRODUO
SUPTI
(CTA)
SUPCD
(BSA)
38 horas
Suporte local
Total Acesso ao ambiente
Workshop PostgreSQL
30 horas
Suporte via SUPCD
Acesso:
- leitura (via aplicao)
- alteraes via solicitao / email
Execuo do Processo
Em desenvolvimento!
Ambiente de
PRODUO
SUPTI
(CTA)
SUPCD
(BSA)
BAKCUP
38 horas + 1 h (backup)
Suporte local
Total Acesso ao ambiente
17/08 18/08
Extrao
ddm
18/08/2011
Transf. Arq.
Carga ddm e dc
Workshop PostgreSQL
RESTORE
30 horas
Suporte via SUPCD
Acesso:
- leitura (via aplicao)
- alteraes via solicitao / email
19/08/2011
Fim Carga dc
Verificaes
20/08/2011
Backup
Restore
21/08/2011
Domingo
22/08/2011
Abertura
em Produo
Controle do Processo
O processo precisaria ser executado em uma determinada janela de
tempo. Isso motivou algumas questes:
> Qual o tempo para efetuar a carga completa?
> Qual o tempo para efetuar a carga de determinada etapa?
> Como podemos saber qual etapa do processo est sendo executada?
> Quais etapas j foram concludas?
> O que podemos otimizar?
GRUPO
1
1
1
1
2
3
3
3
PROCESSO
INCIO
CARGA: unidade_gestora
25/7 10:51
CARGA: compra_com_licitacao
25/7 10:52
CARGA: compra_sem_licitacao
25/7 10:58
CARGA: resultado_compra
25/7 11:18
tabela_cidades para Municipio 26/7 10:14
Compras originais
26/7 10:17
Subrogacao
26/7 11:51
Versoes das compras
26/7 11:52
...
Grupo 1: ddm
Grupo 2: siasgnet
Grupo 3: siasgnet_dc
Workshop PostgreSQL
FIM
25/7
25/7
25/7
25/7
26/7
26/7
26/7
26/7
10:52
10:58
11:18
15:07
10:14
11:51
11:51
12:14
statusCarga(...,...)
TEMPO
00:01:00
00:06:04
00:20:29
03:49:09
00:00:00
01:34:12
00:00:00
00:22:49
Nmeros ps Implantao*
Importao do legado:
796.619 compras
6.421.550 itens
Workshop PostgreSQL
Lies Aprendidas
Workshop PostgreSQL
Workshop PostgreSQL
?!