我有一个 SQL 2016 Ent。具有 3 个节点的版本 AG。我们在 AG 中有一个数据库,其中包含 5 个文件流表。每个表都在它自己的文件流数据文件中。今天我修复了一个错误,即通过重建索引将所有文件保存到一个文件流数据文件中。
在开发中,我们没有 AG,数据库处于简单恢复中。空间被回收。之前和之后看起来像这样:
文件已移动到正确的文件流数据文件,但未从原始数据文件中恢复空间。
起初我以为是车库收藏,我读了Paul Randal 的博客文章。我缩小了日志文件,然后创建了一个垃圾表,通过显式传输添加了大量行,运行日志备份和检查点,所有这些都在主节点上进行。日志文件确实增长了,之前活动的 VLF 被标记为非活动。
使事情复杂化的是,备份是辅助节点上的完整副本\日志备份。
在这种情况下回收空间的正确方法是什么?
编辑:按照 Andy 在其博客中的步骤进行操作后,空间被回收。每个 AG 节点看起来像: