MSSQL数据库一直显示“正在恢复”或“可疑”的解决办法

0    512    2

Tags:

👉 本文共约1550个字,系统预计阅读时间或需6分钟。

现象

正在恢复

由于磁盘空间满了,数据库处于“恢复挂起”状态,清理磁盘后,重启SQL Server服务器后,数据库一直显示“正在恢复”,用sp_who2查询显示该库处于“DB STARTUP”状态。

查询数据库阻塞,发现有个系统进程9在阻塞,然后使用kill 9报错:只能终止用户进程

数据库可疑

若一直“正在恢复”,或显示“可疑”(Suspect),在 SQL Server 中,如果某个数据库被标记为“可疑”(Suspect),这通常意味着该数据库的事务日志文件(.ldf)可能损坏或丢失。当一个数据库的日志文件不可用时,SQL Server 无法保证数据库的一致性,因此会将数据库状态设置为“可疑”。

可以查询告警日志是否有如下输出:

若有,则说明恢复出现问题,可以使用本文的方法2进行恢复。

分析

恢复状态通常是“RECOVERING”。

首先查看进程的状态变化,物理IO和逻辑IO,如果没有变化,则先做1次SQL Server实例的关闭和启动,然后再查看进程的状态变化。

如果物理IO和逻辑IO有变化,则说明在恢复中,只需要等待即可,不需要做任何操作。

恢复进入到后期时,percent_complete列也会指示恢复的进度。

若没有变化,则可能需要按照如下的几种方式来恢复。

请不要轻易使用如下方法。

解决

方法1

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复