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!