Entendendo o impacto / risco de desativar "verificar a integridade do backup" no backup SQL

12

Atualmente, usamos planos de manutenção padrão para backups nos servidores SQL Server 2005/2008 / 2008R2 / 2012 em nosso ambiente, e a caixa "Verificar integridade do backup" sempre foi marcada.

Alguns dos backups são executados por muito tempo, então eu recomendo desativar essa opção, mas o gerenciamento precisa que eu documente o impacto e os riscos dessa alteração.

Eu entendo o uso ea história desta opção, apenas parece desnecessário me dobrar o tempo para a tarefa de backup quando (na minha opinião), qualquer erro que é provável de ocorrer ocorreria durante o backup de etapa, e não durante a verificar.

Estou errado? É um risco mínimo desativar isso, se eu estiver fazendo backup em disco e não para transmitir fita ou algo assim? (Fazemos backup pela rede em um dispositivo de backup EMC DD-800, se isso for relevante.)

Existem recomendações oficiais dos Estados-Membros para quando é seguro desativar isso?

Você executa "verificar" em todos os backups do seu ambiente? Você os verifica no local?

EDIT : Para esclarecer, quando você verifica "verificar a integridade do backup" no plano de manutenção, o SQL fará um RESTORE VERIFYONLY completo em cada banco de dados imediatamente após cada backup. É tão intensivo em dados / E / S quanto no backup original e (basicamente) dobra o tempo total da tarefa de backup. Isso não é o mesmo que ativar a opção "soma de verificação" no backup (o que não pode ser feito no assistente, pelo que sei).

BradC
fonte
Obrigado a todos. Adicionando mais um link para minha própria referência, sobre o uso de um sinalizador de rastreamento para ativar a soma de verificação em backups, mesmo ao usar planos de Manutenção SQL: nebraskasql.blogspot.com/2014/03/...
BradC

Respostas:

5

Estou errado? É um risco mínimo desativar isso, se eu estiver fazendo backup em disco e não para transmitir fita ou algo assim?

Não, você está certo :-)

RESTORE VERIFYONLYsomente não garantirá que você será capaz de recuperar seu banco de dados em caso de corrupção. Por natureza, ele não realiza nenhuma verificação de integridade.

Uma maneira melhor será fazer periodicamente seus backups e fazer uma restauração válida em um servidor diferente e executar o DBCC CHECKDB nele.

Esse é um dos motivos pelos quais não sou um grande fã de planos de manutenção, pois a GUI não expõe muitas opções como backup .. with CHECKSUMessas que podem ser obtidas pelo T-SQL.

Do blog de Paul Randal's Myth

24p) usando RESTORE… WITH VERIFYONLY valida todo o backup

Não. O uso de VERIFYONLY apenas valida o cabeçalho de backup semelhante a um cabeçalho de backup. É somente quando você faz o backup usando WITH CHECKSUM e restaura ... WITH VERIFYONLY e usando WITH CHECKSUM é que a restauração faz verificações mais extensas, incluindo a soma de verificação em todo o backup.

Você executa "verificar" em todos os backups do seu ambiente? Você os verifica no local?

Eu não corro o VERIFYONLY. Em vez disso, pego o backup com o CHECKSUM e os restauro + com o CHECKDB em outro servidor. Você pode seguir Amostragem estatística para verificar backups do banco de dados abordagem se quiser ser criativo.

Isso não é o mesmo que ativar a opção "soma de verificação" no backup (o que não pode ser feito no assistente, pelo que sei).

Você pode ativar o Sinalizador de rastreamento 3023 para que a CHECKSUMopção seja ativada automaticamente para o comando BACKUP. Como sempre, teste o comportamento de qualquer sinalizador de rastreamento em seu ambiente!

A linha inferior é - abandonar os planos de manutenção e usar uma solução de backup mais sensata (dica: solução de backup da Ola) que permitirá que você a personalize com base em suas necessidades.

(Fazemos backup pela rede em um dispositivo de backup EMC DD-800, se isso for relevante.)

Faça backup localmente no disco e faça um trabalho de transferência do PowerShell que copie o backup localmente do servidor para um compartilhamento de rede (servidor de backup). Isso será mais rápido do que copiar diretamente para um compartilhamento de rede.

Além disso, ative a inicialização instantânea de arquivos, que ajudará no crescimento automático de arquivos de dados e reduzirá o tempo de restauração (caso você precise restaurar seus bancos de dados). É sempre bom ter opções à mão.

Uma boa leitura será: Backups: Planejando uma estratégia de recuperação

Kin Shah
fonte
Obrigado pela sua resposta detalhada. Acho que posso recomendar a ativação da soma de verificação no backup, que deve capturar uma porcentagem um pouco maior de erros durante a etapa de backup e, esperançosamente, compensar o risco (muito leve) maior de ignorar o BACKUP VERIFYONLY. Entendo o que você está recomendando em relação a restaurações regulares em um servidor diferente, mas devido ao tamanho do nosso ambiente, isso não parece plausível, exceto talvez em uma base de amostragem.
BradC
@BradC Fico feliz que minha resposta seja útil para você. A essência da minha resposta é usar TSQLem oposição a GUI(planos de manutenção) para que você possa aproveitar a flexibilidade e adaptá-la com as mãos abertas. Assim como um FYI .., os planos de manutenção foram aprimorados no SQL Server 2016, CTP 2.4que a MS chama de Planos de Manutenção Inteligente do SQL Server - integra práticas recomendadas e pode identificar estratégias ideais em tempo real. Ainda sem GUI pode bater TSQL :-)
Kin Shah
Obrigado @Kin. Estou familiarizado com a abordagem de script totalmente personalizada de outros ambientes, obviamente que pode ter seus próprios problemas com erros e manutenção de scripts. Estamos avaliando alguns agentes de compactação de terceiros, portanto provavelmente precisaremos de scripts personalizados.
BradC
2

O ponto principal é que, a menos que você faça uma restauração do banco de dados em algum lugar, não poderá ter certeza absoluta de que um determinado arquivo de backup é bom.

O teste ideal para verificar seus backups é configurar um ambiente em que os backups do banco de dados e os backups do log do banco de dados sejam restaurados o tempo todo, como parte do processo do dia-a-dia. Essa é uma das vantagens de usar o envio de logs ...

Se você ainda deseja continuar com a verificação apenas, pode configurar um ambiente especificamente apenas para fazer isso. Isso descarregaria o trabalho do seu servidor de produção (presumivelmente) e reduziria o tempo de trabalho.

Por fim, você considerou se afastar dos planos de manutenção? Scripts como os scripts de Ola são exceto para backups e manutenção: https://ola.hallengren.com/

Peter Schofield
fonte
Podemos nos afastar dos planos de manutenção no futuro, pois estamos avaliando alguns agentes de backup de terceiros (criados para funcionar com nosso dispositivo de backup específico). Estou assumindo que isso exigirá scripts personalizados, semelhantes ao que Ola desenvolveu.
BradC
1

Tecnicamente, a restauração é como executar uma restauração, no entanto, não há melhor verificação do que realmente restaurar o banco de dados para verificar se é um backup válido. Tivemos uma instância em que a verificação só passou, mas o banco de dados não foi restaurado devido a corrupção, o que quero dizer é que não conte com isso como verificação, pois o backup está correto. Agora, desenvolvemos um sistema que restaura todos os nossos bancos de dados em uma instância separada para verificar sua validade. Claramente, isso nem sempre é possível, então experimente amostrar determinados bancos de dados por semana. O longo e o curto não confiam na verificação apenas 100%.

Gelder
fonte
É verdade, mas não tenho certeza se isso realmente responde à minha pergunta, pois recomendo desativar o RESTORE VERIFYONLY em nosso ambiente. A menos que seu argumento seja: "como apenas uma restauração completa real provará que o backup é viável, desativar essa opção não aumenta consideravelmente o risco".
BradC
Correcta, o único verdadeiro cheque imo é a realmente executar uma restauração de verdade
Gelder