Escolar Documentos
Profissional Documentos
Cultura Documentos
Pgina 1 de 10
PostgreSQL Amap
18/03/2009
Script e uma breve introduo sobre polticas de backup para o SGBD
PostgreSQL em um ambiente instvel
Filed under: PostgreSQL Tags:Backup, FTP, PostgreSQL, Shell Script dailsonaraujo @
12:05
Autor: Dailson Igo; Colaboradores: Marco Craveiro, Gustavo e Juciclia.
O link do script encontra-se aqui. Como esse meu primeiro post, acabei caindo no erro de fazer
primeiro o documento em OpenOffice e encontrei um monte de problemas. Caso queiram, podem
baixar aqui. No consegui formatar as tabelas, por isso optei por transformar em imagens.
Voc j questionou a eficincia do seu script de backup? J parou algumas horas para tentar
melhor-lo? Se deparou com alguma situao em que ele se mostrou ineficiente ou inapropriado?
Caso seu script de backup se resuma a apenas executar uma instruo do tipo pg_dump -h
127.0.0.1 -U postgres -v -o -b -i -Z9 -Fc -f NomeBackup NomeBanco, pode ser necessrio
considerar alguns pontos que podero tornar suas rotinas de backup mais completas e inteligentes.
Os pontos abaixo tratam de um script que realiza um backup full on-line para o SGBD
PostgreSQL com a finalidade suprir s necessidades do Tribunal de Justia do Estado do Amap
(TJAP) que, para atender seu principal sistema de nome Tucujuris (Sistema de Gesto Judiciria
de 1 e 2 Grau) possui um banco de dados em cada uma das 12 comarcas, um na capital (MacapAP) e os outros onze em municpios distintos.
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 2 de 10
Figura F1 Disposio geogrfica dos municpios do Amap que possuem em sua comarca o
banco de dados do Sistema Tucujuris.
Como a capital possui uma infraestrutura um pouco melhor, nela funciona o BD concentrador,
pois possui dados de todos os outros municpios. Os outros municpios possuem seus dados e
alguns outros que so comuns a todos os municpios/comarcas. A sincronizao de dados
realizada com uma replicao multi-master assncrona fornecida pela empresa dbExperts, alm de
algumas implementaes feitas pelo TJAP. Na verdade a replicao vai um pouco alm do multimaster, ela possui um esquema de rotas, mas vamos deixar isso para um momento mais
apropriado.
No foi possvel utilizar apenas um nico servidor com o PostgreSQL para atender a demanda de
todos os 12 municpios pela fato da precariedade dos links de comunicao dentro de nosso
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 3 de 10
Estado (para fora tambm igualmente precrio), onde a comunicao via satlite utilizado na
maior parte das situaes, e em uma menor quantidade, a comunicao via rdio.
Em ambas as formas de comunicao muito comum a instabilidade do link, o que poderia
ocasionar falta de comunicao por perodos de vrias semanas (como j aconteceu diversas
vezes), ou seja, vrias semanas sem comunicao, vrias semanas sem BD, vrias semanas de
trabalho sem sistema, se possvel fosse trabalhar. Como se no bastasse a concessionria de
energia eltrica tambm peca na qualidade dos servios prestados a todos os municpios, o que j
ocasionou a danificao de vrios discos e equipamentos.
Para minimizar as chances de perda e corrupo de dados, recentemente no ano de 2008 novos
servidores foram instalados com RAID 10 na capital e RAID 5 nos demais municpios. A pouco
tempo somente na capital e em Santana possuamos uma mquina que poderamos chamar de
servidor, nos outros municpios tnhamos desktops com uma modesta configurao de estao
de trabalho para atender a demanda.
O cenrio, que no veio de nenhum filme de terror (tenho minhas dvidas ;-), exige muita ateno
e cuidado na execuo dos backups, na transferncia dele e em todos os recursos possveis que
possam evitar a perda e corrupo de dados. Guardar os backups somente localmente nos
municpios arriscado porque os discos ou at mesmo o servidor pode ser danificado
permanentemente. Enviar os dados para a capital no to fcil, pois, os links so lentos e
instveis, como poderemos constatar em breve neste artigo.
Em resumo o script de backup faz o seguinte: a) realiza a cpia full on-line localmente nos
municpios; b) transferem para um servidor de backup remoto, que se encontra em Macap-AP,
via FTP; e c) geram um histrico de execuo do backup e da transferncia via FTP, registrando
os erros identificados.
Como uma rotina de backup deve estar de acordo com o ambiente, adversidade, recursos
disponveis e tipos de backups pretendidos, importante fazer alguns questionamentos e colocar
alguns pontos bastante relevantes, sendo que muitos j foram includos na poltica de backup do
TJAP. Todos os backups mencionados aqui so full e on-line, de forma que os backups e as
tranferncias so executado pela tarde e a noite em algumas situaes. O PITR utilizado mas no
ser detalhado aqui.
ORGANIZAO DOS TPICOS:
1. Orientaes Gerais
2. O Backup
3. A Transferncias Via FTP
4. O Armazenamento e Arquivamento Definitivo
1. ORIENTAES GERAIS
1.1. Voc deve possuir, seguir e verificar constantemente a execuo de sua poltica de backup.
1.2. Do que devo fazer backup?
a) Principalmente:
Das bases de produo.
Dos usurios, grupos e permisses. Algumas pessoas ignoram ou deixam muito defasados
este tipo de backup.
Dos arquivos de configurao do PostgreSQL. Outro backup ignorado.
Dos scripts de backup e monitoramento, scripts de inicializao personalizada.
Das bases de teste que esto sendo utilizadas.
E tudo mais que possa ter importncia e reduzir retrabalho para voc e para sua empresa.
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 4 de 10
1.3. No esquea que o backup faz parte de sua rotina para aumentar a disponibilidade do SGBD.
Em um grave problema de hardware, somado a ausncia de uma rotina eficiente de backup, podede ter a perda de trabalho de vrios dias ou at mesmo meses.
1.4. Se voc j passou por alguma situao de perda de dados, desorganizao, backups que
desapareceram ou no correspondem a data que apresentam, pare e reveja suas rotinas e sua
equipe em busca de melhorias. Seu emprego pode estar ameaado e no se esquea que sua
reputao profissional est constantemente sendo construda. Um erro, dependendo da gravidade,
pode ser perfeitamente contornado. Mas o mesmo erro cometido repetidas vezes pode demonstrar
falta de competncia, de compromisso e de profissionalismo. Diga no as demisses por justa
causa! Corrija e assuma seus erros;
Tabela T1 Exemplo de relatrio possvel de ser construdo com as informaes coletadas durante
o backup e sua transferncia.
Nota 1: Relatrio do backups do dia 12 de maro de 2009, quinta-feira, com nvel de compactao
Z9. Data de emisso do relatrio acima: 13/03/2009 16:41:54.
Nota 2: Algumas informaes foram omitidas ou trocadas de forma que no comprometam a
anlise.
Nota 3: As clulas em vermelho (espaos sem informao preenchida) representam a ausncia da
transferncia via FTP com xito para a capital at o dia e horrio da emisso do relatrio.
Nota 4: Vocs lembram que informamos que a comarca um que se encontra na capital, Macap,
o concentrados dos dados. Por outro lado, se voc somar o tamanho das bases de dados dos
municpio dois (Santana) at o municpio doze (Vitria do Jar), teremos o valor 19.437 MB,
acima do tamanho da capital. Isto se deve porque muitos dados, como a tabela de pessoas, so
comuns a todas as comarcas, ou seja, tem apenas uma cpia na capital que replicada para os
outros municpios. Os dados que so enviados para o concentrador so os dados que no esto na
capital.
1.5. Caso existam vrios servidores para administrar, tem alguma forma de checar se o mesmo
script se encontra em todos?
a) O mesmo script faz o backup e a tranferncia via FTP, devido a grande quantidade de variveis
e funes comuns s duas tarefas. O script tambm utilizado em todos os servidores, as
customizaes necessrias so realizadas em arquivos de configurao separados. Assim, basta
checar o MD5 do script para saber se existe alguma diferena. Uma nova alterao pode ser
realizada em um nico local e facilmente copiada via scp para todos os demais municpios, sem
a necessidade de alterar um a um para adaptar a cada servidor.
b) Como os links de comunicao esto muitas vezes indisponveis, uma alterao importante
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 5 de 10
pode ser realizada e aplicada a maioria dos servidores, e, aps o restabelecimento do link, que
pode levar vrios dias, o servidor correspondente pode ter seu script esquecido de ser atualizado.
1.6. Voc deve tentar automatizar o mximo possvel para minimizar a necessidade de interveno
humana, que deve ficar, sempre que possvel, mais dedicada ao monitoramento e busca contnua
de melhorias. Trabalhos repetitivos so para mquinas, na maioria das vezes.
1.7. Os nveis de backup que o SGBD fornece esto sendo considerados e aproveitados?
a) Conhecer os tipos de backup que seu SGBD oferece ir permitir uma maior consistncia na
elaborao de sua poltica. Voc deve ser capaz de planejar quantas vezes e quais horrios o
backup full dever ser executado. Se necessrio ou no ativar o PITR. Em quanto tempo os logs
de transao sero enviados para uma outra unidade.
b) Voc poder utilizar outras ferramentas, como as disponveis no SO para gerar um backup
incremental e diferencial a partir de vrios backups full para facilitar o armazenamento. Voc pode
utilizar algo como o diff e o patch. Tome cuidado porque esse tipo de backup mais frgil e
trabalhoso. Frgil porque s se?a possvel restaurar at o ponto anterior a um patch com problema,
pois, um patch problemtico cria um efeito domin, invalidando todos os arquivos de patch
criados posteriormente ao mesmo. Trabalhoso porque voc ter de fazer manualmente ou por um
script personalizado para esta finalidade, portanto, deve dominar e testar qualquer soluo
adotada.
c) Cuidado na hora de agendar as transferncias para que o servidor de arquivamento dos backups
no fique congestionado devido ao recebimento de dados de vrios servidores ao mesmo tempo.
1.8. Alguns pontos aqui apresentados podem ser supridos pelo pgAdmin, mas com um scripts
voc no necessita da instalao de nenhum outro mdulo, alm de ter muito mais flexibilidade.
1.9. Observe com cuidado o material que voc est consultado, pois, o script e as instrues aqui
apresentado, assim como qualquer outro material na internet, no est isento de erros. Contamos
com a sua colaborao e suas crticas para melhorar e corrigir qualuqer tipo de problema.
2. O BACKUP
2.1. Todos os backups realizados durante o ms de novembro de 2008 foram realizados com
sucesso?
a) Existem vrios fatores que podem impedir a execuo do backup, tais como hardware com
problema, falta de espao, falta de energia, interrupo via kill de uma rotina de backup em
horrio inapropriado que acabou comprometendo significativamente a carga do sistema, entre
outros. O mais importante possuir uma ou vrias formas de fazer essa verificao o mais fcil
possvel. Descobrir somente quando for necessrio restaurar um backup que o mesmo foi
interrompido, no o momento mais apropriado.
b) Adotou-se guardar os logs da execuo dos backups e das transferncias via FTP em arquivos
csv, alm de alimentar tabelas no banco de dados com as mesmas informaes. As tabelas so
replicadas para a capital, assim, no lugar de sair fazendo SSH em 12 municpios, consultamos
duas tabelas para verificar se tudo ocorreu perfeitamente. Isso facilitou imensamente a verificao
do backup.
2.2. Qual foi o crescimento mdio mensal da minha principal base de dados no ltimo ano? Qual o
banco de dados que mais cresceu? Algum possuiu alguma reduo anormal de tamanho?
a) Manter um histrico da execuo do backup importante por vrios motivos como:
Informaes para projeo de crescimento que sustentem o dimensionamento do hardware
de armazenamento atual;
Identificao de redues anormais do tamanho da base que podem ter sido ocasionadas por
excluso do histrico, alterao de estrutura e normalizao dos dados; Vacuum que
estavam por algum motivo desligados ou no sendo realizados durante vrios meses,
excluso acidental ou criminal de um grande volume de dados, entre outros.
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 6 de 10
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 7 de 10
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 8 de 10
b) Sabendo o tempo de transmisso e o volume de crescimento da base voc poder prever, por
exemplo, que daqui a uma ano e meio sero necessrias 6 horas para transferir m nico arquivo de
backup.
Tabela T2 Resumo com incio e mdia de tempo para a transferncia do arquivo de backup via
FTP, realizada dia 13/03/2009.
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 9 de 10
http://postgresqlnoamapa.wordpress.com/
13/04/2011
PostgreSQL Amap
Pgina 10 de 10
Pginas:
About
Blogroll
Blog no WordPress.com.
Blog no WordPress.com.
Categorias:
PostgreSQL
Pesquisar:
Procurar
Arquivos:
maro 2009
Meta:
Registrar-se
Login
RSS
RSS dos comentrios
XHTML Vlido
XFN
Blog no WordPress.com.
Theme: Silver is the New Black. Blog no WordPress.com.
http://postgresqlnoamapa.wordpress.com/
13/04/2011