etcd第三篇恢复数据

关于etcd安装请参考etcd安装
关于etcdctl命令使用参考etcdctl命令使用详解
本篇主要内容是etcd的数据恢复
本篇主要以三个节点的etcd集群为例
集群默认的数量是奇数(>=3),集群运行期间允许损坏的etcd有(N-1)/2个,一旦集群中的etcd因硬件无法启动,这时候是好解决的,直接启动一个加入到集群中即可,会将数据直接复制到新的etcd中,如果超过规定的损坏数量,那没办法只能是重新做集群,这个时候集群是无法提供服务的。

那如何避免etcd集群损坏超过规定数量前,防止丢失数据呢?
Snapshoting或者使用集群中某个etcd的snap/db文件来恢复(前提得有快照策略)
命令如下:
ETCDCTL_API=3 etcdctl --endpoints $ENDPOINT snapshot save snapshot.db
然后迁移到新的集群中,使用如下命令

$ ETCDCTL_API=3 etcdctl snapshot restore snapshot.db \
  --name m1 \
  --initial-cluster m1=http://host1:2380,m2=http://host2:2380,m3=http://host3:2380 \
  --initial-cluster-token etcd-cluster-1 \
  --initial-advertise-peer-urls http://host1:2380
$ ETCDCTL_API=3 etcdctl snapshot restore snapshot.db \
  --name m2 \
  --initial-cluster m1=http://host1:2380,m2=http://host2:2380,m3=http://host3:2380 \
  --initial-cluster-token etcd-cluster-1 \
  --initial-advertise-peer-urls http://host2:2380
$ ETCDCTL_API=3 etcdctl snapshot restore snapshot.db \
  --name m3 \
  --initial-cluster m1=http://host1:2380,m2=http://host2:2380,m3=http://host3:2380 \
  --initial-cluster-token etcd-cluster-1 \
  --initial-advertise-peer-urls http://host3:2380

然后启动新集群,使用新的data目录

$ etcd \
  --name m1 \
  --listen-client-urls http://host1:2379 \
  --advertise-client-urls http://host1:2379 \
  --listen-peer-urls http://host1:2380 &
$ etcd \
  --name m2 \
  --listen-client-urls http://host2:2379 \
  --advertise-client-urls http://host2:2379 \
  --listen-peer-urls http://host2:2380 &
$ etcd \
  --name m3 \
  --listen-client-urls http://host3:2379 \
  --advertise-client-urls http://host3:2379 \
  --listen-peer-urls http://host3:2380 &

转载于:https://blog.51cto.com/laodou/2160551

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值