Error Tips
使用etcd时报错,报错信息: etcdserver: mvcc: database space exceeded
1检查主机是否安装etcd操作工具(etcdctl)
$ etcdctl --h
# 未安装,接下来安装工具,版本自行去github找, 3.x以上即可,下面仅为示例版本
$ wget https://github.com/etcd-io/etcd/releases/download/v3.3.23/etcd-v3.3.23-linux-amd64.tar.gz
$ tar -xzf etcd-v3.3.23-linux-amd64.tar.gz
$ cd etcd-v3.3.23-linux-amd64
$ cp etcdctl /usr/local/bin/etcdctl
————————————————
2检查主机/集群的状态
# 设置变量, use API-3
$ export ETCDCTL_API=3
# 查询etcd部署情况
$ etcdctl member list
# 连接主机
$ ssh [master-ip/host-ip]
# 检查当前主机状态
$ etcdctl endpoint status
127.0.0.1:2379, c48c8c6f0e1493a5, 3.2.5, 2.2 GB, true, 19920, 460159113 # 官方默认2G,超限报错,问题就在于此
————————————————
3解决方案
# 查看警告信息
$ etcdctl --endpoints=http://127.0.0.1:2379 alarm list
memberID:8630161756594109333 alarm:NOSPACE
# 获取当前版本
$ rev=$(etcdctl --endpoints=http://127.0.0.1:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
# 压缩旧版本
$ etcdctl --endpoints=http://127.0.0.1:2379 compact $rev
# 清理磁盘碎片
$ etcdctl --endpoints=http://127.0.0.1:2379 defrag
# 最后验证空间是否释放
$ etcdctl endpoint status # 惊人 G变成了M
# 最后清除警告
$ etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
So funny!
————————————————
版权声明:本文为CSDN博主「「已注销」」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ForesTR1sing/article/details/107462655
网友评论