更新了SP2的补丁能够解决  不能收缩日志文件的bug了. 但是因为已经不用内存优化表了, 所以想着能够删除内存优化表的file group 但是发现 很难删除

先说结论:

以下是针对内存优化文件组的限制:

创建内存优化的文件组后,您只能通过删除数据库来删除它。 在生产环境中,您不太可能需要删除内存优化的文件组。

在内存优化的文件组中,您无法删除非空容器或将数据和差异文件对移至另一个容器。

无法指定容器的 MAXSIZE。

来源:

微软太坑了, 就为了一个 不太可能 就不提供删除 内存优化表的filegroup的功能.

https://docs.microsoft.com/zh-cn/sql/relational-databases/in-memory-oltp/the-memory-optimized-filegroup?view=sql-server-2017

学习到的处理方法

1. 说明数据库服务器的信息

数据库信息:CWBASEGS60
内存数据库的filegroup:CWBASE01_FS

2. shrinkfile

命令

dbcc shrinkfile(CWBASE01_FS,EMPTYFILE)

提示错误

不能对内存数据库进行此操作

3. 执行系统级存储过程

EXEC sp_filestream_force_garbage_collection @dbname = N'CWBASEGS60' @filename = N' CWBASE01_FS ';  

4. 执行remove命令

alter database cwbasegs60 remove file CWBASE01_FS

依旧报错无法删除.

确认是sqlserver的bug 不允许进行删除

使用内存数据库表需要非常谨慎, 不然一失足成 xx恨