在TiDB数据库中,Tombstone、Down和Pending(尽管您可能指的是Offline,因为Pending不是TiKV或TiDB集群中常见的直接状态)是TiKV节点可能处于的不同状态,它们各自代表了节点在集群中的不同情况。以下是这些状态的区别:
-
Tombstone状态:
- 表示该TiKV节点已处于完全下线状态。这通常发生在节点缩容后,节点上的数据已被完整迁出并缩容完毕1。
- 在TiDB集群中,当某个TiKV节点被缩容后,它会先进入
Offline状态,进行leader的transfer和region balance。当这些操作完成后,节点会由Offline状态转变为Tombstone状态1。
-
Down状态:
- 表示该TiKV节点与集群失去链接的时间已经超过了
max-store-down-time定义的时间(默认30分钟)。当PD(Placement Driver)和TiKV的心跳信息丢失超过一定时间后,TiKV的状态会变为Disconnect,如果这种状态持续超过max-store-down-time,则TiKV会变为Down状态1。 - 在
Down状态下,TiDB集群会在其他存活的TiKV节点上补足各个Region的副本,以确保数据的高可用性和一致性1。
- 表示该TiKV节点与集群失去链接的时间已经超过了
-
Offline状态(而非Pending):
- 当对某个TiKV节点进行缩容操作时,该节点会先进入
Offline状态。这是节点下线的中间状态,表示节点上的数据正在被迁出并缩容1。 - 在
Offline状态下,禁止关闭该TiKV服务以及其所在的物理服务器,因为数据迁移和leader的transfer等操作可能仍在进行中1。
- 当对某个TiKV节点进行缩容操作时,该节点会先进入
至于您提到的Pending状态,它并不是TiKV或TiDB集群中常见的直接状态。如果您是在询问与节点状态变化相关的某种等待或挂起状态,那么可能是指节点在转变为其他状态(如Offline到Tombstone)之前所处的过渡阶段,但这通常不会以Pending这样的明确状态来表示。
Pending 和 Down 是 Peer 可能出现的两种特殊状态。其中 Pending 表示 Follower 或 Learner 的 raft log 与 Leader 有较大差距,Pending 状态的 Follower 无法被选举成 Leader。Down 是指 Leader 长时间没有收到对应 Peer 的消息,通常意味着对应节点发生了宕机或者网络隔离。
昨晚忘记回你了,被别的事儿占据了。
空region一般就是数据库删数,接着数据库 gc 之后出现的,如果空 region 的数量长时间没降低,大概率是因为某个操作,\
常见的有br导入数据,导致 pd 的调度暂停而没有恢复,这时候可以通过 pdctl 去查看 pd 关于调度的几个参数,我看你前面回帖里面也查了,通过 tiup ctl:{tidb_version} pd --pd http://{pd_ip:port} -i 进入 pdctl 的控制台,然后数据 config show 就能看到 pd 的一些参数了,然后通过 config set {variable_name} {value} 来修改参数值




