更新了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恨