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
- Devices, Arquivos Especiais e outros padrões do Windows – https://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx
- /dev/null – http://pt.wikipedia.org/?title=/dev/null]
One response to “BACKUP TO NUL – Enviando seus backups pro além”
[…] 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. […]