繁体   English   中英

SQL Server 2008 Filestream:使用filestream创建数据库时出错

[英]SQL Server 2008 Filestream: Error when creating database with filestream

我正在进行练习: 如何分离和附加SQL Server FILESTREAM启用的数据库

创建启用FILESTREAM的数据库的步骤中,执行以下代码

Use Master
GO
IF EXISTS (SELECT name FROM sys.databases WHERE name = N'FileStreamDB')
DROP DATABASE FileStreamDB
GO
USE master
GO
CREATE DATABASE [FileStreamDB] ON PRIMARY 
( NAME = N'FileStreamDB', FILENAME = N'D:\FileStreamDB\FileStreamDB.mdf', 
SIZE = 10MB , MAXSIZE = UNLIMITED, FILEGROWTH = 10% )
LOG ON 
( NAME = N'FileStreamDB_log', FILENAME = N'D:\FileStreamDB\FileStreamDB_log.ldf' , 
SIZE = 10MB , MAXSIZE = UNLIMITED , FILEGROWTH = 10%)
GO
ALTER DATABASE [FileStreamDB] 
ADD FILEGROUP [FileStreamGroup] CONTAINS FILESTREAM 
GO

一切正常,直到我执行最后一步:

ALTER DATABASE [FileStreamDB] 
ADD FILE (NAME = N'FileStreamDB_FSData', FILENAME = N'D:\FileStreamDB\FileStreamData')
TO FILEGROUP FileStreamGroup
GO

当此代码执行时,我收到以下错误

消息5120,级别16,状态106,行1无法打开物理文件“D:\\ FileStreamDB \\ FileStreamData”。 操作系统错误-2147024891:“0x80070005(无法检索此错误的文本。原因:1815)”。

我在Windows XP Professional上运行SQL Server 2008 Enterprise(评估许可证)。 根据microsoft指令配置文件流

导致该错误的原因是什么?

这可能是权限问题。 您需要在D:\\FileStreamDB上授予SQL Server服务帐户显式权限。

您正在使用Windows XP 如果您还使用网络服务本地系统作为SQL Server帐户,您可能会遇到此错误:

http://connect.microsoft.com/SQLServer/feedback/details/435855/operating-system-error-2147024891-0x80070005-access-is-denied

最简单的解决方法是为SQL Server使用另一个帐户。 第二个选项是下载链接中提到的XP修补程序。 我不喜欢它; 此修补程序是从2010年开始的,并且看起来没有维护并集成到较新的XP补丁中。 至少我的XP系统是关于补丁的最新版本,我仍然遇到了问题。

在找到确认它是Windows XP中的错误的链接之前,我只浪费了三个小时寻找问题的根源。 现在更改SQL Server帐户后,它立即工作。

MS SQL 2014上出现相同的错误。检查ACL三次。 问题是我在NTFS中通过链接文件夹功能使用了文件流文件夹的路径。 真正的phisical路径源于真正的硬盘驱动器信件就像一个魅力。

即使通过链接文件夹,其他数据库文件类型的PS Filepathes也正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM