Quebrando o seu backup em ‘n’ arquivos

Participar dos grupos do Whatsapp tem muita coisa ruim (haja treta, gifs, imagens, piadas e etc para suportar), mas tem várias coisas bem boas também. E uma delas diz respeito ao aprendizado diário que a comunidade te proporciona, se você estiver inserido no grupo certo.

Em um dos grupos do WhatsApp que eu participo, surgiu a seguinte pergunta (há um bom tempo, mas só agora resolvi escrever a respeito):

“Alguém poderia me ajudar com script para compactar o backup assim que concluir o bak, usando o 7zip, winrar ou zip?”

Pela pergunta, de imediato, já imaginei que ele estava usando o SQL 2000 ou 2005 e não poderia usar a opção COMPRESSION do backup e sugeri usar o xp_cmdshell (IMHO, uma solução usando powershell e/ou o task scheduler seria muito melhor, mas como nem todo mundo sabe usar ele – apesar de precisar saber – optei pelo xp_cmdshell e seus perigos intrínsecos).

Até que o Edvaldo Castro citou a opção do COMPRESSION e a resposta foi: Já está usando.
Aí você se pergunta: Mas se ele já usa, qual seria o motivo para querer tentar compactar ainda mais o arquivo?
Explico: Ele precisava, também, quebrar esse backup em “N” pedaços, para poder enviar para um outro local e tentar garantir que a transferência não deixe o todo arquivo corrompido, tendo que refazer todo o processo.
Como a compactação já estava sendo realizada, deixar o servidor responsável por mais essa etapa, vai apenas consumir CPU e não vai ter ganho.
Após algumas sugestões, o Edvaldo, novamente, veio com a mágica:

Isso faz com que o SQL realize essa quebra do arquivo em “N” pedaços, já realizando a compactação, removendo a necessidade de realizar os procedimentos extras.
E o restore?

Vejam um exemplo:

Agora, os scripts de backup:

Claro, desta forma, você precisa pré-determinar em quantos arquivos deseja quebrar, mas nada te impede de desenvolver algo que faça esse cálculo e usar isso dinamicamente, caso precise.

Apenas como curiosidade, veja como ficaram os arquivos, com e sem compactação

Como sempre falo, de todas as comunidades que eu já participei, a de SQL Server é a que mais me surpreende, por manter esse espírito de colaboração de forma tão orgânica e natural, que o estranho hoje – para mim – é a pessoa que não faz parte desse mundo.

Vamos participar também?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.