【 TiDB 使用环境】生产环境
【 TiDB 版本】6.1
请问大佬们。
有个节点内存故障了,机房说要停机更换内存,查了写资料,有的说直接停就行,有的说只有tidb节点可以停,其他的都要先缩容下线,再重新扩容,但我这个节点多,是不是可以直接这么停了,换了之后再拉起来就行?
不可以,你节点多如果没分组的话,就是你中有我我中有你。混在一起了。任意挂2台就有数据的大多数副本不可用了。
你是怎么部署的呢?混合部署的吗?
如果楼主没有混部的话,看你发的截图挂了 pd 、 tidb 和tikv这几个节点。
tidb 前端负载均衡层把这个节点剔除,就可以直接停机维护。
pd 的leader节点在其他正常额度机器上,也可以直接停机维护挂的那一台,但要抓紧时间恢复回并重新上线,保证奇数个pd节点存活(3个)。
tikv节点一次性挂了3个,推测是混部在同一台机器,除了宕机那一瞬间访问这些tikv的请求有感知外,其他访问正常,该宕机机器上的leader也会很快切换到其他存活的region副本上,不影响后续集群服务。考虑到这个集群还有不少tikv节点,超过30min后,集群会自动补全数据到3副本到其他机器。也可以直接维护,恢复后节点会自动加入集群。
机器恢复后,理论上节点都会自动拉起并加入集群,做好巡检即可。
我觉得现在故障节点都已经失联了,我觉得tiup应该也不能管理这些节点了,可以直接停机维护。
内存 故障直接换内存了拉起来就行,一般来说还是会自动恢复的,你不用做什么
分开部署了建议
内存故障,这服务器肯定不能用,节点都失联了,就不用缩容,可直接关机维护。
直接搞吧 问题不大
我感觉分两种情况吧,1、内存故障宕机了;2、只是内存故障,重启系统了。
前者你直接物理更换就行,后者还是正常tiup下节点使节点状态正常,在搞吧。
当一个 TiKV 节点无法正常工作后,该节点的状态会变为 Disconnected
,30 分钟后会变成 Down
状态。
1、TiKV节点维护:
先将待处理TiKV节点leader权重调为0,并添加任务将其上leader调度到其他节点上。此时可以安全的直接停止TiKV服务,维护后启动,调回权重,删除调度任务即可。
2、PD节点维护:
移动member leader节点,删除待处理PD节点,恢复后原清理缓存,重新加入集群
可以直接停
直接搞,tidb没啥问题,但是看你的TIKV是不是混部了,一个机器上好几个TIKV ,这个可不是很好
如果没猜错的话,你这上边一台机器上有PD,tidb,好几个副本的TIVK,这个比较危险啊,假如三副本的话,2个副本在你换的这个机器上,
关键你现在这个机器应该是已经挂掉了,PD和tidb各挂了一个,tikv挂了三个,如果你做了label隔离或者运气好的话,现在集群还能正常使用,那直接这个机器直接更换内存再启动就行了,如果集群已经不能正常使用,可以等这个机器重启好了试下能不能恢复。
我觉得直接维护重启即可,无需下线再上线
TiDB 节点:
TiDB 节点是无状态的,可以直接停止并更换内存。更换后,重新启动节点即可。集群中的其他 TiDB 节点可以继续处理请求。
TiKV 节点:
TiKV 节点是有状态的,直接停止可能会导致数据丢失或集群性能下降。建议先使用 TiUP 或其他集群管理工具对该 TiKV 节点进行缩容,等待数据迁移到其他节点后再进行内存更换。更换完毕后,再使用集群管理工具进行扩容,将节点重新加入集群。
PD 节点:
PD 节点也是集群中的关键组件,直接停止可能会影响集群的调度和管理功能。建议先使用集群管理工具对 PD 节点进行缩容,等待 leader 转移到其他节点后再进行内存更换。更换完毕后,再进行扩容。
看着可以直接停
问题没描述清楚,不知道有没有混布。