从.mdf文件附加SQL Server数据库时出错(配置了文件流)

时间:2016-01-05 08:42:55

标签: sql-server sqlfilestream

我有一个带有filesteam的SQL Server 2014实例。最近,该机器感染了病毒,该病毒基本上解密了所有可能修改的文件,因此SQL Server被破坏了。机器的管理员给我们提供了我们数据库的.mdf和.ldf文件的备份,没有.bak文件,他基本上只是保存磁盘上的内容而不是SQL Server备份。无论如何,我已经在该计算机上安装了一个新的SQL Server 2014实例(启用了文件流),并且我试图附加恢复的.mdf文件。如果我使用这个脚本:

CREATE DATABASE [ABC] ON  PRIMARY 
( NAME = N'ABC', FILENAME = N'D:\SQL Server 2014 2\MSSQL12.SQLEXPRESS2\MSSQL\DATA\ABC.mdf'), 
( NAME = N'ABC_log', FILENAME = N'D:\SQL Server 2014 2\MSSQL12.SQLEXPRESS2\MSSQL\DATA\ABC_log.ldf')
 FOR ATTACH

我收到以下错误消息:

Msg 3634, Level 16, State 1, Line 5
The operating system returned the error '2(The system cannot find the file specified.)' while attempting 'FsFileHeader::Open' on 'D:\Filestream\ABC.FS'.
Msg 5105, Level 16, State 14, Line 5
A file activation error occurred. The physical file name 'D:\Filestream\ABC.FS' may be incorrect. Diagnose and correct additional errors, and retry the operation.
Msg 1813, Level 16, State 2, Line 5
Could not open new database 'ABC'. CREATE DATABASE is aborted.

所以它基本上试图引用一个被破坏的文件流的位置(那里的数据被病毒解密)。但是,ABC.FS文件夹存在,所以我不知道为什么显示这样的消息。也许它指的是这个文件夹包含的一些文件流文件?如果我删除所有内容并将此文件夹保留为空,则会抛出相同的错误。

我还尝试了另一个脚本,我尝试创建一个新的Filestream目录(脚本的其余部分与上面相同):

FILEGROUP [ABC.FS] CONTAINS FILESTREAM  DEFAULT 
( NAME = N'ABC', FILENAME = N'd:\Filestream2\ABC.FS' )
LOG ON 

这给我一个以下错误:

Unable to open the physical file "d:\Filestream2\ABC.FS". Operating system error 5: "5(Access is denied.)".

我认为我已经添加了所有可能的用户,包括运行SQL Server的用户,以完全控制此文件夹,但它无济于事。

我还要指出,我不想恢复文件流所包含的任何数据,这几乎消失了。我只是希望能够从.mdf文件中附加这个数据库。

0 个答案:

没有答案