【问题标题】:Restore SQL 2008 database fails with error on page xxx:xxx还原 SQL 2008 数据库失败,并在页面 xxx:xxx 上出现错误
【发布时间】:2011-06-29 09:16:37
【问题描述】:

情况是这样的:

获得了带有分区的 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.

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

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

我可以做些什么来解决这个问题?如何解决实际问题?

感谢您的任何建议。

【问题讨论】:

  • 您是在还原前将 bakup 文件复制到目标服务器还是尝试从某个 windows 共享文件夹还原?
  • 是的,先将bak复制到目标服务器,然后恢复。
  • 文件复制到目标服务器后是否检查过校验和?也许有错误(可能是由磁盘错误引起的)?检查您可以针对此版本恢复的版本的 MD5。它们是一样的吗?
  • 我认为这个问题可以在 serverfault 问答网站 (serverfault.com) 上更快地解决
  • @Dommer:我复制了多个文件中的文件。在目标服务器上,我正确提取了文件,所以我猜 .bak 文件应该不错? @Heximal,我会试试的,谢谢。

标签: sql sql-server sql-server-2008 backup restore


【解决方案1】:

我会检查在服务器上创建的 .bak 的 MD5 校验和,然后将其移至新家。我敢打赌,当你移动它时,你的副本中会有一些小的调整;你的过程中的某些东西,也许只是一个网络打嗝,或者其他什么东西。

这里很少有 MD5 校验和实用程序:http://www.thefreecountry.com/utilities/free-md5-sum-tools.shtml

祝你好运。

【讨论】:

    【解决方案2】:

    我们能够在其他服务器上恢复备份。

    过了一会儿,我们切换到了新服务器。 有错误的旧版本现在在测试台上。

    结论是备份文件是正确的,问题出在服务器的硬件问题上。可能是磁盘问题,但是当那很清楚时,我会在这里发布..

    感谢您的建议。

    【讨论】:

      【解决方案3】:

      是的,对于此类恢复错误,问题出在您尝试恢复备份的驱动器上,尝试更改驱动器(例如 d 到 e )..它对我有用。

      也可以尝试直接附加mdf文件。

      【讨论】:

        猜你喜欢
        • 2010-10-04
        • 1970-01-01
        • 1970-01-01
        • 2020-03-29
        • 1970-01-01
        • 2023-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多