首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存中的数据库删除文件和FileGroup

内存中的数据库删除文件和FileGroup
EN

Database Administration用户
提问于 2017-07-14 12:30:22
回答 2查看 6.2K关注 0票数 5

我有一个Server 2016数据库,我在内存表中进行了配置。我想删除这个配置,然后删除那个表。当我要删除该文件和文件组时,我得到了以下错误。

代码语言:javascript
复制
USE [InMem_Test]
GO
ALTER DATABASE [InMem_Test]  REMOVE FILE [InMemFile]
GO
ALTER DATABASE [InMem_Test] REMOVE FILEGROUP [InMemFileGroup]
GO

Msg 41802,级别16,状态1,第3行不能删除最后一个内存优化容器“InMemFile”。Msg 5042,级别16,状态11,第5行文件组'InMemFileGroup‘不能删除,因为它不是空的。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-07-14 13:02:42

目前,删除Hekaton的唯一方法是删除整个数据库

也许这不是你的第一选择,但看起来微软不愿意在这个问题上改变方向。

票数 10
EN

Database Administration用户

发布于 2021-05-11 17:46:45

!如果数据库中包含内存优化表(不能使用DBCC检查包含内存优化表的数据库),请使用此方法!

警告:这是不支持的操作。有报告称,使用此.

时日志损坏无法恢复。

,这是一种黑客方法,而且风险很大。微软没有验证这个解决方案--

在做任何事情之前采取备份

然后

  1. 删除内存优化表
  2. 分离数据库
  3. 在没有内存优化文件组的情况下创建具有相同文件的新数据库
  4. 修改数据库文件并将其更改为分离数据库(mdf、ldf、ndf)文件更改数据库test1修改文件(name=‘test1 1’,filename='C:\Program \Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\test_log.ldf‘)更改数据库test1修改文件(name=’test1 1_log‘,filename='C:\Program \Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\test_log.ldf’‘)
  5. 现在尝试修复数据库: alter test1设置紧急alter test1 set single_user,并立即回滚;dbcc checkdb( test1,repair_allow_data_loss) alter test1 set multi_user alter test1联机
  6. 成功修复数据库后,从数据库中删除内存优化的文件组后,test1删除filegroup 内存_优化_文件组_0

正确执行防止日志损坏的步骤4:必须正确执行Alter文件名。步骤5: DBCC对于防止损坏也很重要:在执行步骤时不要使用数据库(插入-更新-更改模式),执行检查点将日志刷新到数据文件,然后收缩日志文件,您将不会出现日志损坏问题

别忘了:

在使用数据库之前执行以下检查问题的步骤:

  1. 在数据库中插入或更新1行
  2. 做检查点
  3. 重启服务器

如果数据库联机,我认为您正确地完成了所有步骤,否则,从备份中恢复数据库,忘记删除内存优化的文件组

票数 -10
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/179853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档