RESTORE在数据库<database>的页面(0:0)上检测到从备份集</database>读取的错误

时间:2013-09-23 18:28:17

标签: sql-server backup

我正在尝试将SQL Server 2012 .BAK文件还原到本地服务器。我之前成功恢复了这个.BAK文件。但是现在,当我尝试时,我收到以下错误:

RESTORE在数据库'databasename'中的页面(0:0)上检测到从备份集中读取的错误。

运行以下命令有效:

RESTORE HEADERONLY FROM DISK = 'D:\database.bak'

但是,运行以下内容:

RESTORE VERIFYONLY FROM DISK = 'D:\database.bak'

返回以下错误:

Msg 3203, Level 16, State 1, Line 1
Read on "D:\database.bak" failed: 13(The data is invalid.)
Msg 3013, Level 16, State 1, Line 1
VERIFY DATABASE is terminating abnormally.

今天早上我再次从FTP服务器下载了.BAK文件并得到了同样的错误。我让其他人可以访问相同的备份文件,他们可以恢复它,没有任何问题。有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您可能有一个糟糕的bak文件或源数据库已损坏。

验证源数据库:

DBCC CHECKDB('DatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS在服务器上进行了备份。

然后尝试再次备份它,在复制生成的bak时,尝试二进制复制您的文件与其他替代方案,如Robocopy,Copyfile等。

答案 1 :(得分:0)

所有解决方案都指出了无法恢复的损坏的备份文件。我当时做的是转到源SQL数据库并运行DBCC CHECKDB。此外,最好在执行备份时检查“验证备份”。

答案 2 :(得分:0)

在SQL Server还原数据库中,选择备份文件,然后单击Verify Backup Media
如果备份文件已损坏,您将看到错误消息。

答案 3 :(得分:0)

有时,在使用Maxthon浏览器下载备份时,在使用Windows RDP下载备份后,我们会遇到相同的错误。