【TiDB 使用环境】生产环境 /测试环境
【TiDB 版本】
【部署方式】虚拟机部署
【操作系统/CPU 架构/芯片详情】
【机器部署详情】
【集群数据量】
【集群节点数】3
【问题复现路径】
TiDB集群中有3个节点A, B, C,每个节点都部署tidb server, pd server, tikv server各1个,A节点先离线(正常关机),此时B和C达成多数一致,过一段时间后B节点离线,然后A节点重新上线
【遇到的问题:问题现象及影响】
此时查看集群状态:
A节点(10.10.122.240)的tidb server为什么处于down状态?这样岂不是无法保证集群的多数派可用?
手动执行 tiup cluster restart tidb-test -N 10.10.122.240:14000, 依然失败:
已配置了服务的自启动,也关闭了防火墙,且整个过程未发生数据损坏等异常情况.
如果这么简单的场景都需要手动干预,那运维难度实在太大了。
【资源配置】
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】
我觉得这个场景很常见啊
B节点重新上线后,A节点倒是恢复正常了,可我觉得tidb不至于这么脆弱吧?2节点为啥就不可用?
1、确认A节点上的tidb server是真正没有启动吗?建议登录到A主机端确认一下。
2、如果确实没有启动,需要看一下tidb-server的日志,看看启动报错日志是什么?目前您给出得错误日志信息有2点:
(1)启动service失败,需要看看os用户权限是否具备启动service的权限,例如有些使用非root用户,需要进行sudo的授权才行
(2)如果权限充足,再看一下14000端口,目前是否在该主机上被其他进程占用,导致该prot无法被启动
(3)可以进一步在看看/opt/tidb/deploy/tidb-14000/log的日志信息
wbslxw
(Ti D Ber Cl S0j Eng)
6
3 节点 PD 集群的多数派要求是至少 2 个节点存活。当 B 节点离线后,仅剩 C 节点的 PD 实例,无法形成多数派
克里克里克
(Ti D Ber H052ej9m)
7
看截图,PD和KV都保持了多数派,Server是单节点,应该不影响使用;
其次,Server没起来具体看日志原因。
1 个赞
问题解决了,还是我自己配置的问题,扩容后副本数replication.max-replicas还是1,调整为3后就没问题了。
三节点只能允许坏一个,A离线后,需要A恢复正常才能让B离线的,否则集群单节点是不可用的
随缘天空
(Ti D Ber Ivw R7o Pj)
12
多数派机制主要是针对pd、tikv组件,因为两者都存数据,pd主要是元数据,tikv是业务数据,涉及leader的选举和调度,而tidb组件不存数据,只是为了连接客户端请求,解析、编译sql等,哪怕只有一个节点仍可提供服务,只是压力大而已。从你的集群状态来看,目前集群是可用的,但是241机器看起来是关机状态,需要优先启动该机器再考虑关机其他机器,否则会导致集群不可用