解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题

解决SQLSERVER在还原数据时出现的“FILESTREAM功能被禁用”问题

今天由于测试需要,在网上下载了Adventureworks2008实例数据库的BAK文件,进行还原时出现了这样的错误“FILESTREAM功能被禁用”,如下图所示:

遇到上面的问题,我们通常的做法是通过SQLSERVER配置管理器,对SQLSERVER实例服务做如下设置再重启SQLSERVER实例服务即可成功,如下图所示:

一般情况通过上面的设置,即可成功还原,但在还原Adventureworks2008数据库时,通过上面的设置后,还是不能成功还原,错误依旧,还得重新找其他可靠方法,通过查看MSDN的帮助文件,得知其因SQLSERVER的访问级别造成,手动不行,就用命令,通过执行下面的命令后,即可成功还原。

USE master
GO
EXEC sp_configure filestream_access_level, 2
RECONFIGURE 

再次附加,即可成功。

 

附注:

使用 filestream_access_level 选项可以更改此 SQL Server 实例的 FILESTREAM 访问级别。

注意 注意

必须先启用 Windows FILESTREAM 管理设置,然后此选项才会生效。 可以在安装 SQL Server 时启用这些设置,也可以使用 SQL Server 配置管理器进行启用。

 

定义

0

为此实例禁用 FILESTREAM 支持。

1

针对 Transact-SQL 访问启用 FILESTREAM。

2

针对 Transact-SQL 和 Win32 流访问启用 FILESTREAM。

在此仅做下记录,帮助遇到同样问题的人,少走弯路。

    欢迎加入数据库交流群(多位DBA阵容),群号:190401986 (注:博客园邀请进入)

作者: EricHu
出处: http://www.cnblogs.com/huyong
微博: 腾讯
Email: 406590790@qq.com
QQ 交流:406590790 
QQ群:16653241 平台博客: 【优快云】http://blog.youkuaiyun.com/chinahuyong 【CNBLOGS】http://www.cnblogs.com/huyong 关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。


<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<think>好的,我现在要解决用户关于如何启用SQL Server的FILESTREAM功能问题,特别是遇到ODBC Driver 17错误代码5591的情况。首先,我需要回忆一下FILESTREAM的相关知识,以及启用它的步骤。 用户提到错误代码5591,这通常是因为FILESTREAM功能未正确启用导致的。根据之前的引用内容,用户可能需要通过SQL Server配置管理器来配置实例的服务,然后在SQL Server Management Studio中进一步设置。但具体的步骤可能包括几个方面:配置服务、启用FILESTREAM功能、调整实例设置,以及可能的ODBC驱动配置。 首先,配置SQL Server服务。根据引用[1],用户需要在SQL Server配置管理器中找到对应的实例服务,进入属性中的FILESTREAM标签页,勾选相应的选项。这里可能需要启用文件流访问级别,比如允许Transact-SQL和文件系统访问。这一步是关键,因为如果服务没有正确配置,后续的设置可能无法生效。 接下来,在SQL Server Management Studio中使用T-SQL命令启用FILESTREAM。例如,执行`EXEC sp_configure 'filestream_access_level', 2`并重新配置,这样可以确保数据库实例级别的FILESTREAM功能被激活。同,可能需要重启SQL Server服务使更改生效,这也是常见的一个步骤,容易被忽略。 然后,用户需要检查FILESTREAM是否真的启用了。可以通过查询`sys.configurations`视图来确认当前的访问级别是否正确设置为2。另外,如果涉及到Windows的文件共享设置,可能还需要在服务器的“打开或关闭Windows功能”中确认FILESTREAM相关的组件是否已经安装,这部分可能用户没有提到,但也是常见的问题点。 关于ODBC Driver 17的错误代码5591,可能的原因包括驱动程序版本问题,或者连接字符串中未正确指定FILESTREAM相关参数。需要确认用户使用的驱动版本是否支持FILESTREAM,并检查连接字符串是否包含必要的属性,比如`FILESTREAM=1`。此外,网络权限和共享权限的问题也可能导致连接失败,需要确保运行SQL Server服务的账户有权限访问对应的文件共享路径。 最后,用户可能需要重启相关服务,比如SQL Server服务或整个服务器,以确保所有配置生效。如果问题依然存在,可能需要进一步检查错误日志,或者考虑重新安装ODBC驱动。 总结下来,步骤大致是:配置服务、启用实例功能、检查配置、调整ODBC连接参数、处理权限问题,以及必要的重启。需要逐步引导用户完成这些步骤,并提示可能的注意事项,如重启服务的重要性,以及权限配置的细节。</think>### 如何启用 SQL Server 的 FILESTREAM 功能解决 ODBC Driver 17 错误 5591) #### 步骤 1:通过 SQL Server 配置管理器启用 FILESTREAM 1. 打开 **SQL Server 配置管理器**(通过开始菜单或`sqlservermanager<版本>.msc`)。 2. 在左侧导航栏选择 **SQL Server 服务**,右键单击目标实例(如 `SQL Server (MSSQLSERVER)`),选择 **属性**。 3. 切换到 **FILESTREAM** 标签页: - 勾选 **针对 Transact-SQL 访问启用 FILESTREAM**。 - 勾选 **针对文件 I/O 流访问启用 FILESTREAM**,并指定 Windows 共享名称(可选)。 - 勾选 **允许远程客户端针对 FILESTREAM 数据启用流访问**(若需远程访问)[^1]。 4. 点击 **应用** 并 **重启 SQL Server 服务**。 #### 步骤 2:通过 T-SQL 启用 FILESTREAM 1. 打开 **SQL Server Management Studio (SSMS)**,连接到目标实例。 2. 执行以下命令: ```sql EXEC sp_configure 'filestream_access_level', 2; RECONFIGURE; ``` 3. 再次重启 SQL Server 服务使配置生效。 #### 步骤 3:验证 FILESTREAM 状态 - 执行查询确认配置生效: ```sql SELECT name, value_in_use FROM sys.configurations WHERE name = 'filestream access level'; ``` 若返回值为 `2`,表示已启用完整 FILESTREAM 支持[^2]。 #### 步骤 4:配置 ODBC 连接(针对错误 5591) 1. **检查 ODBC 驱动版本**:确保使用 **ODBC Driver 17 for SQL Server** 或更高版本。 2. **修改连接字符串**: - 添加 `FILESTREAM=1` 参数,例如: ``` Driver={ODBC Driver 17 for SQL Server};Server=...;Database=...;FILESTREAM=1; ``` 3. **检查网络权限**: - 若 FILESTREAM 数据通过共享访问,确认客户端有权限访问共享路径(如 `\\ServerName\FILESTREAMShare`)。 #### 步骤 5:重启相关服务 - 重启 SQL Server 实例服务及客户端应用程序。 #### 注意事项 - **防火墙设置**:确保端口 **139**(TCP)和 **445**(TCP/UDP)开放,以支持文件流传输。 - **文件系统格式**:FILESTREAM 数据需存储在 NTFS 格式的磁盘分区上。 --- ###
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值