有没有办法(干净或不干净)消除生产数据库上的文件流数据文件?
我在空文件流上强制执行垃圾回收:
sp_filestream_force_garbage_collection @dbname = N'DB' , @filename = N'db_mod';
我试过了,内存选项和文件流实际上没有在数据库上启用
SELECT name, description FROM sys.dm_os_loaded_modules WHERE description = 'XTP Native DLL'
这个脚本给出了数据库中的文件:
选择 sdf.name AS [FileName], size/128 AS [Size_in_MB], fg.name AS [File_Group_Name] FROM sys.database_files sdf INNER JOIN sys.filegroups fg ON sdf.data_space_id=fg.data_space_id
文件名 Size_in_MB 文件组名称
db 7282 主 db_mod 1528 db_mod
我可以设法消除这个阻止我使用数据库镜像的空文件和文件组吗?
我当然试过
-- Remove the File
改变数据库 db 删除文件 db_mod1 ; -- 删除文件组 ALTER DATABASE db REMOVE FILEGROUP db_mod;
我收到错误:
消息 41802,级别 16,状态 1,第 1 行无法删除最后一个内存优化容器“db_mod1”。
需要明确的是,FILESTREAM 和 In-Memory OLTP 功能是完全独立的,并且不兼容。尽管内存中 OLTP 使用 FILESTREAM 的某些组件,但不必启用 FILESTREAM 功能即可使用内存中 OLTP,并且内存优化表无法与 FILESTREAM 功能一起使用。
根据您收到的错误,您正在尝试删除内存优化文件组,这是不可能的。
以下查询返回什么?