我有一个数据库丢失了其中一个.ndf
文件但无法获取数据。有问题的.ndf
文件是在上周四添加的,并由同事放在临时存储位置(d'哦!)。自创建此.ndf
之前,此数据库中没有可用的备份。当问题.ndf
是它自己的文件组时,我已经看到了许多类似问题的解决方案,但在这种情况下,它实际上是在一个文件组中,我想尝试从中获取数据。我很确定我想做的事情是不可能的,但总有机会吗?
数据库设置
Data.mdf
-200mb Data_1.ndf
- 2.9gb Data_2.ndf
- 64gb(新添加的文件现已丢失 - 我相信它只是预先分配的空间)
日志:Log.ldf
- 128mb
当我们今天早上登录虚拟机时(在Azure中托管),我们收到了来自Windows的意外关机通知(似乎凌晨1点有电源损失/关机),而我们的应用程序没有到达数据库。查看SQL Server Management Studio,我可以看到它处于Recovery Pending状态。尝试将数据库联机引导我发现错误Data_2.ndf
未找到(位于D:\SQL\Data\Data_2.ndf
)。
当我访问D盘(临时存储驱动器)时,我看到了一个很棒的空白Windows资源管理器窗口 - 完全空白驱动器。
我能够将Data_2.ndf
文件设置为脱机并使数据库本身联机,但由于文件组处于脱机状态,我无法查询任何数据(因为所有表都在数据文件组1中) 。其他3个文件(mdf, ndf, ldf
)都在线。
有什么方法可以解决这个问题吗?或许可以从Data_1.ndf
中恢复任何剩余数据,还是完全吐司?
(这是一个匆忙站起来的开发服务器,它没有备份/恢复策略,因为" Azure永远不会崩溃" :))。
(编辑:格式化)
答案 0 :(得分:0)
你被软管了。这是一个奇迹,你可以打开你的数据库。您确定可以检索数据 - 您是否尝试过选择?您可能会在数据库管理员组中收到更广泛的答案。