当前位置: 首页 > article >正文

ES 集群 A 和 ES 集群 B 数据流通

说明

如果在另一个 Elasticsearch 集群(ES 集群 A)中更新了备份数据,并且想要在当前环境(ES 集群 B)中看到相应的记录,你需要确保当前环境能够访问到 ES 集群 A 的备份数据。以下是可能的解决方案和步骤。

步骤 1:确保备份可见

  1. 确认备份位置

    • 在更新备份时,确保备份数据已经正确存储到 Elasticsearch 集群 A 中,并且备份的位置是 ES 集群 B 可以访问的。如果你是通过共享存储(如 NFS 或云存储)进行备份,确保当前环境能够访问该存储位置。
  2. 检查 Snapshot Repository

    • 确认在当前环境(ES 集群 B)中,配置了指向集群 A 的备份库。如果你使用了相同的快照存储位置,应该能够直接访问更新的备份。
    • 使用以下命令检查当前环境的快照库配置:
      GET /_snapshot/_all
      
    • 如果快照库没有列出集群 A 的备份位置,需要重新添加该库。比如,如果快照存储在一个共享的文件系统中,你需要在集群 B 中添加相应的快照库:
      PUT /_snapshot/my_backup
      {
        "type": "fs",
        "settings": {
          "location": "/path/to/backup/directory"
        }
      }
      
  3. 验证备份更新

    • 确保在集群 A 中的快照已经更新,并且目标索引或数据已正确包含在该快照中。
    • 可以通过以下命令查看集群 A 中的快照:
      GET /_snapshot/my_backup/_all
      

步骤 2:恢复备份到当前环境

  1. 执行恢复操作

    • 如果确认备份可见并且需要将更新的数据恢复到当前环境,你可以执行恢复操作:
      POST /_snapshot/my_backup/snapshot_name/_restore
      
    • 你可以在恢复过程中指定需要恢复的索引,或者使用 indices 参数恢复特定索引。
  2. 恢复时使用重命名规则(如果有冲突)

    • 如果当前环境已经存在相同名称的索引,可以使用重命名规则来避免冲突:
      POST /_snapshot/my_backup/snapshot_name/_restore
      {
        "indices": "index_to_restore",
        "rename_pattern": "(.+)",
        "rename_replacement": "$1_restored"
      }
      

步骤 3:同步数据(如果没有使用共享存储)

  1. 跨集群复制
    • 如果你想在集群 B 中直接访问集群 A 的数据,并且备份数据不可访问,你可以使用 跨集群复制(CCR) 功能。CCR 允许你从一个集群将索引数据复制到另一个集群。
    • 在集群 B 上创建一个跟随集群索引,指定集群 A 的数据源:
      PUT /index_to_follow/_ccr/follow
      {
        "remote_cluster": "cluster_a",
        "leader_index": "index_in_cluster_a"
      }
      

步骤 4:检查索引和数据

  1. 查看当前环境的索引

    • 确保恢复的索引已经出现在集群 B 中。可以使用以下命令查看:
      GET /_cat/indices?v
      
  2. 验证数据是否更新

    • 查询恢复的索引,确保数据已经更新:
      GET /index_to_restore/_search
      

步骤 5:确保集群状态健康

  • 确保集群的健康状态良好,并且数据恢复成功。在集群 B 中查看集群健康状态:
    GET /_cluster/health
    

总结

  • 更新备份: 确保备份已在集群 A 中更新,且当前环境能够访问该备份。
  • 恢复操作: 如果备份可访问,执行恢复操作将其恢复到集群 B。
  • 跨集群复制: 如果备份数据无法直接访问,可以使用 CCR 进行跨集群复制。
  • 确保集群健康: 在恢复后,验证数据是否正确恢复,并确保集群健康。

如果恢复过程中遇到其他问题,提供更多详细的错误信息和日志,方便进一步分析解决。

恢复实操

GET _cat/snapshots

DELETE /_snapshot/es-c6a76f44-nas

GET _cat/repositories

GET /_snapshot/_all

PUT /_snapshot/es-c6a76f44-nas
{
  "type": "fs",
  "settings": {
    "location": "/mnt/backup/es-c6a76f44"
  }
}

GET /_snapshot/es-c6a76f44-nas/_all

GET /_cat/tasks?v

POST /nyc_taxis/_close

GET /nyc_taxis/_stats

POST /nyc_taxis/_open

DELETE /nyc_taxis

POST /_snapshot/es-c6a76f44-nas/es-c6a76f44-backup-full-1735024525/_restore
{
  "indices": "nyc_taxis"
}

GET nyc_taxis/_recovery

GET _cat/shards?v=true&h=index,shard,prirep,state,node,unassigned.reason&s=state

GET /_cat/aliases?v

http://www.kler.cn/a/452704.html

相关文章:

  • IBatis和MyBatis在细节上的不同有哪些
  • 【Golang 面试题】每日 3 题(六)
  • oracle linux8.10+ oracle 23ai安装
  • Docker怎么关闭容器开机自启,批量好几个容器一起操作?
  • 【Linux】进程间通信 -> 匿名管道命名管道
  • Python知识图谱框架
  • 【数据分析】似然和极大似然估计
  • SQLSERVER、MYSQL LIKE查询特殊字符和转义字符相同与不同
  • 用Python开发高级游戏:实现3D迷宫游戏
  • 【Ubuntu】如何轻松设置80和443端口的防火墙
  • 如何使用Windows快捷键在多显示器间移动窗口
  • Git 代理配置——克隆仓库时遇到 OpenSSL SSL_ERROR_SYSCALL 的解决方案
  • 详解Ollama api (Windows环境)
  • 【QT开发自制小工具】PDF/图片转excel---调用百度OCR API接口
  • 【问题实录】服务器ping不通win11笔记本
  • 【每日学点鸿蒙知识】挖空样式、解密库性能问题、按钮下拉列表弹窗、Scroll组件回调事件问题、判断当前时间之后方法
  • wordpress网站用token登入开发过程
  • Idean 处理一个项目引用另外一个项目jar 但jar版本低的问题
  • 3D几何建模引擎Parasolid功能解析
  • dify的ChatFlow自定义上传图片并通过HTTP请求到SpringBoot后端
  • STM32F407 | Embedded IDE01 - vscode搭建Embedded IDE开发环境(支持JLINK、STLINK、DAPLINK)
  • DevOps实战:用Kubernetes和Argo打造自动化CI/CD流程(1)
  • Golang框架实战-KisFlow流式计算框架(9)-Cache/Params 数据缓存与数据参数
  • opencv中的色彩空间
  • 4.2 数据库分组查询
  • 机器学习(二)-简单线性回归