需要帮助恢复损坏的SQL数据库

我有一个非常特殊的情况,我已经做了好几天了。 我有一个非常大的SQL Server 2008数据库(约2 TB),其中包含500个文件组以支持非常大的分区表。 最近我们在一个驱动器上发生了一次灾难性的失败,丢失了几个文件组,数据库变得无法访问。

我们每天都在进行文件组备份,但由于其他问题,我们丢失了日志和主文件组的最新备份。 我们备份了所有数据,但主文件组备份已旧。

自主文件组备份以来,没有任何模式更改,但lsn现在全部不同步,我们无法恢复数据。

我已经尝试了所有我能想到的(并且已经尝试了几乎所有的技巧,而且我可以google),但是我仍然得到同样的信息,说明文件组x的文件与主文件组不匹配。 我现在正试图编辑系统表(我们有一个单独的临时环境来做到这一点,所以我们不担心会破坏任何生产数据库)。 我已经尝试更新sys.sysdbreg,sys.sysbrickfiles和sys.sysprufiles,试图欺骗SQL,认为所有的文件都在线,但“select*从OPENROWSET(TABLE DBPROP,5)”显示不同的数据库状态我在sys.sysdbreg中看到。

我现在想我需要以某种方式编辑实际数据文件的头文件,以尝试将lsn与主文件alignment。

我很欣赏任何人可以在这里给我的帮助,但请不要用“你不应该编辑mdf,ndf文件….”或“看到MSDN文章….”等等这样的回应。一个先进的紧急情况,我需要一个真正的黑客,所以我们可以得到在这个损坏的数据库中的数据,并导出到一个新的数据库。 我知道有一种方法可以做到这一点,但不知道DBPROP系统函数做了什么(例如看系统表还是实际打开文件),使我无法想出如何愚弄SQL让我阅读这些文件。

谢谢你的帮助。

我看到你将来有两个select。

  1. 打电话给PSS并打开一张票。 这需要一段时间才能与他们取得联系。
  2. 调用SQLskills(保罗是具体的),看看他能做什么。 我知道,保罗已经成功地使用hex编辑器黑客入侵数据库。 保罗并不便宜,但他会完成这项工作。

祝你好运。

致电Microsoft PSS:打开一个级别的支持案例。 不会比这更好。 预计支付。 可能很多。

我们已经去了PSS的路线,他们是非常有帮助的。 只是给了我们一个库存答案:“备份/恢复不是为了这样工作,我们不支持黑客。” (感谢MS,非常有帮助,我记得12年前当你在PSS有一个小组,可以帮助像这样的紧急情况。)

我在Pauls的博客上,发现了一些非常有用的信息,但没有关于如何直接从文件读取IAM,GAM,SGAM等信息。 我知道,如果我能得到这个信息,我可以编辑sys.sysallocunits表来修复所有分区的数据页的指针。 我正在尝试使用Office Recovery中的恢复工具,似乎可以读取数据,因此数据必须可恢复。 我只想这样做