首页 > 代码库 > 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】

【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】

 汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql

先贴错误:

技术分享

 

吐槽一下:

技术分享

技术分享

技术分享

进入正题:

新建一个同名数据库

技术分享

停止MSSQL服务

技术分享

替换数据库文件

技术分享

重新启用MSSQL服务

技术分享

看效果图:

技术分享

设置数据库为应急模式

alter database BigData_TestInfo set emergency

技术分享

快速修复一下(如果出现问题请试试, [Repair_Rebuild-重建索引并修复] 和 [Repair_Allow_Data_Loss-允许丢失数据的修复方式])

--dbcc checkdb用法(手工修复数据库)--检查数据库完整性--dbcc checkdb(‘数据库名‘)--go--快速修复 --dbcc checkdb (‘数据库名‘, Repair_Fast)--go--重建索引并修复 --dbcc checkdb (‘数据库名‘, REPAIR_REBUILD)--go--如果必要允许丢失数据修复 --dbcc checkdb (‘数据库名‘, Repair_Allow_Data_Loss) --go

修复成功后恢复为多用户模式(如果出错就把其他查询窗口关掉

alter database BigData_TestInfo set multi_user

你刷新数据库就发现,好了~

技术分享

吓死了,赶紧查查数据有没有用问题(以前)

技术分享

大小也木有变

技术分享

 

扩展一下:

有人附加的时候发现。。。拒绝xxx的提示

呃。。其实就是没开权限:

技术分享

把当前用户的权限开一下就ok了

技术分享

如果是多用户你又怕麻烦,设置everyone的权限即可

技术分享

技术分享

 

这次该收工了~

快速修复并把用户设置回多用户模式

【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】