首页 > 其他分享 >如何对etcd进行数据的迁移(备份和恢复)?

如何对etcd进行数据的迁移(备份和恢复)?

时间:2023-12-11 14:37:06浏览次数:30  
标签:etcd etc -- 备份 ssl 2379 https 迁移

1、背景说明

 

在项目上,有个环境,更改了etcd所在主机的IP地址,也就需要使用新的IP,作为etcd对外提供服务和内部通信的IP地址。

 

这个时候,发现在etcd中存储的信息中,有节点成员的IP地址的信息。

 

那在这种的情况,如何把原来那套etcd里面的数据,迁移过来?

同时,在etcd使用新的IP地址之后,数据里面存储的是新节点的IP地址信息

 

2、数据备份

 

为了达到数据迁移的目的,在迁移之前,对原来的etcd数据进行备份。

 

使用snapshot save命令

ETCDCTL_API=3 etcdctl \
        --endpoints "https://10.91.253.127:2379,https://10.91.253.128:2379,https://10.91.253.129:2379" \
        --cert /etc/etcd/ssl/etcd.pem  \
        --key /etc/etcd/ssl/etcd-key.pem \
        --cacert /etc/etcd/ssl/ca.crt \
        snapshot save 127data.backup  

 

参数说明:

--endpoints:是etcd节点的客户端访问地址,对于3个节点的集群,连接任何的一个节点都可以,也可以同时指定3个节点的地址

--cert:客户端证书

--key:客户端的私钥

--cacert:ca的证书。

127data.backup : 是快照的名字,可以执行的指定。

这里面访问etcd的证书,只要是经过ca证书签名、认证的就可以。

 

执行备份之后,出现“Snapshot saved at...”

 

生成了这个备份文件

 

OK,这个就进行了数据的备份。

 

3、数据恢复

 

3.1、传送备份文件

将上面备份的数据,传送到新的etcd集群里。

 

注意:要分别传送到每个节点上。

 

3.2、关闭新的集群

 

在每个节点执行下面的动作,关闭新的集群(如果集群已经安装好,并且已经正常运行了)

systemctl stop etcd

 

3.3、删除现有数据

 

如果集群已经运行了。

那么,在数据目录里面,就会存有集群节点的信息和初始化的数据,导入就会有问题。

 

所以,先删除数据目录。

数据目录,通过service文件可看到

 

每个节点都要执行

rm -rf /var/lib/etcd

 

如果集群是没有启动过,数据目录还没有生成,不需要执行这个命令。

 

3.4、恢复数据

 

使用snapshot restore命令,进行数据的恢复

 

在第一个节点执行(在备份文件所在的目录)

ETCDCTL_API=3 etcdctl --data-dir="/var/lib/etcd" \
        --endpoints "https://10.192.121.202:2379,https://10.192.121.203:2379,https://10.192.121.209:2379" \
        --cert /etc/etcd/ssl/etcd.pem  \
        --key /etc/etcd/ssl/etcd-key.pem \
        --cacert /etc/etcd/ssl/ca.crt \
        snapshot restore 127data.backup \
        --name=etcd1 \
        --initial-cluster-token=etcd-cluster-0 \
        --initial-cluster=etcd1=https://10.192.121.202:2380,etcd2=https://10.192.121.203:2380,etcd3=https://10.192.121.209:2380 \
        --initial-advertise-peer-urls=https://10.192.121.202:2380  

 

参数说明:

--data-dir:数据目录,也就是service中的数据目录

--name: 当前节点的名字

--initial-cluster-token:集群的名字

--initial-cluster:集群节点的信息,列出所有的节点

--initial-advertise-peer-urls:当前节点的集群的通信地址

其实,从这个命令可看出来,这个就是节点的初始化的过程,恢复的过程,用这个命令,就会把节点和集群的信息,写入到本地的数据中。

 

这些信息,都可以通过service文件中获得

 

第二个节点执行

ETCDCTL_API=3 etcdctl --data-dir="/var/lib/etcd" \
        --endpoints "https://10.192.121.202:2379,https://10.192.121.203:2379,https://10.192.121.209:2379" \
        --cert /etc/etcd/ssl/etcd.pem  \
        --key /etc/etcd/ssl/etcd-key.pem \
        --cacert /etc/etcd/ssl/ca.crt \
        snapshot restore 127data.backup \
        --name=etcd2 \
        --initial-cluster-token=etcd-cluster-0 \
        --initial-cluster=etcd1=https://10.192.121.202:2380,etcd2=https://10.192.121.203:2380,etcd3=https://10.192.121.209:2380 \
        --initial-advertise-peer-urls=https://10.192.121.203:2380 

 

 

第三个节点执行

ETCDCTL_API=3 etcdctl --data-dir="/var/lib/etcd" \
        --endpoints "https://10.192.121.202:2379,https://10.192.121.203:2379,https://10.192.121.209:2379" \
        --cert /etc/etcd/ssl/etcd.pem  \
        --key /etc/etcd/ssl/etcd-key.pem \
        --cacert /etc/etcd/ssl/ca.crt \
        snapshot restore 127data.backup \
        --name=etcd3 \
        --initial-cluster-token=etcd-cluster-0 \
        --initial-cluster=etcd1=https://10.192.121.202:2380,etcd2=https://10.192.121.203:2380,etcd3=https://10.192.121.209:2380 \
        --initial-advertise-peer-urls=https://10.192.121.209:2380 

 

当在3个节点,都执行数据恢复。

 

3.5、启动集群

 

在每个节点,都执行下面的命令,启动etcd实例

systemctl start etcd

 

启动之后,查看集群成员的信息

ETCDCTL_API=3 etcdctl \
  --endpoints "https://172.20.59.57:2379,https://172.20.59.238:2379,https://172.20.59.153:2379" \
  --cert /etc/ssl/etcd/ssl/member-nccztsjb-node-08.pem  \
  --key /etc/ssl/etcd/ssl/member-nccztsjb-node-08-key.pem \
  --cacert /etc/ssl/etcd/ssl/ca.pem \
   member list

 

查看集群节点的健康情况

ETCDCTL_API=3 etcdctl \
  --endpoints "https://172.20.59.57:2379,https://172.20.59.238:2379,https://172.20.59.153:2379" \
  --cert /etc/ssl/etcd/ssl/member-nccztsjb-node-08.pem  \
  --key /etc/ssl/etcd/ssl/member-nccztsjb-node-08-key.pem \
  --cacert /etc/ssl/etcd/ssl/ca.pem \
  endpoint health

 

如果能够正确的查询,说明集群是正常的。

 

查看节点的数据(查看所有的数据)

ETCDCTL_API=3 etcdctl \
  --endpoints "https://172.20.59.57:2379,https://172.20.59.238:2379,https://172.20.59.153:2379" \
  --cert /etc/ssl/etcd/ssl/member-nccztsjb-node-08.pem  \
  --key /etc/ssl/etcd/ssl/member-nccztsjb-node-08-key.pem \
  --cacert /etc/ssl/etcd/ssl/ca.pem \
  get --prefix ""

 

可以看到数据,证明数据恢复OK。

 

标签:etcd,etc,--,备份,ssl,2379,https,迁移
From: https://www.cnblogs.com/chuanzhang053/p/17894312.html

相关文章

  • etcd磁盘满解决方案
    ​Etcd磁盘空间爆满解决方案k8s技术圈 2023-11-2120:04 发表于四川 2人听过 以下文章来源于SRE运维进阶之路 ,作者claySRE运维进阶之路.专注于SRE运维、云原生、稳定性、高可用性、可观测性、DevOps等技术Etcd磁盘空间爆满解决方案etcd默认的空间配额......
  • openGauss学习笔记-151 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_basebac
    openGauss学习笔记-151openGauss数据库运维-备份与恢复-物理备份与恢复之gs_basebackup151.1背景信息openGauss部署成功后,在数据库运行的过程中,会遇到各种问题及异常状态。openGauss提供了gs_basebackup工具做基础的物理备份。gs_basebackup的实现目标是对服务器数据库文件的......
  • CentOS(7.6)环境下迁移Mysql(5.7)的data目录到指定位置
    第一步:关闭Mysql#关闭Mysql服务systemctlstopmysqld#查看Mysql服务状态ps-ef|grepmysql 第二步:创建新目录,并拷贝数据文件#创建data文件目录mkdir/data/mysql/data/#给mysql账号赋权chown-Rmysql:mysql/data/mysql/data/#拷贝数据到data文件下cp-a/var/lib/m......
  • python3使用pandas备份mysql数据表
    操作系统:CentOS7.6_x64Python版本:3.9.12MySQL版本:5.7.38日常开发过程中,会遇到mysql数据表的备份需求,需要针对单独的数据表进行备份并定时清理数据。今天记录下python3如何使用pandas进行mysql数据表的备份,我将从以下几个方面进行展开: 数据表备份逻辑描述 使用的相关......
  • 使用FreeFileSync快速实现本地数据备份与FTP远程数据迁移
    数据是电脑中最重要的东西。为了保证数据安全,我们经常会对数据进行备份。之前一直采用将重要数据拷贝至移动硬盘的方式实现备份,实现简单但每次都需要把所有文件拷贝一次,当文件很大时效率较低。因此,考虑使用FreeFileSync软件实现数据备份。该软件使用C++语言编写、免费、开源......
  • 饮冰十年-人工智能-FastAPI-03- FastAPI之模型迁移(类似Django的migrante)
         在开发Web应用程序时,通常会涉及到数据库模型的更改,例如添加新的表、字段或索引。为了使这些更改反映在数据库中,我们使用数据库迁移工具。FastAPI本身并不包含数据库迁移(migration)的功能,但你可以使用第三方库来处理数据库迁移。其中,Alembic是一个常用的数据库迁......
  • rsync综合备份
    一.先看需求客户端需求客户端需求:1.客户端每天凌晨1点在服务器本地打包备份(/etc目录和/var/log目录)2.客户端备份的数据必须存放至以"主机名_ip地址_当前时间"命名的目录中3.客户端最后通过rsync推送本地已经打包好的备份文件至backup服务器4.客户端服务器本地保留最近7......
  • 【EMNLP 2023】基于知识迁移的跨语言机器阅读理解算法
    近日,阿里云人工智能平台PAI与华南理工大学朱金辉教授团队、达摩院自然语言处理团队合作在自然语言处理顶级会议EMNLP2023上发表基于机器翻译增加的跨语言机器阅读理解算法X-STA。通过利用一个注意力机制的教师来将源语言的答案转移到目标语言的答案输出空间,从而进行深度级别的辅助......
  • 【SQLServer2019备份恢复】查询本身有问题、未正确设置 "ResultSet" 属性、未正确设置
    在SQLServer2019AlwaysOn节点备份策略失败:备份数据库(完整)(8502-HIS-SQLAG\HISAG)备份数据库所在的位置:本地服务器连接兼容性级别为70(SQLServer7.0版)的数据库将被跳过。数据库:所有用户数据库类型:完整追加现有任务开始:2023-12-08T14:10:07。任务结束:20......
  • kafka集群双活-数据迁移
    一、集群搭建(kafka使用自带的zookeeper)前提:必须要有java环境1、下载地址:http://kafka.apache.org/downloads2、安装目录/app/kafkatar-zxvfkafka_2.12-3.6.1.tgz 建立数据和日志存储目录mkdir-p/app/kafka/data/zookeeper/mkdir-p/app/kafka/data/kafka/mkd......