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

使用ElasticSearch-dump工具进行ES数据迁移、备份

elasticsearch-dump基本使用

该工具基于第三方Elasticdump工具来实现,仓库地址:https://github.com/elasticsearch-dump/elasticsearch-dump/tree/master,用于更加快捷方便的将Elasticsearch不同集群的数据进行索引备份和还原。

一、安装

1、通过node安装

node.js版本需大于v10.0.0

这里我就只是简单的使其临时生效,永久生效请自行写入具体的profile文件。

[root@localhost opt]# wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xz
[root@localhost opt]# tar xvf  node-v12.18.3-linux-x64.tar.xzexport 
[root@localhost opt]# PATH=$PATH:/root/node-v12.22.12-linux-x64/bin/
[root@localhost opt]# npm -v
6.14.6
[root@localhost opt]# node -v
v12.18.3

2、通过docker安装

这种比较方便

原本作者放出的镜像:

docker pull elasticdump/elasticsearch-dump

e.g:

docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \
--input=http://production.es.com:9200/my_index \
--output=/tmp/my_index_mapping.json \
--type=data

该镜像只能使用elasticdump对单个具体索引进行备份,局限性较大。

我在作者镜像的基础上增加了使用multielasticdump对多个索引进行整体备份/恢复 (镜像基于node:18-alpine,仅增加命令选择,无其他任何变更,可放心使用。)

docker pull zhy94666/elasticsearchdump:latest

e.g:

# 多索引备份
docker run -it --rm -v ./es_bak:/opt/es_bak zhy94666/elasticsearchdump more \
--direction=dump \
--match='*' \
--input=http://*****:9200 \
--output=/opt/es_bak
# 单索引备份
docker run --rm -ti -v /data:/tmp zhy94666/elasticsearchdump one \
--input=http://production.es.com:9200/my_index \
--output=/tmp/my_index_mapping.json \
--type=data

二、基本使用

elasticdump

备份单个索引

这个命令将会将索引INDEX的数据导出到指定路径下的INDEX.json文件。

elasticdump \--input=http://localhost:9200/INDEX \--output=/path/to/output/INDEX.json \--type=data
修改速率(默认100条每秒)
elasticdump \--input=http://localhost:9200/INDEX \--output=/path/to/output/INDEX.json \--type=data \--limit 1000
还原单个索引

这将会将INDEX.json文件中的数据导入到Elasticsearch中的指定索引。

elasticdump \--input=/path/to/output/INDEX.json \--output=http://localhost:9200/INDEX \--type=data \--limit 10000
备份/恢复至/从S3中

备份

elasticdump \--s3AccessKeyId "${access_key_id}" \--s3SecretAccessKey "${access_key_secret}" \--input=http://production.es.com:9200/my_index \--output "s3://${bucket_name}/${file_name}.json"

恢复

elasticdump \--s3AccessKeyId "${access_key_id}" \--s3SecretAccessKey "${access_key_secret}" \--input "s3://${bucket_name}/${file_name}.json" \--output=http://production.es.com:9200/my_index
修改备份文件大小
elasticdump \--input=http://localhost:9200/INDEX \--output=/path/to/output/INDEX.json \--type=data \--fileSize 10mb
仅备份mapping映射结构(–type参数,重要!)
elasticdump \--input=http://localhost:9200/INDEX \--output=/path/to/output/INDEX.json \--type=data (该参数可选default: data, options: [index, settings, analyzer, data, mapping, policy, alias, template, component_template, index_template])

multielasticdump

可选参数
  • match: '^.*$'通配符匹配需要备份/恢复的索引
  • order: 'asc'排序,可选:asc / desc
  • input: null输入源,地址、备份目录等等
  • output: null输出地址,地址、备份目录等等
  • timeout: null超时时间
  • limit: 100速率
  • offset: 0偏移量?
  • size: -1
  • direction: dump备份时,–direction 为 dump(默认值),则 --input 必须是 Elasticsearch 服务器的 URL,–output 必须是一个目录。每个匹配的索引将生成数据、映射和分析器文件。
    恢复时,–direction 应设为 load,–input 必须是转储目录,–output 必须是 Elasticsearch 服务器的 URL。
  • ignoreType: `` dump或load时忽略的类型,可选:data,mapping,analyzer,alias,settings,template
  • includeType: `` dump或load时允许的类型,可选:data,mapping,analyzer,alias,settings,template
  • prefix: ''' 允许为索引添加前缀,e.g:${index}-backup-2018-03-13
  • suffix: '' 允许为正在创建的索引添加后缀,e.g:es6-${index}

三、简单范例

多索引备份

multielasticdump \ --direction=dump \ --match='r*' \ --input=http://172.16.0.79:9200 \ --output=./es_bak

多索引还原

multielasticdump \ --direction=load \ --match='^.*$' \ --input=/root/es_bak \ --includeType='data' \ --output=http://elastic:123456@172.18.0.25:9200 \ --limit=2000

相关文章:

使用ElasticSearch-dump工具进行ES数据迁移、备份

elasticsearch-dump基本使用 该工具基于第三方Elasticdump工具来实现,仓库地址:https://github.com/elasticsearch-dump/elasticsearch-dump/tree/master,用于更加快捷方便的将Elasticsearch不同集群的数据进行索引备份和还原。 一、安装 …...

SpringMVC源码-SpringMVC源码请求执行流程及重点方法doDispatch讲解

一、开始请求 在浏览器访问http://localhost:8080/spring_mymvc/userlist这个接口,是个get请求。 FrameworkServlet类的service方法会被请求到: 调用路径如下: service:945, FrameworkServlet (org.springframework.web.servlet) service:764, HttpSer…...

《深度学习》OpenCV 指纹验证、识别

目录 一、指纹验证 1、什么是指纹验证 2、步骤 1)图像采集 2)图像预处理 3)特征提取 4)特征匹配 5)相似度比较 6)结果输出 二、案例实现 1、完整代码 2、实现结果 调试模式: 三、…...

爬虫入门之爬虫原理以及请求响应

爬虫入门之爬虫原理以及请求响应 爬虫需要用到的库, 叫requests. 在导入requests库之前, 需要安装它, 打开cmd: 输入pip install 库名 pip install requests后面出现successful或requirement already就说明已经下载成功了!!! 下载出现的问题: 1.有报错或者是下载慢 修改镜像…...

CTF ciscn_2019_web_northern_china_day1_web1复现

ciscn_2019_web_northern_china_day1_web1 复现,环境源于CTFTraining 分析 拿到题目扫描,发现没有什么有用资产 扫描过程中注册账号登录,发现上传入口 上传文件,发现下载删除行为,寻找功能点,发现不能访问…...

docker命令汇总

Docker 是一个开源的应用容器引擎,它允许开发者打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 以下是一些常用的 Docker 命令…...

云计算在现代企业中的应用与优势

云计算在现代企业中的应用与优势 随着信息技术的飞速发展,云计算已经成为现代企业不可或缺的一部分。作为一种创新的计算模式,云计算为企业提供了前所未有的灵活性和可扩展性,极大地推动了企业的数字化转型。 一、云计算的基本概念 云计算…...

Android平台GB28181实时回传流程和技术实现

规范解读 GB28181 中的 “INVITE” 是会话初始协议(SIP)中的一种请求方法,主要用于邀请一个或多个参与者加入特定的会话。在 GB28181 标准中,“INVITE” 请求通常用于发起媒体流的传输请求。当一个设备想要接收来自另一个设备的媒…...

Text-to-SQL方法研究

有关Text-to-SQL实现细节,可以查阅我的另一篇文章text-to-sql将自然语言转换为数据库查询语句 1、面临的挑战 自然语言问题往往包含复杂的语言结构,如嵌套语句、倒装句和省略等,很难准确映射到SQL查询上。此外,自然语言本身就存在歧义,一个问题可能有多种解读。消除…...

【Router】路由功能之MAC地址过滤(MAC Filter)功能介绍及实现

MAC地址过滤(MAC Filter) MAC 地址过滤是一种网络安全技术,通过在网络设备(如路由器)上设置规则,允许或阻止特定 MAC 地址的设备连接到网络。其主要作用是增强网络的安全性,防止未经授权的设备接入网络。 MAC Filter工作原理 MAC 地址过滤的工作原理是根据设备…...

Flink 本地 idea 调试开启 WebUI

Flink 本地 idea 调试开启 WebUI Maven 引用相关的包配置端口使用本地带UI环境启动 // maven 导入<!-- flink运行时的webUI --><dependency><groupId>org.apache.flink</groupId><artifactId>flink-runtime-web</artifactId><version…...

如何识别IP地址是独享的还是共享的

在网络环境中&#xff0c;IP地址的分配和使用方式直接影响到用户的在线隐私和访问安全。选择独享IP还是共享IP取决于用户的具体需求&#xff0c;理解这两种IP地址的差异及其特点至关重要。本文将探讨如何区分独享IP和共享IP&#xff0c;以及各自的优缺点。 1. 什么是独享IP与共…...

X-Spreadsheet使用教程:打造你的Web端电子表格应用

在Web开发中&#xff0c;经常需要处理数据表格的展示与编辑&#xff0c;而X-Spreadsheet作为一款轻量级、功能强大的JavaScript电子表格库&#xff0c;为开发者提供了一个便捷的解决方案。本文将详细介绍如何使用X-Spreadsheet在Web项目中创建和配置电子表格&#xff0c;让你的…...

订餐点餐|订餐系统基于java的订餐点餐系统小程序设计与实现(源码+数据库+文档)

订餐点餐系统小程序 目录 基于java的订餐点餐系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布…...

Tkinter制作登录界面以及登陆后页面切换(一)

Tkinter制作登录界面以及登陆后页面切换&#xff08;一&#xff09; 前言序言1. 由来2. 思路3. 项目结构描述4. 项目实战1. 登录界面实现&#xff08;代码&#xff09;2. 首页界面实现&#xff08;代码&#xff09;3. 打包build.py&#xff08;与main.py同级目录&#xff09;4.…...

Colorful/七彩虹将星X17 AT 23 英特尔13代处理器 Win11原厂OEM系统 带COLORFUL一键还原

安装完毕自带原厂驱动和预装软件以及一键恢复功能&#xff0c;自动重建COLORFUL RECOVERY功能&#xff0c;恢复到新机开箱状态。 【格式】&#xff1a;iso 【系统类型】&#xff1a;Windows11 原厂系统下载网址&#xff1a;http://www.bioxt.cn 注意&#xff1a;安装系统会…...

《Ubuntu20.04环境下的ROS进阶学习8》

一、中断和定时器中断 在ROS中我们经常会遇到要使用中断函数的情况&#xff0c;中断函数的触发方式有很多种&#xff0c;比如检测到某个引脚的电平变化&#xff0c;或某个数据达到了一定的范围&#xff0c;但最实用的中断触发方式还是定时器中断。 二、编写ROS的中断代码 ros中…...

ubuntu24.04 怎么调整swap分区的大小,调整为16G

在Ubuntu中&#xff0c;swap分区的大小通常建议为物理内存的1到2倍&#xff0c;具体取决于你的使用需求和系统内存。例如&#xff0c;如果你有8GB内存&#xff0c;swap可以设置为8GB到16GB。swap的主要作用是当物理内存不足时&#xff0c;提供额外的虚拟内存&#xff0c;帮助防…...

【论文阅读】视觉里程计攻击

Adversary is on the Road: Attacks on Visual SLAM using Unnoticeable Adversarial Patch 一、视觉SLAM的不安全因素 根据论文的分析&#xff0c;视觉SLAM由于完全依赖于特征&#xff0c;缺少验证机制导致算法不安全。前端在受到干扰的情况下&#xff0c;会导致误匹配增加&…...

解决 Git LFS 切换分支失败问题

场景描述 在本地已有分支 A 的情况下&#xff0c;目前工作在分支 B。当尝试从 B 分支切回 A 分支时&#xff0c;由于 A 分支存在 LFS 上传的大文件&#xff0c;导致切换失败。这个问题通常是因为某些 LFS 文件在服务器上不存在或没有权限访问。 报错日志 切换分支时遇到的错…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...