O SQL Server possui vários tipos de backup. Os principais são Log, full e diferencial. Cada um desses possui uma maneira peculiar no momento de realizar o backup, mas ao mesmo tempo são bem parecidos.
Por que devemos realizar backups?
Bem, essa pergunta é bem simples de ser respondida. A realização de um backup é um método preventivo onde você se precaver a futuros desastre. É através dele que você salva copias de arquivos, bases e etc. Se você estiver trabalhando com um arquivo contendo um banco de dados, e por algum motivo esse arquivo corromper, toda a informação dentro dele estaria perdida se você não tiver um backup dele salva em um lugar seguro. É muito importe que você fique atento, pois em bancos que você trabalha diariamente, seria ábio programar backups diariamente ou de acordo com a demanda do negócio em que você trabalha.
Quais são os tipos de backup?
Bom nesse artigo nós vamos falar de 3 tipos: Full, Log e Diferencial. Eu vou mostrar na prática como realizar cada um deles mostrando passo a passo.
Entenda o que alguns dos comandos das sintaxes utilizadas nesses exemples faz:
INIT/NOINIT -> Define se o arquivo será sobre escrito;
COMPRESSION -> Como o próprio nome sugere ele faz a compressão dos arquivos;
STATS = 5 -> Informa o progresso do backup a cada 5% de execução;
CHECKSUM -> Esse comando é supereficiente. Ele ajuda a encontrar problemas de corrupção mais rapidamente.
Vamos começar com o...
Backup Full
Caracteristicas:
Salva todas as páginas de um BD;
Salva o log das transações ativas durante o backup.
Backup Diferencial
Ele trabalha em conjunto com o Full. Ele faz o backup desde o momento em que o último backup full foi feito. Repare na imagem abaixo, que diferente do full o comando INIT é substituído pelo DIFFERENTIAL, fique atento a esse detalhe.
Caracteristicas:
Só é possível executar se existir um backup full;
Salva as páginas de dados alteradas desde o último backup full;
Ele é acumulativo. Independente de quantos você executar o último backup diff sempre terá os dados do último full.
Backup Log
O arquivo LDF é dividido em vários setores chamados de VLF (Virtual log file). À medida que você vai fazendo INSERT, UPDATE E DELETE, esses VLF vão sendo preenchidos. Quando você fizer o backup do log, o SQL vai pegas todos os registros/entradas do arquivo de log, salvá-los em backup e então o arquivo de log é truncado. Porém se algum arquivo do log estiver sendo utilizado, esse não receberá o backup. No backup do log também existe uma diferença na sintaxe em relação aos outros tipos. Na primeira linha o comando DATABASE é substituído por LOG
Algumas características
Cada insert, update e delete realizado na base é armazenado no log na sequência;
Com o banco sendo utilizado o log vai crescendo até que seja realizado um backup do log para salvar o log das transações já concluídas;
Obrigatória para o recovery models full e Bulk logged;
Resultado
Após os backups serem realizado eles serão encaminhados para a pasta que você selecionou no seu script. Uma boa prática é nunca deixar esses arquivos em um mesmo disco. Essa demonstração só está sendo realizada assim pois eu não tenho um outro disco aqui no momento. Observe na imagem abaixo:
Conclusão
Existe outra maneira de se realizar os backups que é através de caminhos já prontos, onde você só vai digitar as informações sem a necessidade de gerar os scripts, diferente da forma que foi utilizado em nossos exemplos. Outros pontos acompanham esse processo de backup, como um plano de manutenção, alertas de log e o restore desses backups. O intuito desse artigo foi apenas de mostrar o ponta pé inicial desses processos.