etcd 空间满 pd 节点不工作 [solved]

记一次故障处理:业务侧反馈数据库无法访问,发现 tidb 宕机


尝试重启失败并报错:
error=“[PD:etcd:ErrEtcdGrantLease]etcdserver: mvcc: database space exceeded”

发现 etcd 的 db 达到最大限制(8G) ,该 db 位置在 {pd.data}/member/snap/db

解决方法:

  1. 调大 quota-backend-bytes(not work)
  2. defrag etcd 元信息库并解除 alarm (work)
    ./etcdctl defrag --data-dir {pd.data}
    ./etcdctl alarm list
    ./etcdctl alarm disarm

希望原厂补充:

  1. 该报错原厂建议升级到 v4.0.9 及以后版本, 我们的版本是 5.1.1 也复现了问题 ,可否帮忙确认下那个版本之后修复了该问题;
  2. quota-backend-bytes 这个值如果不建议调整,那么是否可以废弃,亦或可以调整可否设置自动扩容机制
  3. 我们是否有针对 etcd 元信息库的大小的监控项?
2 个赞

感谢总结

关于 2/3:
etcd 监控我们新版本有梳理、增加了一些监控项,以及来源 tracing。
自动调整阈值这个我们需要先看下,看看 pd 在这种状态下能否自洽、调整 etcd 的配置、状态等

1 的话我们需要调研一下为何使用这么多。

这个etcdctl工具是需要自己安装吗,7.5的版本,没有发现有这个工具

在下面的路径下
/home/tidb/.tiup/components/ctl/vx.x.x/etcdctl

刚才找了相关的技术文章,有一点点官方建议

  1. PD etcd 在新版本,存储空间配置为 8GB,这个不推荐调整过大。
  2. TiDB cdc 在低版本会将 metaData ,包括表的状态信息,调度信息,都是存在 etcd 里面。另外如果执行了比较多的 ddl ,会导致这些信息短时间内增长较大。etcd 在没有及时整理的情况下,就有可能空间使用超过 8GB。
  3. 这个问题在 5.4 有相关优化代码,但是在 6.0 版本后才默认打开相关优化代码。

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