Detectando e lidando com erros de mídia durante backup e restauração

O Microsoft SQL Server 2005 e versões posteriores oferecem a opção de recuperar um banco de dados apesar dos erros detectados. Um novo mecanismo de detecção de erros importante é a criação opcional de uma soma de verificação do backup que pode ser criada por uma operação de backup e validada por uma operação de restauração . Você pode controlar se uma operação verifica os erros e se a operação é interrompida ou continua ao encontrar um erro. Se um backup contiver uma soma de verificação de backup, as instruções RESTORE e RESTORE VERIFYONLY poderão verificar os erros.

ObservaçãoObservação

Backups espelhados fornecem até quatro cópias (espelhos) de um conjunto de mídia, fornecendo cópias alternativas para a recuperação de erros causados por mídias danificadas. Para obter mais informações, consulte Usando conjuntos de mídia de backup espelhado.

Somas de verificação durante BACKUP

O SQL Server dá suporte a três tipos de somas de verificação: uma soma de verificação nas páginas, uma soma de verificação nos blocos de log e uma soma de verificação de backup. Ao gerar uma soma de verificação de backup, o BACKUP verifica se a leitura de dados do banco de dados é consistente com qualquer soma de verificação ou indicação da página interrompida que estejam presentes no banco de dados.

A instrução BACKUP computa opcionalmente uma soma de verificação de backup no fluxo de backup; se a soma de verificação de página ou as informações da página interrompida estiverem presentes em uma determinada página, ao fazer o backup da página, o BACKUP também verifica a soma de verificação, o estado da página interrompida e a ID da página, na página. Ao criar uma soma de verificação de backup, uma operação de backup não acrescenta nenhuma soma de verificação às páginas. O backup das páginas é feito enquanto as mesmas existirem no banco de dados, e as páginas não são alteradas pelo backup. Devido a verificação de sobrecarga e a geração de soma de verificação de backup, usar somas de verificação de backup representa um possível impacto de desempenho. A carga de trabalho e a taxa de transferência de backup podem ser afetadas. Por isso, usar somas de verificação de backup é opcional. Ao decidir gerar somas de verificação durante um backup, monitore cuidadosamente a sobrecarga gerada da CPU, assim como o impacto em qualquer carga de trabalho simultânea no sistema.

ObservaçãoObservação

O BACKUP nunca modifica a página de fonte em disco nem os conteúdos de uma página.

As opções de BACKUP a seguir controlam o comportamento de soma de verificação de backup:

  • CHECKSUM

    Solicita que a operação de backup verifique cada página para soma de verificação e página interrompida, se estiver habilitado e disponível, e também gera uma soma de verificação para o backup inteiro.

    Se a verificação de soma de verificação for solicitada durante uma operação de backup:

    • Antes de gravar uma página na mídia de backup, o BACKUP verifica a informação do nível de página (soma de verificação de página ou detecção de página interrompida) , ou se ela existe. Se nenhuma estiver presente, o backup não poderá verificar a página; a página é incluída como está, e os conteúdos são acrescentados à soma de verificação de backup geral.

      ObservaçãoObservação

      Para obter mais informações sobre somas de verificação de página e detecção de página interrompida, consulte a opção de PAGE_VERIFY da instrução ALTER DATABASE. Para obter mais informações, consulte ALTER DATABASE (Transact-SQL).

    • Para uso opcional na hora da restauração, o backup gera uma soma de verificação separada (uma soma de verificação de backup). E o backup registra isso na mídia de backup, sem considerar se as somas de verificação de página estão presentes.

    • O conjunto de backup é sinalizado como contendo somas de verificação de backup (na coluna de has_backup_checksums de msdb..backupset). Para obter mais informações, consulte backupset (Transact-SQL).

    ObservaçãoObservação

    As somas de verificação de backup são geradas e verificadas para os backups de log.

  • NO_CHECKSUM

    Desabilita explicitamente a validação de página e a geração de somas de verificação de backup. (Esse é o comportamento padrão.)

Controlando a resposta a um erro

Quando CHECKSUMS é especificado, se o BACKUP encontrar um erro de página durante a verificação, o backup falhará. As opções de BACKUP seguintes controlam este comportamento:

  • CONTINUE_AFTER_ERROR

    Instrui ao BACKUP para continuar apesar de encontrar uma soma de verificação de backup inválida. Neste caso, BACKUP:

    Sinaliza o conjunto de backup na mídia de backup como contendo erros e localiza a página na tabelasuspect_pages no banco de dados msdb. Para obter mais informações, consulte suspect_pages (Transact-SQL).

    • Faz o log do erro no log de erros do SQL Server.

    • Marca o conjunto de backup como contendo esse tipo de erro (na coluna is_damaged de msdb.backupset). Para obter mais informações, consulte backupset (Transact-SQL).

    • Emite uma mensagem que o backup foi gerado com sucesso, mas contém erros de página.

  • STOP_ON_ERROR

    Instrui BACKUP para falhar se uma soma de verificação não estiver correta. (Esse é o comportamento padrão.)

Somas de verificação durante RESTORE e RESTORE VERIFYONLY

Se as somas de verificação de backup estiverem presentes na mídia de backup, por padrão, ambas as operações RESTORE e RESTORE VERIFYONLY verificarão as somas de verificação de backup e somas de verificação de página. Se não houver nenhuma soma de verificação de backup, cada operação de restauração prossegue sem qualquer verificação; porque sem uma soma de verificação de backup a restauração não pode verificar somas de verificação da página de modo confiável.

Duas opções, CHECKSUM e NO_CHECKSUM, permitem modificar como RESTORE e RESTORE VERIFYONLY controlarão a verificação de soma de verificação, como os seguintes:

  • CHECKSUM

    Se você solicitar CHECKSUM explicitamente para uma operação de restauração e se o backup contiver somas de verificação de backup, as somas de verificação de backup e as somas de verificação de página serão ambas verificadas, como no caso padrão. Porém, se o conjunto de backup não tiver as somas de verificação de backup, a operação de restauração falha com uma mensagem indicando que as somas de verificação não estão presentes.

  • NO_CHECKSUM

    Desabilita explicitamente a validação padrão de qualquer soma de verificação pela operação de restauração.

Controlando a resposta a um erro

Para especificar como uma operação de restauração se comporta ao encontrar um erro, use as opções RESTORE e RESTORE VERIFYONLY seguintes:

  • CONTINUE_AFTER_ERROR

    Determina que a operação de restauração deve continuar depois que um erro for encontrado. Esse é o comportamento padrão para RESTORE VERIFYONLY que o permite informar erros de validação e continuar, fornecendo tanta informação sobre o conjunto de backup quanto possível. CONTINUE_AFTER_ERROR avisa a RESTORE para continuar fazendo o melhor possível. Entre outras coisas, faz o RESTORE ignorar a soma de verificação inválida.

  • STOP_ON_ERROR

    Determina que a operação de restauração interrompa e falhe ao primeiro erro encontrado. (Esse é o comportamento padrão para RESTORE.)