SQL中数据库重启后一直处于恢复状态怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中数据库重启后一直处于恢复状态怎么办相关的知识,希望对你有一定的参考价值。

应该是事务日志过大,需要恢复一段时间就好了,你可以看下你的数据库的事务日志是不是很大,要是大的话就截断收缩下 参考技术A 突然断电?我碰到过,如果你没作任何处理现在应该已经好了,我当时汗都出来了,眼睁睁的看着百分比,后来好了,赶紧备份 参考技术B

我可以帮你处理

参考技术C 这种专业的问题找专业人士吧,推介去北京北亚数据恢复中心咨询吧。 参考技术D 实在不行修复下呗~~

Consul集群故障恢复

参考技术A

公司服务器突然断电宕机,通电开机后Consul集群自启动完成,但是无法注册服务,界面可以打开,但是无法一直在Loading状态,无法查看Nodes,无法查看Key/Value。

查看服务日志后发现是Master没有被选举出来,一直在报错 No cluster leader 。初步诊断为Consul集群数据不同步或Docker重启后IP变动和之前注册在raft中的不一致。

执行命令 consul operator raft list-peers 后提示500错误,无法正确展示。

排查后定位问题为 Docker重启后IP变动和之前注册在raft中的不一致 导致Consul集群无法自行选举出Master,这种问题需要手动恢复才能解决。

官方对于该问题的解决方案

这个问题解决需要用到 data/raft/peers.json 来进行手动选举与节点同步
PS:这里需要注意, peers.json 有两种格式,具体写描述可以查看 data/raft/peers.info 其中有详细的描述

如果直接按照官方的方式去做,还是会起不来的,因为各个节点之间互相不通信,每个节点都会投自己一票,结果永远会是同票数,同票数就意味着需要重新进行投票选举,就会一直陷入死循环,所以要让其他节点主动放弃自己的投票权,只保留一个节点进行投票,这样才能选举出Master。将 non_voter 设置为true就不会参与选举了。
我的是 Raft Protocol Version 3使用如下JSON。

参数解释

PS:这个文件只要放在任意一个节点上面就行了,无需所有节点都放

重启Consul,集群恢复。

以上是关于SQL中数据库重启后一直处于恢复状态怎么办的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER 无法启动,一直处于停止状态,该怎么解决呀?

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

SQL Server 生产服务器 - 所有数据库都处于恢复挂起状态

sqlserver中数据库怎么处于可执行检查点状态?

Background Intelligent Transfer Service一直处于开机启动状态,怎么禁用都不行!

sql2008 数据库一直 正在还原 状态 有图