【问题标题】:SQL Server 2008 Filestream: Error when creating database with filestreamSQL Server 2008 Filestream:使用文件流创建数据库时出错
【发布时间】:2011-03-03 16:02:38
【问题描述】:

我正在做一个练习:How to Detach and Attach a SQL Server FILESTREAM Enabled Database

在步骤创建启用 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 instructions

该错误的原因可能是什么?

【问题讨论】:

  • 您是否先在'D:\FileStreamDB\FileStreamData'创建了一个空文件夹?
  • @Martin,不,但如果我这样做,我会收到另一个错误:消息 5170,级别 16,状态 2,第 1 行无法创建文件 'D:\FileStreamDB\FileStreamData',因为它已经存在。更改文件路径或文件名,然后重试操作。
  • 我猜乔的答案看起来很可能。
  • @Martin - 谢谢,我会尝试 Joe 的建议

标签: sql-server sql-server-2008 filestream


【解决方案1】:

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

【讨论】:

  • Joe,我是不是应该在执行 sql 代码之前也创建 FileStreamData 文件夹?
  • @padn:我在文件路径上的错误。您不想创建该文件夹。这是需要设置权限的更高级别:D:\FileStreamDB。我更正了我的答案。
【解决方案2】:

您使用的是 Windows XP。如果您还使用 Network ServiceLocal System 作为 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 帐户后,它立即生效。

【讨论】:

  • 在 Windows 2003 服务器上出现完全相同的错误。我将 SQL Server 服务更改为使用本地服务帐户而不是其他帐户之一。工作完美。谢谢。
【解决方案3】:

在 MS SQL 2014 上遇到同样的错误。检查 ACL 3 次。 问题是我通过 NTFS 中的链接文件夹功能使用了文件流文件夹的路径。 真正的物理路径源于真正的 HDD 字母,就像一个魅力。

附:即使通过链接文件夹,其他数据库文件类型的文件路径也可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2012-09-27
    • 2011-06-10
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多