ElasticSearch-通过快照迁移数据

在这里插入图片描述

该文章适用于将ES-A集群的数据完整迁移到ES-B集群。
场景:
1、ES-A集群已经运行已久,存在N多索引
需求:
将A集群上的索引及数据全量同步到B集群上

一、创建仓库及快照

1、修改配置文件(ES-A,所有节点都需修改,同时需要重启ES服务)

#添加
path.repo: [“/data/es/backup”]
#这里需要注意,如果三个节点在不同的服务器上,则需要挂载共享存储,否则在下一步注册存储库时会报错

2、注册快照存储库(ES-A,任意节点执行)

curl -XPUT “http://192.168.xxx.xxx:9200/_snapshot/my_backup” -H “Content-Type: application/json” -d ’
{
“type”: “fs”,
“settings”: {
“location”: “/data/es/backup/snapshot01”
}
}’

3、创建快照(ES-A,任意节点执行)

#全部索引
curl -XPUT "http://192.168.xxx.xxx:9200/_snapshot/my_backup/backup_all?wait_for_completion=true

#指定索引
curl -XPUT "http://192.168.xxx.xxx:9200/_snapshot/my_backup/test_index?wait_for_completion=true -H “Content-Type: application/json” -d ’
{
“indices”: “test_index”
}’

4、查看快照进度(ES-A,任意节点执行)

curl -XGET “http://192.168.16.35:9208/_snapshot/my_backup/backup_all/_status”|grep state
查看state的值
#started:正在同步
#success:成功
#failed:失败

同时也可以在服务器上查看刚刚创建的共享存储目录

二、迁移数据

将刚刚用于快照备份的共享存储挂载到B集群的各个节点下

三、创建仓库及恢复数据

1、修改配置文件(ES-B,所有节点都需修改,同时需要重启ES服务)

#添加
path.repo: [“/data/es/backup”]
#这里需要注意,目录路径可以和ES-A的不同

2、注册快照存储库(ES-B,任意节点执行)

curl -XPUT “http://192.168.xxx.xxx:9200/_snapshot/my_backup” -H “Content-Type: application/json” -d ’
{
“type”: “fs”,
“settings”: {
“location”: “/data/es/backup/snapshot01”
}
}’
#注意!!!最后的命名必须与ES-A相同snapshot01

3、恢复快照(ES-B,任意节点执行)对应三.3

#全部恢复
curl -XPOST "http://192.168.xxx.xxx:9200/_snapshot/my_backup/backup_all/_restore

#恢复指定索引
curl -XPOST “http://192.168.xxx.xxx:9200/_snapshot/my_backup/test_index/_restore”
{
“indices”: “test_index”
}

4、查看快照恢复进度(ES-B,任意节点执行)

curl -XGET “http://192.168.xxx.xxx:9200/_cat/recovery?v”
#所有索引都恢复到100%即完成

彩蛋

通过快照恢复数据时,如果索引本身存在则会报如下错误
在这里插入图片描述
意思就是说要先删除或关闭原索引。
需要注意的是,如果关闭了索引,会恢复成功,但是执行逻辑也是先删除原索引再恢复

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值