Respondendo a erros de restauração dos SQL Server causado por backups danificados

Restaurar erros ocorre se a mídia de backup estiver danificada. Restaurar erros pode ser relatado pelo sistema operacional ou detectado através de somas de verificação. Em todo caso, você tem três opções:

  • Corrija o erro e reinicialize a operação de restauração.

  • Permita que a restauração prossiga apesar dos erros e repare o banco de dados após a conclusão da restauração.

  • Abandone a operação de restauração e use um plano de recuperação alternativo que evita o backup danificado.

ObservaçãoObservação

O conjunto de mídia ou o conjunto de backup deve conter informações corretas mínimas para ser interpretado como Microsoft Formatar fita. Se este não for o caso, RESTORE pára e indica que o formato do backup é inválido.

Corrigindo e reiniciando a operação de restauração.

Os erros podem ser corrigidos das seguintes maneiras:

  • Se um erro aconteceu em um dispositivo de fita, você pode limpar ou substituir a unidade de fita.

  • Para dispositivos de disco, você pode resolver o erro de dispositivo e substituir o arquivo danificado.

  • Se um conjunto de mídia for espelhado, você pode substituir a mídia danificada pela mídia correspondente de outro espelho.

Continuando apesar dos erros

Observação sobre cuidadosCuidado

Especificando WITH CONTINUE_AFTER_ERROR em uma instrução RESTORE tenta restaurar o banco de dados. Porém, há muitos tipos de corrupção que impedem a recuperação de um banco de dados. É altamente recomendável que você reserve usando a opção CONTINUE_AFTER_ERROR até que esgote todas as alternativas.

A opção CONTINUE_AFTER_ERROR resulta em uma operação de restauração para continuar erros anteriores, restaurando o que é possível. Roll forward acontece e é possível aplicar backups de log de transações subseqüentes. Se roll forward encontra um erro que o impede de atingir o ponto designado a tempo, este erro será indicado no log. No ponto de recuperação, o banco de dados é colocado online, se assim puder. Mas se a recuperação não puder ser concluída, o banco de dados será deixado offline.

A quantidade de dados perdidos depende do erro encontrado. Por exemplo, uma soma de verificação ruim em uma página resulta apenas naquela página a ser interrogada; a mídia continua sendo lida e processada. Em contraste, um erro de E/S informado de um dispositivo de fita pode evitar a restauração de leitura de um erro anterior, evitando que o restante da fita seja restaurado.

Quando uma restauração é instruída a continuar depois dos erros, as páginas que falham a verificação são gravadas a disco e registradas na tabela suspect_pages e no log de erros.

Práticas melhores:  Depois que você usar WITH CONTINUE_AFTER_ERROR para restaurar dados, examine os logs de erros para obter detalhes nos erros. Também, salve e analise todas as mensagens que você obtém diretamente da instrução RESTORE.

Para continuar apesar de erros

A sintaxe básica RESTORE é:

RESTORE DATABASE database_name FROM backup_device WITH CONTINUE_AFTER_ERROR, [ NORECOVERY ]

Gerenciando o banco de dados como Offline.

Ao término de uma seqüência de restauração que continua apesar de erros, você pode reparar o banco de dados com DBCC CHECKDB. Para CHECKDB executar com mais consistência depois de usar RESTORE CONTINUE_AFTER_ERROR, nós recomendamos que você use a opção WITH TABLOCK em seu comando DBCC CHECKDB. Para obter mais informações, consulte DBCC CHECKDB (Transact-SQL). Todas as opções de reparo estão disponíveis. Para aprender o nível de conserto mínimo necessário, execute DBCC CHECKDB sem uma opção de reparo. Note que, em casos extremos, pode não haver informações suficientes para reparar o banco de dados.

Para ganhar acesso limitado aos dados no estado em que se encontram, você pode colocar o banco de dados em modo de emergência usando a opção EMERGENCY do comando ALTER DATABASE.