附加“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 CHECKDBREPAIR_ALLOW_DATA_LOSS,但即使这样有效,任何实际存在于 .NDF 文件(如果有的话)中的数据显然无论如何都会消失。这些(和其他灾难)本质上就是您为其进行备份的原因。 我完全同意@JeroenMostert,最好的方法是隐藏您的 .ndf 文件。请您的 IT 操作人员检索此内容。 【参考方案1】:

这是一个非常糟糕的举动。首先,将数据库文件放在 C: 驱动器上是一种不好的做法。其次,尝试格式化C:盘,主要包括重建服务器;为什么不备份整个服务器或至少备份服务器上的文件。

您在这种情况下的解决方案非常有限,如果结果过于苛刻,我们深表歉意,但请将此作为 IT/生活课程。有些数据非常重要,我无法想象必须丢失它。好吧,现在我看到了这些选项:

使用数据恢复工具尝试检索格式化的磁盘数据。无论如何,这不是一个有保证的过程。 拥有 .ndf 文件后,您应该能够恢复文件 - 希望没有损坏。 如果检索到的 .NDF 文件已损坏或无法检索;然后准备好接受数据丢失。您可以尝试使用DBCC CHECKDBREPAR_ALLOW_DATA_LOSS。请注意,此命令不能保证修复数据库 如果以上所有选项都不起作用。有一个很棒的第三方工具Stellar Phoenix SQL Database Repair 可以修复.MDF 和.NDF 文件。它将从损坏的数据库文件中修复和恢复数据,然后可以将其导出为其他格式,包括新创建的数据库。如果您需要再次建立此数据库,我真的认为这将是您最好的解决方案。

祝你好运,让我们知道进展如何。

【讨论】:

【参考方案2】:

ndf 文件包含数据,ndf 文件复制到您的文件所在的位置

【讨论】:

目前尚不清楚这如何回答这个问题,这似乎断言“ndf”是两件事。

以上是关于附加“mdf”文件时显示 ndf 文件丢失错误的主要内容,如果未能解决你的问题,请参考以下文章

MDF文件丢失,如何恢复数据库(MS-SQL)

如何创建作业以将 MDF 文件拆分为多个 ndf 文件

用友软件只有mdf.ldf 文件如何恢复

SQL SERVER数据库文件删除分区格式化解决方案

我想要把sql serve2000的mdf ldf文件升级到能在sql2012中用 求大神帮忙转换

WAMP 在安装时显示错误“MSVCR100.dll”丢失