03-SQLServer数据库处于恢复挂起状态的解决办法
一、总结
如果数据库处于一个恢复挂起的状态,并且对数据库做脱机和分离的操作,报出数据库文件不可访问的错误,可能是因为数据库的数据文件和日志文件在数据库正常连接的情况下,文件所在的磁盘脱机了,导致数据库在一段时间内找不到数据库的文件,就把数据库置于一个恢复挂起的状态了,所以磁盘联机后,重启数据库服务,重新去找数据文件和日志文件找到了,数据库就可用了。
二、处理步骤
1、数据库恢复挂起截图
2、出现恢复挂起的原因
我这里的数据库出现这种原因,是因为我的数据库数据文件和日志文件是在存储上放着的,当时存储升级微码,所以暂时把该机器上挂载的存储盘脱机了(脱机升微码快),存储微码升级好后,磁盘再次联机,重启机器,数据库服务也自动重启了,登录SSMS客户端,查看数据库的状态就是恢复挂起状态了。
3、处理步骤
(1)尝试restore数据库失败,提示数据库是离线状态
脚本:restore database run with recovery
(2)对数据库做脱机操作,报错
注: 如果能对数据库脱机成功,再次联机也有可能解决,要看数据库是什么原因导致数据库恢复挂起的。
(3)对数据库做分离操作,也报错同样的错误
注: 以上对数据库脱机和分离都报出数据库文件不可访问的错误,查看磁盘文件,发现文件是存在的
(4)迫不得已,所以对数据库服务做了重启
注: 重启数据库服务后,发现数据库好了,可以用了,大功告成!
***************************************************
如下是个人开发系统,欢迎大家体验,纯属个人爱好,想一块玩的,私信。
易本浪账:www.jialany.com
***************************************************
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构