Observações
Para habilitar somas de verificação de backup em uma
BACKUP
instrução (Transact-SQL), especifique aWITH CHECKSUM
opção. Para desabilitar somas de verificação de backup, especifique aWITH NO_CHECKSUM
opção. Este é o comportamento padrão, exceto para um backup compactado.
Em outras palavras, habilitar a compactação habilita somas de verificação.
Porém, nos meus planos de manutenção (infelizmente são os da GUI e não os legais do Ola), posso ver:
- "Compactação de backup (ativado)" no menu principal
- "BackupCompressionOption" definido como "On" e "Checksum" definido como "False" listado no menu de propriedades da tarefa Backup do banco de dados.
- 'Verificar integridade do backup' marcado no menu Modificar, 'Compactar backup' selecionado e 'Executar soma de verificação' desmarcado.
A questão
Isso sugere que as somas de verificação estão desativadas, mesmo que eu tenha solicitado explicitamente a compactação de backup? Ou as caixas de seleção/propriedades das somas de verificação são redundantes se a compactação estiver habilitada?
O que eu tentei
- "View T-SQL" trava o SSMS toda vez que tento.
- Falha ao encontrar o T-SQL no Query Store, embora eu o tenha habilitado em todos os bancos de dados (pesquisei
sys.query_store_query_text
)like '%backup database%'
. msdb.dbo.backupset
tem0
em todas as suashas_backup_checksums
colunas, mas não sei se a compactação torna esta coluna inútil.
Aqui está o que acho que acontece quando você combina CHECKSUM e COMPRESSION:
COMPRESSION adiciona outro nível de manipulação de soma de verificação, independente da soma de verificação do comando de backup. Na IMO, a documentação é vaga nesta área e deve esclarecer como essas coisas se interligam.
Tentei três comandos de backup diferentes:
Verifiquei se o cabeçalho do backup possui checksum (RESTORE HEADERONLY). Somente aquele obtido com a opção CHECKSUM tinha 1 para aquela coluna.
Eu tentei o comando abaixo:
Acima estava OK para o backup feito com CHECKSUM, mas para os outros dois falhou com a mensagem de erro abaixo:
Acima me indica que a única maneira de obter o tratamento da soma de verificação do comando de backup é especificando a opção CHECKSUM (ou padronizando-a usando sp_configure).
Além disso, hackeei o arquivo, alterando alguns dados aleatórios com um editor hexadecimal. Para todos os três comandos de backup, recebi o erro abaixo:
Isso me indica que o tratamento da soma de verificação da compactação é, no momento da restauração, feito antes da verificação da soma de verificação do comando de backup.
Finalmente tentei o mesmo (hackear com um editor hexadecimal) para um backup não compactado , e deu o erro abaixo para VERIFYONLY:
Ou seja, uma mensagem de erro diferente. Esta é a mensagem de erro IMO que a verificação da soma de verificação dos comandos de backup lança quando falha na verificação. Em contraste com o erro da verificação dos códigos de compressão (conforme mostrado anteriormente).
Para que conste, quando modifiquei o arquivo. Eu o modifiquei em três locais diferentes para todos os testes. Alterei o valor de um byte, salvei o arquivo, fiz uma verificação e depois mudei de volta para o original e verifiquei se o backup agora estava limpo. Em três locais diferentes nos arquivos. As mensagens de erro foram consistentes em todos os testes, portanto, é muito improvável que, em todas as 9 alterações que fiz, atingisse alguma área de metadados no arquivo de backup.
Você pode verificar a saída de cada combinação de opções usando RESTORE HEADERONLY para ver as características do backup gerado. O resultado desse comando contém a coluna
HasBackupChecksums
. Deverá confirmar que o Backup contém somas de verificação de backup quando o valor for 1.