附加“mdf”文件时显示 ndf 文件丢失错误
Posted
技术标签:
【中文标题】附加“mdf”文件时显示 ndf 文件丢失错误【英文标题】:ndf file missing error shown while attaching the "mdf" file 【发布时间】:2018-09-28 09:09:52 【问题描述】:我们的服务器中的数据库存在空间问题。因此,我们在另一个驱动器中为该数据库添加了一个辅助文件(ndf 文件)。 (ndf 文件-'c' 驱动器,mdf,ldf 文件-'e' 驱动器)。当我们格式化“C”盘时,ndf 文件被删除了。当我们尝试通过附加“mdf”文件再次取回该数据库时,我们收到“ndf 文件丢失”的错误。 那么接下来我们可以做些什么来让数据库恢复到原来的状态呢?
【问题讨论】:
简单的解决方案:隐藏您的 .ndf 文件并检索它:)。或创建一个后台数据库并附加 .bak 文件(如果有)。 后台文件不可用。我尝试创建一个新数据库并添加一个新的 ndf 文件。之后,我尝试在停止 sql server 服务后用旧的 mdf 和 ldf 文件替换新的 mdf 和 ldf 文件。然后我重新启动服务。现在我无法访问数据库。它显示“数据库处于恢复模式” 这有帮助吗? sqlnotes.info/2013/05/07/attach-database-with-missing-ndf-file 您的数据库基本上已经死了。您可以尝试DBCC CHECKDB
和 REPAIR_ALLOW_DATA_LOSS
,但即使这样有效,任何实际存在于 .NDF 文件(如果有的话)中的数据显然无论如何都会消失。这些(和其他灾难)本质上就是您为其进行备份的原因。
我完全同意@JeroenMostert,最好的方法是隐藏您的 .ndf 文件。请您的 IT 操作人员检索此内容。
【参考方案1】:
这是一个非常糟糕的举动。首先,将数据库文件放在 C: 驱动器上是一种不好的做法。其次,尝试格式化C:盘,主要包括重建服务器;为什么不备份整个服务器或至少备份服务器上的文件。
您在这种情况下的解决方案非常有限,如果结果过于苛刻,我们深表歉意,但请将此作为 IT/生活课程。有些数据非常重要,我无法想象必须丢失它。好吧,现在我看到了这些选项:
使用数据恢复工具尝试检索格式化的磁盘数据。无论如何,这不是一个有保证的过程。 拥有 .ndf 文件后,您应该能够恢复文件 - 希望没有损坏。 如果检索到的 .NDF 文件已损坏或无法检索;然后准备好接受数据丢失。您可以尝试使用DBCC CHECKDB
和REPAR_ALLOW_DATA_LOSS
。请注意,此命令不能保证修复数据库
如果以上所有选项都不起作用。有一个很棒的第三方工具Stellar Phoenix SQL Database Repair 可以修复.MDF 和.NDF 文件。它将从损坏的数据库文件中修复和恢复数据,然后可以将其导出为其他格式,包括新创建的数据库。如果您需要再次建立此数据库,我真的认为这将是您最好的解决方案。
祝你好运,让我们知道进展如何。
【讨论】:
【参考方案2】:ndf 文件包含数据,ndf 文件复制到您的文件所在的位置
【讨论】:
目前尚不清楚这如何回答这个问题,这似乎断言“ndf”是两件事。以上是关于附加“mdf”文件时显示 ndf 文件丢失错误的主要内容,如果未能解决你的问题,请参考以下文章