Etcd备份及恢复

一、Etcd数据备份

1、备份命令

复制代码
[root@localhost ~]# export ETCDCTL_API=3
[root@localhost ~]# /data/etcd-3.4.9/bin/etcdctl --endpoints=10.2.20.108:2379 snapshot save etcd-`date "+%Y-%m-%d_%H-%M-%S"`.snapshot

2、备份完成后会在当前目录生成备份文件

复制代码
[root@localhost ~]# ls
anaconda-ks.cfg  etcd-2023-08-17_16-43-08.snapshot  etcd-3.4.9.tar.gz

二、数据恢复

etcd集群中所有实例,可通过随意一台etcd的备份文件进行恢复,数据是一样的。

备份恢复命令模版

ETCDCTL_API=3 etcdctl snapshot restore +备份文件名 \

--name \ #当前实例在集群中的名字

--initial-cluster \ #集群中所有实例通讯地址。

--initial-cluster-token etcd-cluster \ #集群名字,不要与已有集群冲突

--initial-advertise-peer-urls \ #当前实例进群通讯地址

--data-dir /data/mydata_etcd_3.4.9 #数据恢复目录

1、实例1恢复

复制代码
$ ETCDCTL_API=3 etcdctl snapshot restore etcd-2023-08-17_16-43-08.snapshot \
  --name etcd-201 \
  --initial-cluster etcd-201=http://10.2.20.77:2380,etcd-202=http://10.2.20.88:2380,etcd-203=http://10.2.20.99:2380 \
  --initial-cluster-token etcd-cluster \
  --initial-advertise-peer-urls http://10.2.20.77:2380 \
  --data-dir /data/mydata_etcd_3.4.9

2、实例2恢复

复制代码
$ ETCDCTL_API=3 etcdctl snapshot restore etcd-2023-08-17_16-43-08.snapshot \
  --name etcd-202 \
  --initial-cluster etcd-201=http://10.2.20.77:2380,etcd-202=http://10.2.20.88:2380,etcd-203=http://10.2.20.99:2380 \
  --initial-cluster-token etcd-cluster \
  --initial-advertise-peer-urls http://10.2.20.88:2380 \
  --data-dir /data/mydata_etcd_3.4.9

3、实例3恢复

复制代码
$ ETCDCTL_API=3 etcdctl snapshot restore etcd-2023-08-17_16-43-08.snapshot \
  --name etcd-203 \
  --initial-cluster etcd-201=http://10.2.20.77:2380,etcd-202=http://10.2.20.88:2380,etcd-203=http://10.2.20.99:2380 \
  --initial-cluster-token etcd-cluster \
  --initial-advertise-peer-urls http://10.2.20.99:2380 \
  --data-dir /data/mydata_etcd_3.4.9

4、启动恢复后的集群

复制代码
systemctl daemon-reload
systemctl start etcd

5、检查新进群

复制代码
查看leader是否选举成功

[root@etcd003 ~]# ETCDCTL_API=3 /data/hxsd-etcd-3.4.9/bin/etcdctl  --endpoints="http://10.2.20.77:2379,http://10.2.20.88:2379,http://10.2.20.99:2379"   endpoint status --write-out=table
+-----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|          ENDPOINT           |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+-----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|  http://10.2.20.77:2379 | 52fba0ba228f3da3 |   3.4.9 |  2.1 GB |     false |      false |        50 |          9 |                  9 |        |
|  http://10.2.20.88:2379 | 4907167561836ce3 |   3.4.9 |  2.1 GB |      true |      false |        50 |          9 |                  9 |        |
|  http://10.2.20.99:2379 | b80cd01b4c2b7a1c |   3.4.9 |  2.1 GB |     false |      false |        50 |          9 |                  9 |        |
+-----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
相关推荐
夜月yeyue3 分钟前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
典学长编程4 分钟前
数据库Oracle从入门到精通!第四天(并发、锁、视图)
数据库·oracle
kfepiza28 分钟前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
积跬步,慕至千里42 分钟前
clickhouse数据库表和doris数据库表迁移starrocks数据库时建表注意事项总结
数据库·clickhouse
极限实验室1 小时前
搭建持久化的 INFINI Console 与 Easysearch 容器环境
数据库
cuijiecheng20181 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
白仑色2 小时前
Oracle PL/SQL 编程基础详解(从块结构到游标操作)
数据库·oracle·数据库开发·存储过程·plsql编程
程序猿小D3 小时前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的个人财务管理系统,推荐!
java·数据库·mysql·spring·毕业论文·ssm框架·个人财务管理系统
独行soc3 小时前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网
java龙王*4 小时前
开放端口,开通数据库连接权限,无法连接远程数据库 解决方案
linux