在页面xxx:xxx上还原SQL 2008数据库失败,并显示错误

这是情况:

有一个SQL 2008数据库的完整备份(.bak文件),分区。 .bak文件是100GB。

我需要在不同的服务器上将这个数据库恢复到新的数据库。 命令是这样的:

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 

经过52%的处理,我得到这个错误:

 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. 

在所有的默认build议出现之前,这是我已经完成的:

  • 原始数据库上的Checkdb – >没有错误
  • 恢复我的本地机器上的.bak文件 – >没有错误,所以备份是正确的。

我能做些什么来解决这个问题? 我怎样才能解决实际问题?

感谢您的任何build议。

也问在stackoverflow,但他们build议问serverfault: 链接到stackoverflow

在不能在不同硬件上重现的文件中发生读取错误是很less见的,除非故障服务器的底层磁盘/存储系统出现问题。

如果您在服务器上运行了两次恢复,则我认为这两次都失败了。 错误是否发生在同一页上? 如果没有,我会怀疑磁盘的硬件问题,我会看看使用性能监视器来查看磁盘的物理秒/传输值。 如果错误发生在同一页面,那么我会怀疑该文件。 您的本地副本是由服务器上的故障还是来自其他来源的副本? 也许.bak在从源复制到服务器的时候被破坏了。

如果可能,最好备份备份文件的副本。 如果这不是一个选项,我会运行一个checkdb数据库,你确实(显然)恢复干净。 如果这是干净的,我会考虑从本地机器上分离数据库,将所有数据和日志文件复制到服务器并重新连接数据库。 然后做另一个checkdb。