暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

ElasticSearch-通过快照迁移数据

原创 1727 2023-11-01
920

该文章适用于将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%即完成

彩蛋

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论