SQLSERVER数据库状态的示例分析

65次阅读
没有评论

共计 998 个字符,预计需要花费 3 分钟才能阅读完成。

这篇文章主要介绍 SQLSERVER 数据库状态的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

案例

前两天在处理一个客户问题,突然某个数据库无法访问了。数据库下面的表也无法查看。从 SSMS 界面上看数据库是正常的状态(就是数据库名字后面没有显示特别的状态)。查看

SYS.DATABASES 查看状态列,发现是 ONLINE。此时其他数据库是正常的,就这个库有问题。肯定是数据库状态不对。那么问题出在哪里呢?仔细观察发现这个问题的数据库 collation_name 是 null 值。

原来问题在这,

刚刚联机的数据库不一定马上能接受连接。要确定数据库何时可以接受连接,可以查询 sys.databases 的 collation_name 列或 DATABASEPROPERTYEX 的 Collation 属性。在数据库排序规则返回非 Null 值之后,数据库就可以接受连接了。

于是用命令把数据库设置为脱机,然后马上联机,再查看 sys.databases 的 collation_name 列 变成了非 null 值。此时数据库恢复正常。

状态的转换

数据库有很多状态。他们是如何在这些状态之间进行切换的呢?下面这个图非常清晰的标示了各个状态的切换。在我刚学习数据库的时候,这个图给了我很大的帮助,

让我对数据库各个状态的转换有了很清楚的认识。

ONLINE(在线)

数据库可正常运行

RESTORING(正在还原)

数据库正在还原,当我们还原数据库使用 NORECOVERY 模式时,数据库就会变成该状态

RECOVERING(正在恢复)

数据库启动,数据库创建,ALTER ONLINE,RESTORE WITH RECOERY 时,会经过这个状态,进行 REDO,UNDO 等操作。此时如果遇到问题就进入 RECOVERY_PENDING。如果正常就会变成 ONLINE。

RECOVERY_PENDING(等待恢复)

数据库在还原时遇到跟资源相关的错误,表明还原进程被挂起,数据库不能开始数据库的数据和日志的还原进程,这种情况下,最可能的原因是丢失数据文件或日志文件。

SUSPECT  (置疑)

数据库可能损坏了

EMERGENCY(紧急)

供 DBA 用来修复数据库的状态

OFFLINE(脱机)

离线状态

以上是“SQLSERVER 数据库状态的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-15发表,共计998字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)