含Filestream表的数据库快照查询失败,求可用方案及允许创建原因
启用Filestream的数据库快照相关问题解答
能否在启用Filestream的数据库中使用快照?
可以创建快照,但无法访问快照内的Filestream数据。SQL Server数据库快照仅捕获数据文件的差异变化,不会同步Filestream存储在文件系统中的容器内容。当你尝试查询快照里的Filestream表时,对应的Filestream文件组会被标记为离线,因此触发报错:
Large object data (LOB) for table 'dbo.tblAttachments' resides on an offline filegroup ('extraBlobs') that cannot be accessed.
为何SQL Server允许创建这类快照?
快照的创建逻辑仅校验源数据库是否满足基本创建条件(如在线、非只读/单用户模式等),不会因包含Filestream而阻止创建。这是因为快照本身是针对数据库数据文件的功能,Filestream数据不可访问属于该功能的已知局限性,而非创建时的错误。SQL Server不会在创建阶段主动提示该限制,需要用户提前了解:
- 快照不包含Filestream容器的任何数据
- 访问快照中的Filestream表时,对应文件组会处于离线状态,无法读取LOB数据
若需备份或恢复Filestream数据,应使用常规的数据库备份(如完整备份、Filestream文件组备份),而非数据库快照。
内容的提问来源于stack exchange,提问作者Ivan Richtich
相关产品推荐
相关产品推荐

