频繁操作TiKV扩缩容状态变成Offline

【 TiDB 使用环境】
【概述】:
3节点TIKV,下线kv,默认为三副本,无法线下 显示 pending
执行了强制下线操作
查看集群状态发现节点已经下线,然后执行了 扩容操作,扩容后 节点状态为 Offline

【现象】:业务和数据库现象
【问题】:当前遇到的问题
现在想让 扩容的节点能提供整的服务;
怎么修改 kv 副本数将默认3副本修改为2副本
【TiDB 版本】:v5.2.2
【附件】:

1、下线了几个节点?

下线了一个节点,又操作扩容 当前集群状态

目前我的怀疑是这样的:
你下线 一个 节点,正常是需要等待 这个 store 状态变为 Tombstone 之后,才算正常下线完成(offline 的状态,其实还是能正常提供服务的,不算下线完成)
1、但由于你只有 3 节点,下线一个节点后,只剩2个节点,是不满足补充副本的要求的,所以会导致要下线的节点,一直处于 offline 状态,无法正常下线),你用了 --force 强制下线,但实际 --force 可以简单的理解为 物理删除:把空间及进程删除,停掉了而已
2、你再扩容,实际上数据库还认为是原先的 节点,此时仍认为是 offline 状态
解决办法:
1、新扩容另一个端口的节点

没有必要改为两个副本,补齐缺失的节点即可

集群就点就3个 kv 是目录级别的吧,但是正常都是一个节点一个 kv 这样的,我下了一个节点 ,集群默认是3副本的。肯定下不了,但是我执行了 强制下线操作,在 grafana 显示的 kv region 没有做迁移,查看集群状态后,显示正常,当我执行扩容(没删除节点数据)后,节点状态为 Offline

其实你改成 2 是ok 的,但这个有点危险,而且不属于正常逻辑操作,不建议你用

新扩容 另一个端口的节点 是指在配置文件里 修改端口和部署目录与 数据目录?测试机就3个节点。资源有限的啊
tikv_servers:

  • host: 192.168.4.141
    ssh_port: 22
    port: 20160
    status_port: 20180
    deploy_dir: “/data/tidb/tidb-deploy/tikv-20160”
    data_dir: “/data/tidb/tidb-data/tikv-20160”
    log_dir: “/data/tidb/tidb-deploy/tikv-20160/log”

这个是之前的配置,要怎么改呢?

你把端口及目录改成别的就行了啊,和搭建一个新的节点是一样的(另外,你是测试环境啊)

好的,那我这边 offline 的直接执行强制下线Ok么?在测试阶段啊,不能直接就上生产啊。不先踩坑 那就天天加班了。还有修改副本的操作可以提供下么。虽然有风险,但是 得知道怎么执行啊,生产的CDH 就是2副本。节省成本:sweat_smile:

生产用2副本比较危险呀,服务器配置可以差点,但3节点是有必要的

修改副本:pd-ctl。set max-replicas 2;(官网直接搜 max_replicas 关键字就ok)

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。