【问题标题】:SQL Server RESTORE VERIFY ONLY checks out but cannot RESTORE from backupSQL Server RESTORE VERIFY ONLY 签出但不能从备份中恢复
【发布时间】:2020-03-10 08:30:59
【问题描述】:

这是一个真正的万岁玛丽问题,因为我完全不知所措。在 Windows 10 x64 上使用 SQL Server 2017 Developer。我有一个备份文件并运行以下命令:

restore verifyonly from disk = 'f:\temp\northwind.bak';

它作为有效备份检出。但后来我运行这个命令:

restore database [northwind] from disk = 'f:\temp\northwind.bak' with replace;

进度达到 100%,但在完成之前我收到此错误消息,并且数据库进入 Recovery Pending

为数据库“northwind”、文件“Northwind”处理了 348840 个页面 文件 1. 为数据库“northwind”处理了 3 页,文件 文件 1 上的“Northwind_log”。

消息 3167,第 16 级,状态 1,第 12 行
RESTORE 无法启动数据库“northwind”。

消息 3013,第 16 级,状态 1,第 12 行
RESTORE DATABASE 异常终止。

消息 5243,第 22 级,状态 8,第 12 行
在内部操作期间检测到不一致。

如果它应该是一个有效的备份文件,恢复怎么会失败?有什么想法可以看吗?

【问题讨论】:

  • 只有 3 页?保存 Northwind_log 文件的卷看起来可能已满。
  • 感谢您的建议。你是说磁盘卷吗?那里有足够的空间。
  • 无论是什么块设备,都可以。错误 5243 表明它也可能是您要还原到的卷上与硬件相关的故障,参考:docs.microsoft.com/en-us/sql/relational-databases/errors-events/…
  • Northwind 和 pubs 一样,已经过时了 - 您最好使用 World Wide Importers 或 AdventureWorks 作为示例数据库。

标签: sql sql-server restore


【解决方案1】:

一般来说,数据库恢复挂起意味着数据库遇到了内部错误(即锁定/资源/物理文件/事务日志),这会阻止它使其联机,但不一定意味着它是不可能的。

可能是它无法解锁物理文件,也可能是其他问题的症状。 您可以尝试将其转为在线,看看是否会收到更好的错误消息。

ALTER DATABASE [northwind] SET ONLINE

或者您可以切换紧急模式并通过 DBCC CHECKDB 运行诊断,即

ALTER DATABASE [northwind] SET EMERGENCY
GO
ALTER DATABASE [northwind] SET SINGLE_USER
GO
DBCC CHECKDB ([northwind]) WITH ALL_ERRORMSGS --Optionally run it like such DBCC CHECKDB ([northwind], REPAIR_ALLOW_DATA_LOSS)
GO

更多信息:

【讨论】:

  • 感谢您的建议,但当数据库处于恢复模式时,我无法执行任何这些命令。
【解决方案2】:

刚跑过去http://www.edwinmsarmiento.com/the-scariest-lie-we-believed-about-backup-verification/

您是否有可能在没有CHECKSUM 选项的情况下进行备份?在这种情况下,RESTORE VERIFYONLY 不会发现页面错误。

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 2013-03-28
    • 2017-11-09
    • 2013-03-31
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多