A restauração do banco de dados do SQL 2008 falha com erro na página xxx: xxx

1

Esta é a situação:

Tem um backup completo (arquivo .bak) de um banco de dados do SQL 2008, com partições. O arquivo .bak é 100gb.

Eu preciso restaurar esse banco de dados em um servidor diferente para um novo banco de dados. O comando é assim:

Restore Database [newname] FROM DISK= N'D:\mydatabase.bak' WITH FILE = 1
MOVE 'mydatabasename' TO 'C:\mydatabase.mdf'
MOVE 'Partition1' TO 'C:\'mydatabase_1.ndf'etc..
STATS = 1

Depois de 52 por cento processados, recebo este erro:

Msg 3183, Level 16, State 2, Line 1
RESTORE detected an error on page (8481:555819297) in database "dbname" as read from the backup set.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Antes de todas as sugestões padrão aparecerem, isso é o que eu já fiz:

  • Checkdb no banco de dados original - > sem erros
  • Restaurar o arquivo .bak na minha máquina local - > sem erros, então o backup está correto.

O que posso fazer para solucionar isso? Como posso chegar ao problema real?

Obrigado por qualquer sugestão.

Também perguntado no stackoverflow, mas eles sugeriram perguntar no serverfault: Link para o stackoverflow

    
por Erik Dekker 29.06.2011 / 12:10

1 resposta

1

É incomum obter um erro de leitura em um arquivo que você não pode reproduzir em hardware diferente, a menos que o sistema de disco / armazenamento subjacente do servidor em falha esteja tendo problemas.

Se você executou a restauração duas vezes no servidor, presumo que ela falhou nas duas vezes. O erro ocorreu na mesma página? Se não, eu suspeitaria de um problema de hardware com o disco e eu olharia para isso usando o Monitor de Desempenho para examinar os valores físicos de sec / transfer para o disco. Se o erro ocorreu na mesma página, então eu suspeitaria desse arquivo. A cópia no seu local é feita a partir da que falha no servidor ou de alguma outra fonte? Talvez o .bak tenha sido corrompido ao copiá-lo dessa fonte para o servidor.

Seria melhor obter outra cópia do arquivo de backup, se possível. Se isso não é uma opção, eu iria executar um checkdb no banco de dados que você conseguiu (aparentemente) restaurar de forma limpa. Se isso estiver limpo, consideraria desanexar o banco de dados da minha máquina local, copiando todos os dados e arquivos de log para o servidor e reconectando o banco de dados. E então fazendo outro checkdb.

    
por 29.06.2011 / 15:08