使用repo对 es实现数据同步

版本 说明 编写人 时间
v1.0 文档创建 xxx 2022年9月14日

一、准备

1、源 ES 数据

复制代码
172.20.158.243

1.1、 repo 地址: /var/lib/elasticsearch/backup

1.2、 es 配置文件修改

yaml 复制代码
```yaml,这步骤可以省去
network.host: ["172.20.164.165","127.0.0.1"]
http.port: 9200
http.enabled: true
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
# 添加这一行👇👇👇
path.repo: ["/var/lib/elasticsearch/backup"]
# 添加这一行👆👆👆
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.system_call_filter: false

1.3、注册 repo

vbnet 复制代码
curl -s -X PUT "localhost:9200/_snapshot/backup" -H 'Content-Type: application/json' -d'
{
  "type": "fs",
  "settings": {
    "location": "/var/lib/elasticsearch/backup"
  }
}'

1.4、查看repo

bash 复制代码
curl http://localhost:9200/_snapshot/backup

1.5、创建备份

bash 复制代码
curl -s -X PUT "localhost:9200/_snapshot/backup/emap_0914?wait_for_completion=true&pretty"

# 将备份压缩打包
cd /var/lib/elasticsearch && tar cf emap_0914.tar backup

2、目的ES主机IP

复制代码
172.21.46.46
172.21.46.45
172.21.46.44
172.21.46.43
172.21.46.42
172.21.46.41
172.21.46.39
172.21.46.38
172.21.46.37

2.1、repo路径:/opt/elasticsearch/backup

2.2、注册repo

bash 复制代码
# 使用ansible 批量注册
ansible -i es_data_recover_hosts0914 all -m shell -a  "curl -s -X PUT "localhost:9200/_snapshot/backup?pretty" -H 'Content-Type: application/json' -d ' { "type": "fs", "settings": { "location": "/opt/elasticsearch/backup" } }'" -o

二、操作

1、将备份文件包传递到跳板机上

css 复制代码
ansible -i es_data_recover_hosts0914 all -m unarchive -a "remote_src=yes src=http://172.25.243.96:8222/emap_0914.tar dest=/opt/elasticsearch/ owner=elasticsearch group=elasticsearch"

2、清空index 并开始恢复

css 复制代码
ansible -i es_data_recover_hosts0914 all -m shell -a 'curl -s -X DELETE "localhost:9200/_all" && echo deleted && curl -s -X POST "localhost:9200/_snapshot/backup/emap_0914/_restore?" && echo restore started' -o

3、清除备份文件

bash 复制代码
# 源ES上的备份数据
curl http://localhost:9200/_snapshot/backup/emap_0914?pretty
curl -s -X DELETE "localhost:9200/_snapshot/backup/emap_0914"

rm -rf emap_0914.tar

# 目的ES上的备份数据

三、注意点

  1. repo路径
  2. Emap ES版本5.2.2
  3. Emap ES的安装路径有好几种,需要提前知晓(有/var/lib 下,也有/etc/elasticsearch下)
相关推荐
AI多Agent协作实战派17 分钟前
AI多Agent协作系统实战(二十三):Agent读HEARTBEAT.md不读AGENTS.md——openclaw的文件加载之谜
前端·数据库·人工智能·uni-app
2601_955760071 小时前
如何用 Claude Opus 5 API 批量扩展长尾关键词和文章选题
前端·python·搜索引擎
KaMeidebaby1 小时前
卡梅德生物技术快报|bli亲和力检测gst:告别批量跑胶:BLI实时酶切监测技术加速GST融合蛋白下游流程优化
前端·网络·数据库·人工智能·算法
触底反弹2 小时前
🚀 删了数据刷新又回来?3 组件 × 4 回调 × 3 坑讲透 React 父子通信
前端·javascript·react.js
耳东小鹿3 小时前
对象常用方法
前端
程序员海军3 小时前
一个 AI 应用开发程序员的一天,都在屏幕前忙些什么?
前端·后端·程序员
程序员黑豆3 小时前
鸿蒙应用开发:Stack堆叠组件实战——实现微信消息角标效果
前端·harmonyos
夏幻灵3 小时前
浏览器原理深度解析:从输入 URL 到页面展现的全流程剖析
前端
闲猫4 小时前
Agent工程实践:从WorkFlow到多Agent协作的落地笔记
java·服务器·前端
带娃的IT创业者4 小时前
重新定义前端构建速度:深度解析 SWC 如何用 Rust 颠覆 JavaScript 工具链
前端·javascript·rust·前端构建·swc