SQLServer: Conceitos de Backup
- Siltech Consult
- 7 de out. de 2019
- 3 min de leitura
Para tirar algumas dúvidas de amigos/clientes sobre backup em SQL Server resolvi escrever este post. O foco aqui será BACKUP em bancos SQL Server. MOVE de informações, RESTORE e outras técnicas serão discutidas em outra ocasião.
Antes de começarmos a falar sobre os tipos de backup do SQL Server, preciso explicar sobre um parametro que de certa forma irá influenciar o banco de dados envolvido chamado RECOVERY MODEL.
O Recovery Model no SQL Server é usado para a manutenção do controle de transaction logs do banco. É configurado individualmente para CADA database presente na Instance gerenciada. Pode ter os seguintes valores: Simple, Bulk-insert e Full. As diferenças são explicadas à seguir:
* Recovery Model configurado como Simple: Não é necessário fazer backup e gerenciamento dos Logs. Automaticamente ele faz o gerenciamento do espaço na área de log eliminando o que pode ser descartado desta área quando for necessário. Desvantagem: Em caso de falha no servidor e necessidade de restauração de um backup todas as alterações posteriores à realização do backup serão perdidas.
* Recovery Model configurado como Full: Tem que fazer backup dos Logs. E possível até realizar um restore ‘point-in-time’ ou seja, pegar o último backup full e restaurar usando os logs até minutos antes da falha. Desvantagem: Se não for bem gerenciado o arquivo de LOG vai crescer podendo ficar bem maior do que o arquivo de dados.
* Recovery Model configurado como Bulk-Insert. Usado somente em casos específicos. Quando configurado desta forma basicamente o banco age como SIMPLE para INSERTs ‘em massa’, por exemplo BCP, INSERT as SELECT dentre outros, porém, para demais operações age como um banco no modo Full.
Blz. Agora vamos aos tipos de backup. Podemos fazer um backup do banco TODO, de partes do mesmo ou de alguns arquivos específicos. Para todas estas opções, podemos ter um backup do tipo FULL e do tipo Diferencial:
* Backup Full: Um backup full contém TODOS os dados do Banco ou dos Arquivos que estão sendo copiados incluindo o LOG necessário para em uma recuperação voltar os dados íntegros.
* Backup Diferencial: Um backup diferencial contém TODAS as alterações dos dados do banco ou dos Arquivos que estão sendo backupeados DESDE o último Backup FULL. Portanto, se o mesmo for executado logo após o backup Full o tamanho do mesmo será pequeno. Quanto mais distante este backup do último backup Full maior será o tamanho do diferencial.
Estes tipos de backup são funcionais tanto para bancos no modo FULL , Bulk-Insert ou SIMPLE. Porém, quando o banco está no MODO FULL ou BULK-INSERT deve-se realizar também o backup do LOG. Enquanto que no modo SIMPLE na medida que o LOG não é mais necessário para controle de transações é descartado e o espaço e liberado novamente para uso, nos modos Full e Bulk-Insert devido à possibilidade de recover point-in-time o LOG não é descartado automaticamente. Na realidade para liberar este espaço deve-se configurar o backup do LOG para que o banco continue tendo a capacidade de recuperação total.
Resumindo:
* Se o banco exige um restore point-in-time, sem perda de informações, nem dias de trabalho, deve-se configurá-lo com RECOVERY MODEL FULL, com backup Full diário e backup dos logs em intervalos pequenos (a cada 15 ou 30 minutos dependendo da política de backup de cada empresa).
* Se o banco pode ser restaurado à partir do último backup Full apenas e não há tanto a necessidade de recuperar as informações até o último minuto, então pode-se configurá-lo com RECOVERY MODEL SIMPLE e backup Full Diário.
* Em ambos os casos, pode-se configurar um backup diferencial à cada 3 horas, por exemplo. Lembrando que, ao longo do dia o tamanho dos backups diferenciais vão aumentando em função que o mesmo se baseia no último backup Full.
* Banco com Recovery Model FULL sem realização de backups de LOG em pequenos intervalos não tem muita justificativa pois em caso de perda dos dados os recursos usados para geração e controle dos logs não são reaproveitados.
Duvidas ? silverio@siltechconsult.com.br

Comentários