碰到这个提示,一定要多刷新几遍,这样就会显示某个数据库恢复挂起,不然自己的数据库丢了都不知道,嘤嘤嘤

sql server2012数据库显示恢复挂起 sql数据库恢复挂起的原因_库文件


test数据库在长时间不用后 忽然变成了恢复挂起

手一抖,删除了原数据库,不过还是不甘心,想找出恢复挂起的原因,特意创建了一个供我“玩弄”的空白数据库–学院

原因如下:

也许不全面,

  • [ 1] 我将数据库文件移动了之后,再刷新,就会出现不能请求数据的弹框 ,再刷新几遍就会出现学院(恢复挂起)的标识,
  • [ 2] 我又在移动数据库文件之后,在打开数据库之前移动回来,不会出现弹框
  • [3 ] 在已经出现恢复挂起之后,重新将文件移回来,再刷新是不管用的、
    呃呃呃综合来看,刷新是不会重新联机的啊,我还在方法一思考了好久,有点傻,跑题了,因此,我分析,恢复挂起的常用原因之一
    是在连接数据库时,数据库的位置发生移动,
    但是程序记得你有过这个数据库啊,懵逼几遍(刷新)之后,觉得不行,得告诉你一声,于是,就有了学院(恢复挂起),尽到义务,让你去折腾。

解决办法

1

.脱机后再联机即可

PS:要将文件恢复原位,不然,会发生这个

sql server2012数据库显示恢复挂起 sql数据库恢复挂起的原因_SQL_02


原本是restore database run with recovery这个命令,

后来发现它要脱机才能运行,脱机后又继续报错

联机后居然成功恢复,特意重复恢复挂起了几遍后,忽然意识到,报错的说不定根本没什么用,又把执行命令这一步骤去掉后果然是这样,但也可能是我对这个命令的打开方式不对

如果你的数据库还处于挂起状态,请把我下面代码的test改为你的库名,然后执行完,刷新就正常了:

USE master
GO
ALTER DATABASE test SET SINGLE_USER
GO
ALTER DATABASE test SET EMERGENCY
GO
DBCC CHECKDB(test,REPAIR_ALLOW_DATA_LOSS)
go
ALTER DATABASE test SET ONLINE
GO
ALTER DATABASE test SET MULTI_USER
GO

————————————————

这个亲测,可以,看起来也好复杂,没有搞懂

sql server2012数据库显示恢复挂起 sql数据库恢复挂起的原因_数据库_03


中间还有很长

sql server2012数据库显示恢复挂起 sql数据库恢复挂起的原因_库文件_04


忽然意识到大多数方法的本质是重新联机,其他方法看了看,没有再实验和誊录,但是方法二逼格高鸭,一定要选入的

DBCC :

这些语句对数据库的物理和逻辑一致性进行检查。

许多 DBCC 语句能够对检测到的问题进行修复。  

呃呃呃,原来是官方支援