从SQL Server 2012还原备份至2017时遇FILESTREAM禁用错误求助
嘿,这个问题我之前也碰到过——你的SQL Server 2017实例没启用FILESTREAM功能,但要还原的备份里刚好包含FILESTREAM类型的数据,所以直接还原就失败了。SQL Server只有开启FILESTREAM后,才能处理带这类数据的备份操作,下面给你两种可行的解决方法:
方法1:通过SQL Server Management Studio(SSMS)启用FILESTREAM
- 打开SQL Server Configuration Manager,找到你的SQL Server 2017实例(比如默认的
MSSQLSERVER,或者你自定义的实例名) - 右键点击该实例,选择属性,切换到FILESTREAM选项卡
- 按需勾选以下选项(至少勾选前两个才能还原带FILESTREAM的备份):
- 针对Transact-SQL访问启用FILESTREAM
- 针对文件I/O流访问启用FILESTREAM
- 如果需要让远程客户端访问FILESTREAM数据,再勾选允许远程客户端针对FILESTREAM数据进行流访问
- 在Windows共享名称处填写一个共享名(比如
SQL_FS_Share),点击应用 - 回到SSMS,连接到你的实例,右键点击服务器节点,选择属性,切换到高级选项卡
- 在FILESTREAM区域,把FILESTREAM访问级别设置为
完全访问启用,点击确定 - 最后重启SQL Server服务,确保所有设置生效
方法2:通过T-SQL命令启用FILESTREAM
如果更习惯用脚本操作,可以执行以下命令:
-- 设置FILESTREAM访问级别为完全启用(2=完全访问,1=仅T-SQL访问,0=禁用) EXEC sp_configure filestream_access_level, 2; RECONFIGURE;
执行完命令后,同样需要重启SQL Server服务让设置生效。
验证FILESTREAM是否启用成功
可以运行以下查询确认配置状态:
SELECT SERVERPROPERTY('FilestreamConfiguredLevel') AS 配置级别, SERVERPROPERTY('FilestreamEffectiveLevel') AS 生效级别;
如果生效级别和你设置的数值一致,就说明FILESTREAM已经成功启用了。
现在你可以重新尝试还原数据库备份,要是需要修改FILESTREAM数据的存储路径,记得在还原向导的文件选项卡中调整对应的文件夹位置哦。
内容的提问来源于stack exchange,提问作者Asif Hameed




