Este artigo é parte de uma série de dez aulas sobre conceitos de administração do DB2 em ambiente UNIX, conhecido oficialmente como DB2 LUW.
Ainda falando sobre armazenamento e prevenção de perda de dados, este artigo trata dos backups.
Recomendo ao leitor interessado em acompanhar o curso que acesse o portal do DB2 para abaixar uma cópia do DB2 Express-C, edição gratuita do produto, ou então para obter instruções de como acessar e configurar uma instalação do DB2 rodando na nuvem. Para mais detalhes, clique aqui.
AULA 3 – Backups do DB2
Fazer backups dos bancos de dados é talvez a atividade mais comum de um DBA. Não é para menos. Gerar arquivos de backup (e testar a integridade desta cópia) é a forma mais eficiente das empresas se prevenirem contra a perda de dados e, consequentemente, de prejuízos para o seu negócio.
O DB2 oferece vários tipos de backup para que se possa definir a política de backup mais adequada para cada empresa. Isto quer dizer: a melhor combinação de tipos de backup para minimizar o risco de perda de dados e ao mesmo tempo maximizar a disponibilidade do banco de dados.
A seguir, os tipos de backup do DB2 e uma breve descrição de cada um deles.
- Backup Completo (também conhecido como backup Offline ou backup Full): este tipo de backup gera uma imagem da base, isto é, ele faz uma cópia das páginas de dados. O backup completo é feito com BD fora do ar, ou seja, com a aplicação parada. Todo processo de restauração se inicia com um backup completo (que pode ser seguido de quantos outros tipos de backup se desejar).
- Backup Online: faz uma cópia dos logs de transações que ocorreram no banco desde o último backup completo. Isso quer dizer que ele faz cópia só das alterações aplicadas ao banco. Tem este nome porque o backup é feito com a base no ar. Esta opção de backup só fica disponível mediante algumas alterações na configuração do banco de dados (descritas a seguir).
- Backup Incremental Cumulativo (também chamado de backup online incremental cumulativo ou simplesmente backup cumulativo): copia apenas as páginas de dados que foram alteradas no período. É adequado para ambientes em que ocorrem poucas modificações na base de dados. Na prática, este também é um backup online, porque a operação é realizada mesmo que haja conexões no banco de dados
- Backup Incremental Delta (conhecido também como backup online incremental delta ou simplesmente backup delta): a diferença do backup incremental delta é que ele copia as páginas de dados alteradas desde o último backup, seja ele qual for. O backup delta só pode ser restaurado depois que todos os outros tipos de backup executados antes dele sejam também restaurados. Se qualquer um dos backups anteriores estiver corrompido (mesmo que seja outro backup delta), os backups delta subsequentes não serão restaurados.
Entendendo os tipos de backup
Para ilustrar os tipos de backup, vamos imaginar três empresas que trabalham com políticas de backup ligeiramente diferentes. A empresa A faz semanalmente um backup completo do banco de dados aos domingos e de segunda a sábado faz backups online diariamente.
A empresa B tem uma base que sofre poucas alterações durante a semana. Então ela optou por fazer backups completos da base de dados todos os domingos e nos demais dias da semana faz backups incrementais cumulativos.
A empresa C possui um banco de dados grande, mas esta base também sofre poucas alterações durante a semana. Para gastar menos tempo com os backups diários, ela adotou a política de fazer backups completos aos domingos, mas de segunda a sábado faz backups incrementais delta diariamente.
Observação: os tamanhos e cores de cada tipo de backup simbolizam as proporções entre os tamanhos esperados para cada arquivo de backup. (Cabe aqui uma ressalva: os backups incrementais cumulativos são representados todos com o mesmo tamanho, mas evidentemente eles irão aumentar a cada dia, uma vez que são cumulativos).
Executando os diferentes tipos de backup
A seguir, os comandos do DB2 e cuidados que devem ser tomados para execução de cada tipo de backup.
- Backup completo:
- Backup online:
- Backup incremental cumulativo:
- Backup incremental delta:
Exemplos de uso e solução de problemas
Problema 1
É uma boa ideia fazer um backup full durante o horário comercial ?
Solução: Obviamente não. Backup full é o backup completo, que só é feito com a base de dados fora do ar. Portanto, salvo casos muito especiais, não é inteligente tirar a aplicação do ar para se fazer backup de banco neste horário. Melhor usar um backup delta, por exemplo.
Problema 2
Estou tentando fazer um backup completo, mas recebo a mensagem de erro SQL1035N. O que devo fazer?
Solução: São Google serve para este tipo de coisa! Esta mensagem de erro informa que existem conexões no banco de dados, o que impede a execução de um backup completo. Para resolver isso, é preciso se conectar ao banco como administrador e bloquear todas as conexões antes de executar o backup.
db2 –v connect to Nome_Do_BD
db2 –v quiesce db immediate force connections
db2 –v terminate
Problema 3
Um colega propôs uma estratégia de backup de usar backups incrementais delta e 1 backup completo semanal. Para economizar espaço, eu posso apagar os backups incrementais de segunda e terça? Por quê?
Solução: Não pode apagar, porque backups delta tem apenas a imagem das páginas que mudaram desde o último backup, seja ele qual for. Então é preciso manter a sequência de backups delta que foram feitos desde o backup completo.
Alternativa aqui é mudar de backups delta para backups cumulativos. Aí sim os backups cumulativos dos dias anteriores podem ser excluídos logo após a criação do novo backup cumulativo.
Referências
O leitor interessado encontrará informações mais detalhadas nas seguintes referências.
- DBA 101: administrando estruturas de dados do DB2: http://www.ibm.com/developerworks/br/local/data/dba_101_administrando_estruturas_dados_db2/index.html
- DB2 Essential Training I: http://bigdatauniversity.com/courses/course/view.php?id=121
- DB2 Essential Training II: http://bigdatauniversity.com/courses/course/view.php?id=243
- DB2 Academic Training – 302A Exam preparation: http://bigdatauniversity.com/courses/course/view.php?id=272
- DB2 9.5 Backup and Recovery: Basics: http://www.channeldb2.com/group/db2UDBstudyDOC/forum/topics/difference-between-full-online
- Using DB2 Incremental Backup: http://www.ibm.com/developerworks/data/library/techarticle/dm-0910db2incrementalbackup/
Logo tem mais. Até lá!