我们在 SQL 2014 实例上设置 FileTable 共享时遇到了困难,在放弃尝试以我们的实例名称命名它之后,我们将共享的名称保留为 mssqlserver,但它终于上线了,在线意味着如果你右键单击FileTable 表上的 SSMS 您可以“探索 FileTable 目录”,但它似乎在一段时间后再次随机离线,并且您会收到通常的预设错误消息:
因此,在服务器级别神奇地禁用/启用 FILESTREAM 之后,通过 t-sql/ssms/配置管理器在数据库级别它恢复了一些方法,但是我必须在所有这些位置弄乱设置才能恢复!似乎没有什么神奇的步骤可以让它回来。
有没有人经历过这个?重新启动服务/服务器会对此有所帮助吗?如果没有,修复sql server会有帮助吗?
看来,通过配置管理器设置它后,问题就消失了。
这可能与KB4492899 - FIX:在 SQL Server 2016 和 2017 中数据库启动后无法访问 FileTable 数据库级目录有关。
SQL Server 2014(以及可能更早的添加)似乎也受到影响并且似乎没有修复,尽管解决方法应该仍然有效。
给定的解决方法需要关闭所有现有连接。
以下是知识库文章的内容,以防万一以后链接失效:
症状
在 Microsoft SQL Server 2016 和 2017 启动期间,如果用户在数据库启动之前尝试连接数据库,用户会话可能会导致数据库自动启动。发生这种情况时,如果数据库包含 FileTable 并启用了 FILESTREAM non_transacted_access,则数据库启动后无法访问数据库级 FileTable 目录。如果您尝试通过文件资源管理器访问该文件夹,则可能表明该文件夹不可用。当您从命令提示符运行“dir”命令时,它返回“系统找不到指定的文件”。
此外,您可能会在错误日志中看到以下错误,表明用户会话触发了数据库自动启动:
地位
Microsoft 已确认这是“适用于”部分中列出的 Microsoft 产品中的问题。
解析度
此问题已在 SQL Server 的以下累积更新中得到修复:
SQL Server 2017 的累积更新 15
SQL Server 2016 SP2 的累积更新 6
关于 SQL Server 的累积更新:
SQL Server 的每个新累积更新都包含以前累积更新中包含的所有修补程序和所有安全修补程序。查看 SQL Server 的最新累积更新:
SQL Server 2017 的最新累积更新
SQL Server 2016 的最新累积更新
解决方法
此问题的解决方法是禁用并重新启用数据库的 FILESTREAM non_transacted_access。