etcd数据库备份与还原

1. 备份etcd

1.1 手动备份数据

etcdctl backup --data-dir /var/lib/etcd/default.etcd --backup-dir 备份目录

1.2 脚本备份数据

使用etcd自带命令etcdctl进行etc备份,脚本如下:

#!/bin/bash
date_time=`date +%Y%m%d`
etcdctl backup --data-dir /var/lib/etcd/default.etcd --backup-dir /root/etcd71-${date_time}.etcd
tar cvzf etcd71-${date_time}.tar.gz etcd71-${date_time}.etcd

1.3 删除7天前历史备份

find /root/*.etcd -ctime +7 -exec rm -r {} \;
find /root/*.gz -ctime +7 -exec rm -r {} \;

2. 恢复etcd

2.1 单机运行

etcd --data-dir=/var/lib/etcd/default.etcd --force-new-cluster &

2.2 查看id

etcdctl member list
1c4358be138c6d94: name=default peerURLs=https://192.168.61.71:2380 clientURLs=http://localhost:2379 isLeader=true

2.3 数据同步

curl http://127.0.0.1:2379/v2/members/1c4358be138c6d94 -XPUT \
-H "Content-Type:application/json" -d '{"peerURLs":["http://127.0.0.1:2379"]}'

2.4 结束单机运行

pkill -9 etcd

2.5 重新启动服务

systemctl restart etcd
systemctl status etcd

转载于:https://blog.51cto.com/ko178/2139421

你可能感兴趣的:(etcd数据库备份与还原)