BACKUP TO NUL – Enviando seus backups pro além


Puro void!
Puro void!

Olá,

Em vários locais (livros, blogs, etc) você pode encontrar backups que são feitos para o dispositivo NUL conforme o exemplo abaixo:

 BACKUP DATABASE [Adventureworks] TO DISK = 'NUL'

Que caminho estranho… O que é esse NUL? E o mais importante: o que aconteceu com esse backup?

A explicação curta e grossa: Você fez um backup só que não.
A explicação convencional e correta: Você acabou de fazer um backup mas jogou ele pro “nada”.

Sobre o NUL

Em poucas palavras:

– É um device bastante antigo do Sistema Operacional (device no contexto de SO em geral assume característica de arquivos especiais, então você também pode chamar NUL de arquivo) e se algo é gravado nele, o destino final é o limbo 🙂

É interessante pontuar que NUL device é equivalente ao dispositivo /dev/nul do UNIX e que é NUL e não NULL. . É um arquivo especial com nome reservado. Maiores informações nas referências do post.

Você pode confirmar que mesmo o SQL Server escrevendo no NUL, a operação de backup é realizada sem erros e é inclusive logada  nas tabelas do msdb.dbo.backupset e similares (backupfile, etc).

Qual a utilidade disto?

– Realizar benchmarking de backup (cujo alguns parâmetros são configuráveis e você pode ler sobre o assunto neste post do Edvaldo Castro), mensurar performance de leitura do mdf, etc;

– Você está testando algo que gere porém não precise de backups;

– Simular o antigo comando WITH TRUNCATE ONLY  que  foi descontinuado no SQL Server 2008 ou superior com um comportamento parecido: a maior diferença é que o backup pro limbo não quebra explicitamente a cadeia de log em teoria, já que tecnicamente o backup foi feito pelo SQL Server e entregue em algum device. Mas na prática, aquele backup enviado pro limbo furou a cadeira de log e se algum restore for realizado e precisar daquele intervalo furado, já era. E aí é reiniciar a cadeira com um backup FULL (ou Diff).

Conclusão

O uso do NUL como caminho de backup deve ser compreendido pois, como o arquivo não é persistido, não sem tem backup no final das contas. Também reforço ser de extrema importância compreender a aplicabilidade desta opção de caminho assim como suas vantagens e consequências.

[]’s


 

Referências

  1. Devices, Arquivos Especiais e outros padrões do Windows – https://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
  2. /dev/null – http://pt.wikipedia.org/?title=/dev/null]

One response to “BACKUP TO NUL – Enviando seus backups pro além”

  1. […] Mas bem, se não dá pra estimar qual será o tamanho do backup comprimido se nenhum backup foi realizado, daria certo criar um  um  backup “fake” pra obter informações na backupset? Entenda-se por backup “fake” no contexto deste post aquele backup que é realizado normalmente, logado no msdb mas nada é gravado e persistido em disco. Trata-se do backup enviado para o NUL device, assunto já comentando e que você pode conferir  neste post. […]

Leave a Reply

Your email address will not be published. Required fields are marked *