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]

1 thought on “BACKUP TO NUL – Enviando seus backups pro além”

  1. Pingback: É possível estimar ganho de compressão de backup? | DBCC BLOG('SQL Server')

Leave a Comment

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

Scroll to Top