INTRODUÇÃO

No post anterior, vimos a importância de criarmos um bom plano de backup e restore para o nosso ambiente de banco de dados. Agora, vamos aprender na prática, como realizar os principais tipos de backup do banco de dados.

EXECUTANDO O BACKUP DO BANCO

Para iniciarmos os backups, primeiro precisamos do backup full, como mencionado em posts anteriores, é o backup mais importante, uma vez que é ele quem irá determinar toda a política de backup. Lembrando que sem o backup full, nenhum outro backup pode ser realizado.

Para estes exemplos de backup, irei usar os bancos ‘Adventureworks’ e ‘WideWorldImporters’  ambos podem ser baixados no site da Microsoft. Mas, nada impede que criem seus próprios bancos de dados e façam o teste em casa. 

Nota: Antes de começar, caso não tenham percebido, é possível alterar a pasta destino para onde o arquivo de backup normalmente vai. Basta clicar com o botão direito no servidor, selecionar a opção de propriedades e ‘Database Settings’. Se você for salvar os seus arquivos de backup em uma pasta que não seja a configurada, terá que dar permissão de escrita e leitura na nova pasta aos usuários e ao serviço do SQL Server dentro do Windows.

Abaixo, a opção de troca de diretório dos arquivos de backup. Quando alterar dê um restart no serviço, para evitar problemas.

CRIANDO OS ARQUIVOS DE BACKUP

O primeiro backup que vamos criar é o backup full, como mencionado, sem ele não é possível realizar nenhuma outra operação de backup. A sintaxe é bem simples

Uma situação que podemos mencionar aqui é que se o backup for criado com o NOINIT, o arquivo de backup faz um anexação de um arquivo no outro criando um set de backup para este arquivo.

Veja na imagem abaixo o resultado final quando executado dois backups full consecutivos com a opção de NOINIT:

BACKUP DIFFERENTIAL

Somente para recapitular, o backup differential é um backup que armazena todas as alterações no arquivo desde o último backup full e com isso, costumam ser menores e agilizam muito em um processo de restore.

Abaixo, a execução de um backup differential

BACKUP DE LOG

O comando de backup de log difere apenas na declaração. Devemos declarar para o comando que iremos realizar um backup de log do banco

DIVIDINDO UM ARQUIVO DE BACKUP

Essa é uma estratégia que pode ser usada quando seu arquivo de backup já está consumindo muito tempo e impactando na sua operação. Dividir o backup em múltiplos arquivos pode trazer agilidade na hora de realizar este procedimento.

Esta é uma da técnicas utilizadas para bancos muito grandes, em outro post, irei trazer outra abordagem para backups de bancos considerados ‘very-large’.

ESPELHAMENTO DE BACKUP

O espelhamento de backup é uma ferramenta interessante que garante a persistência e a redundância dos dados. Se a sua organização possui espaço suficiente para ambos, considere utilizar dessa ferramenta para não ter surpresas com perda de arquivos!

Este é um espelhamento básico mas, há outras formas de espelhar com a tecnologia de AlwaysON e High Availability. Veremos bem mais a frente!

Repare na imagem abaixo que logo após o ‘TO DISK’ passamos a cláusula ‘MIRROR TO’ e é ela quem irá espelhar. Dei um plus para criptografia de arquivos de backup!

ABAIXO, OPÇÕES PARA USAR NA CRIAÇÃO DE ARQUIVOS DE BACKUP

  • COMPRESSION – habilita a compressão de dados do arquivo de bkp. Cuidado, dependendo do ambiente pode causar um impacto no processamento;
  • DESCRIPTION – permite criar uma descrição no backup;
  • ENCRYPTION – determina se o backup será criptografado. Não se esqueça do algoritmo, certificado e DMK;
  • EXPIRATE_DATE – determina quanto tempo o backup estará bloqueado para sobrescrição;
  • RETAIN_DAYS – tempo que o backup ficará retido. Tem preferência sobre o expirate_date;
  • INIT –  quando declaramos o INIT na sintaxe de criação de bkp, este irá sobrescrever o arquivo antigo;
  • NOINIT – não sobrescreve o arquivo de backup, anexa o novo ao antigo
  • SKIP / NOSKIP – ignora a verificação de segurança do bkp onde verifica se deve ou não ser sobrescrito. Essa operação de segurança ignorada, avalia quando o backup irá expirar;
  • MIRROR TO – permite espelhar o arquivo de backup em outros discos para criar uma redundância do arquivo;
  • CHECKSUM / NO_CHECKSUM – checa se há algum erro nas pagefiles antes de realizar o backup;
  • CONTINUE_AFTER_ERROR – se houver algum erro nas page file, o backup continua da mesma forma. O padrão é STOP_ON_ERROR;
  • COPY_ONLY – determina que o backup que será realizado é apenas uma cópia sem impactar a rotina de backup;
    • não afeta differential backup
    • não faz truncate no log quando utilizamos o copy_only
    • não quebra a sequência do backup de log
    • pode ser utilizado para atualizar o ambiente de desenvolvimento sem impactar o ambiente de produção

Algumas destas opções não são utilizadas ou pouco utilizadas, nos exemplos criados aqui, coloquei apenas as que são de uso frequentes e que eu considero mais importante saber.

Assim, finalizo o post sobre os tipos mais utilizados de backup e no próximo, vamos realizar backup na plataforma Azure.

Vejo vocês lá, saúde!