ElasticSearch 数据备份参考

ElasticSearch 数据备份参考

  • 总结: 规模数据建议使用Snapshot and Restore功能,或者用LogStash,小规模数据可以用 elasticdump。

  • 官方建议: 在灾难中,快照可以防止永久数据丢失。快照生命周期管理是对集群进行定期备份的最简单方法。有关详细信息,参阅创建快照。

    警告
    快照是备份集群的唯一可靠且受支持的方法。你无法通过复制 Elasticsearch 集群节点的数据目录来备份该集群。不支持从文件系统级备份中恢复任何数据的方法。如果尝试从这样的备份中恢复集群,它可能会失败,并报告损坏或丢失文件或其他数据不一致,或者它似乎成功又悄悄地丢失了一些数据。

  1. 可以使用Elasticsearch的Snapshot and Restore功能。

    • **快照还原**模块支持创建单独索引或整个集群的快照到本地或者远程仓库,像共享文件系统、S3或HDFS等。你可以非常方便地进行快照备份以及比较迅速地进行快照还原,但快照的还原需要Elasticsearch的版本能正确的读取索引文件。
    • 在为es集群环境做灾备和恢复时候,首先需要创建创建一个仓库,并往仓库中存放快照(每个快照中会区分不同的索引)。但是在创建仓库的时候,要求仓库的地址必须在每个集群环境中的elasticsearch.yml中进行配置
    • 可以借助ES的 OSS 插件将索引数据备份到OSS上,而不需要停机。 且可以自动备份。
    • 也可以单独备份到本地磁盘然后主动上传到OSS
    #!/bin/bash# 首先在elasticsearch.yml 新增, 然后重启ES
    path.repo: ["/home/es/snapshot"]# 创建本地快照存储库
    curl -X PUT "http://127.0.0.1:9200/_snapshot/local_repository"  -H 'Content-Type: application/json' -d '{"type": "fs","settings": {"location": "/home/work/es-backup/snapshot","compress": true}
    }'# 创建快照(备份)到本地磁盘
    curl -X PUT "http://127.0.0.1:9200/_snapshot/local_repository/snapshot_$(date +%s)" -H 'Content-Type: application/json' -d '{"indices": "evaluating","ignore_unavailable": true,"include_global_state": false
    }'# 查看状态
    # curl GET "http://127.0.0.1:9200/_snapshot/local_repository/snapshot_$(date +%s)"
    # 等待快照完成
    sleep 10# 上传备份到OSS
    ossutil cp -r /home/work/es-backup/snapshot oss://your-oss-bucket/your_backup_folder
    • https://doc.codingdict.com/elasticsearch/436/
  2. 也可以用 elasticdump 来实现

    • 小规模数据建议使用

      # 备份 mapping
      elasticdump --input=http://127.0.0.1:9200/evaluating --output=/home/work/data/es-backup/evaluating_mapping.json --type=mapping# 备份数据 - 全量
      elasticdump --input=http://127.0.0.1:9200/evaluating --output=/home/work/data/es-backup/evaluating_data.json --type=data --limit=2000 --parallel=5# 备份数据 -按范围
      elasticdump --input=http://127.0.0.1:9200/evaluating --output=/home/work/data/es-backup/evaluating_data_20230101.json --type=data --query='{"range": {"beginTime": {"gte": "2023-01-01", "lte": "2023-01-02"}}}'# 数据导出示例:
      elasticdump --input=http://127.0.0.1:9200/evaluating --output=/home/work/data/es-backup/20231204/evaluating_data.json --type=data --limit=2000 --parallel=10# 导入示例elasticdump --input=/home/work/es-import/evaluating_data_20231204.json --output=http://127.0.0.1:9200/evaluating  --type=data --limit=2000 --parallel=10 # Specify searchBody from a fileelasticdump \--input=http://production.es.com:9200/my_index \--output=query.json \--searchBody=@/data/searchbody.json  # Copy a single shard data:elasticdump \--input=http://es.com:9200/api \--output=http://es.com:9200/api2 \--input-params="{\"preference\":\"_shards:0\"}"
      
      • https://blog.csdn.net/qq_39680564/article/details/118539979
    • 您可以尝试以下方法来优化elasticdump导出数据的速度和实现快速备份ES数据:

      1. 增加并行度:使用elasticdump的–parallel参数来增加并行度,允许多个文档同时导出,从而提高导出速度。例如:elasticdump --input=http://source:9200/my_index --output=/data/my_index_mapping.json --type=mapping --parallel=10

      2. 调整批量参数:

        –limit=2000 # 每次操作的objects数量,默认100,数据量大的话,可以调大加快迁移速度

      3. 使用快照和恢复:Elasticsearch提供了快照和恢复功能,可以通过创建快照来备份整个索引,并在需要时进行快速恢复。这种方式可以更快速地备份和恢复大量数据。

      4. 增加节点:如果可能的话,增加ES集群的节点数量可以提高数据导出的速度。更多的节点意味着更多的资源和并行处理能力。

      5. 优化网络和硬件:确保网络连接和硬件性能良好,包括ES集群节点和备份目标存储的网络连接,以及备份目标存储的读写性能。

      6. 使用专业工具:考虑使用专业的ES数据备份工具,这些工具通常针对大规模数据备份进行了优化,能够更快速地备份和恢复数据。

  3. 优势对比

    elasticsearch-dump

    - 优势
    - 可以跨集群备份和恢复数据。
    - 可以选择性备份和恢复特定的索引或文档。
    - 可以在不同版本的Elasticsearch之间进行数据迁移。
    - 劣势
    - 需要手动设置备份策略和执行备份操作。
    - 不支持自动化定期备份。

    Elasticsearch的快照和备份功能

    - 优势
    - 集成在Elasticsearch中,易于配置和管理。
    - 支持自动化定期备份。
    - 可以在集群级别进行备份和恢复。
    - 劣势
    - 通常只能在相同版本的Elasticsearch之间进行数据迁移。
    - 对于跨集群备份和恢复,需要额外的设置和配置。

    使用场景

    - elasticsearch-dump适用于需要跨集群备份和恢复、选择性备份和恢复特定数据、以及在不同版本的Elasticsearch之间进行数据迁移的场景。
    - Elasticsearch的快照和备份功能适用于需要集成、自动化定期备份、以及集群级别备份和恢复的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/579568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VLAN简介

在配置交换机或者传输设备时,经常会提到vlan,这个vlan具体是啥呢? VLAN(Virtual Local Area Network)中文名为“虚拟局域网”。它是一种在物理网络上划分出逻辑网络的方法,将物理上的局域网在逻辑上划分为多…

设计模式——适配器模式(Adapter Pattern)

概述 适配器模式可以将一个类的接口和另一个类的接口匹配起来,而无须修改原来的适配者接口和抽象目标类接口。适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装…

分布式下有哪些好用的监控组件?

在之前的内容中,分析了分布式系统下的线上服务监控的常用指标,那么在实际开发中,如何收集各个监控指标呢?线上出现告警之后,又如何快速处理呢?本文我们就来看下这两个问题。 常用监控组件 目前分布式系统…

机器学习之降维(维度灾难和维度爆炸)

在机器学习中,降维是指通过减少数据的特征维度来简化数据表示的过程。高维数据集可能包含冗余的信息,降维的目标是保留尽可能多的有用信息,同时减少数据的维度。降维的主要优势包括提高模型的计算效率、减轻维度灾难(curse of dimensionality)的影响以及更好地可视化数据。…

MongoDB创建和查询视图(一)

目录 限制和注意事项 应用两种方式创建视图 本文整理mongodb的官方文档&#xff0c;介绍mongodb的视图创建和查询。 Mongodb中&#xff0c;允许使用两种方式来创建视图。 //使用db.createCollection()来创建视图 db.createCollection("<viewName>",{"…

Node.js版本对比

目录 1. node版本与Npm版本对照表 2. node版本与node-sass版本对照表 3. node-sass与sass-loader版本对照表 1. node版本与Npm版本对照表 以往的版本 | Node.js 下面显示最新的对应内容&#xff0c;如果需要查找历史版本&#xff0c;可以进入上面的页面查询 VersionLTSDateV8np…

鸿蒙实战-库的调用(ArkTS)

整体框架搭建 主页面、本地库组件页面、社区库组件页面三个页面组成&#xff0c;主页面由Navigation作为根组件实现全局标题&#xff0c;由Tabs组件实现本地库和社区库页面的切换。 // MainPage.ets import { Outer } from ../view/OuterComponent; import { Inner } from ..…

【微服务核心】Spring Boot

Spring Boot 文章目录 Spring Boot1. 简介2. 开发步骤3. 配置文件4. 整合 Spring MVC 功能5. 整合 Druid 和 Mybatis6. 使用声明式事务7. AOP整合配置8. SpringBoot项目打包和运行 1. 简介 SpringBoot&#xff0c;开箱即用&#xff0c;设置合理的默认值&#xff0c;同时也可以…

Debian Linux完全卸载gitlab-ce

Debian Linux完全卸载gitlab-ce 在Debian上本地安装了gitlab-ce&#xff0c;维护起来比较麻烦&#xff0c;而且占用了80和443端口 后面想改用docker&#xff0c;就想完全卸载gitlab-ce 卸载服务 sudo gitlab-ctl uninstall清理所有产生的数据&#xff0c;会提示等待60秒&am…

如何让机器人具备实时、多模态的触觉感知能力?

人类能够直观地感知和理解复杂的触觉信息&#xff0c;是因为分布在指尖皮肤的皮肤感受器同时接收到不同的触觉刺激&#xff0c;并将触觉信号立即传输到大脑。尽管许多研究小组试图模仿人类皮肤的结构和功能&#xff0c;但在一个系统内实现类似人类的触觉感知过程仍然是一个挑战…

“巴渝工匠杯”2022年重庆市职业院校技能大赛“区块链技术应用创新”赛项竞赛样题

“巴渝工匠杯”2022年重庆市职业院校技能大赛“区块链技术应用创新”赛项【区块链技术应用创新赛项】竞赛样题2022 年 2月目录第一部分&#xff1a;区块链网络部署第二部分&#xff1a;智能合约开发第三部分&#xff1a;区块链应用开发第四部分&#xff1a;文档编写第五部分&am…

Lua的底层原理与C#交互原理浅析【更新中】

目录 lua底层原理浅析 table底层原理浅析 Lua表的C语言定义 原理和实现 userdata lua和C#的交互机制&#xff08;更新中&#xff09; 基本介绍 Lua 与 C/C 的数据交互 Lua 调用 C/C 函数 C/C 调用 Lua 函数 基元类型传递 对象类型传递 Lua 调用 C# 总结 网上有很…

【go语言】CSP并发机制与Actor模型

一、多线程共享内存 1. 概念 多线程共享内存模型是一种并发编程模型&#xff0c;其中多个线程在同一个进程的地址空间中共享相同的内存区域。这种模型允许多个线程并发地读取和写入相同的数据结构&#xff0c;但也引入了一些潜在的问题&#xff0c;其中最常见的问题之一就是…

【WordPress插件】热门关键词推荐v1.3.0 Pro开心版

介绍&#xff1a; WordPress插件-WBOLT热门关键词推荐插件&#xff08;Smart Keywords Tool&#xff09;是一款集即时关键词推荐、关键词选词工具及文章智能标签功能于一体的WordPress网站SEO优化插件。 智能推荐&#xff1a; 热门关键词推荐引擎-支持360搜索、Bing、谷歌&a…

【已解决】c++qt如何制作翻译供程序调用

本博文源于笔者正在编写的工具需要创建翻译文件&#xff0c;恰好将qt如何进行翻译&#xff0c;从零到结果进行读者查阅&#xff0c;并非常推荐读者进行收藏点赞&#xff0c;因为步步都很清晰&#xff0c;堪称胎教式c制作&#xff0c;而且内容还包括如何部署在windows下。堪称值…

百分点科技获国际顶会NeurIPS LLM效率挑战赛冠军

近日&#xff0c;国际人工智能顶会NeurIPS在美国新奥尔良市举办&#xff0c;在同期举行的NeurIPS 2023大语言模型效率挑战赛中&#xff0c;百分点科技以领先第二名8分的显著优势夺得NVIDIA A100赛道冠军。 NeurIPS与ICML、ICLR并称机器学习领域国际三大顶会&#xff0c;代表着人…

离线服务器中python包的安装

因为网络安全原因我们服务器就是离线状态&#xff0c;只能支持本地上传&#xff0c;因此软件安装和python包的安装都很麻烦&#xff0c;这里记录一下python模块离线安装的方法 首先python包下载地址有两个&#xff0c;我只试过第一个 官方下载网站&#xff1a; https://pypi.…

layui(iconPickerFa)图标选择器插件,主要用于后台菜单图标管理

话不多说直接上代码 在页面中引入如下代码 <link rel"stylesheet" href"/template/admin/layui-v2.5.6/css/layui.css"> <script type"text/javascript" src"/template/admin/layui-v2.5.6/layui.js"></script> &…

SpringCloud 整合 Canal+RabbitMQ+Redis 实现数据监听

1Canal介绍 Canal 指的是阿里巴巴开源的数据同步工具&#xff0c;用于数据库的实时增量数据订阅和消费。它可以针对 MySQL、MariaDB、Percona、阿里云RDS、Gtid模式下的异构数据同步等情况进行实时增量数据同步。 当前的 canal 支持源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.…

CAN协议FPGA篇

一.引言 CAN&#xff08;Controller Area Network&#xff09;总线&#xff0c;即控制器局域网总线&#xff0c;是一种功能丰富的车用总线标准。该协议最初是由德国博世&#xff08;Bosch&#xff09;公司在1983年制定的&#xff0c;之后在美国密歇根州底特律举行的汽车工程师协…