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

Posted 码道安邦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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恢复挂起的解决方案附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”数据库恢复的主要内容,如果未能解决你的问题,请参考以下文章

SQLSERVER 数据库恢复挂起的解决办法

sqlserver 2012日志满了导致数据库挂起恢复,如何解决

sqlserver 2016 系统数据库msdb状态恢复挂起,导致数据库无法使用,服务重启过还是不行,这个要怎么办?

进程的阻塞和挂起的区别

进程的阻塞和挂起的区别

sql server 一直显示恢复怎么解决