Opensearch数据迁移:快照迁移数据全流程(下)

#作者:stackofumbrella

文章目录

  • 使用快照迁移数据
    • 注意事项
    • 在源集群注册快照仓库
    • 通过REST API注册快照仓库
    • 验证仓库是否注册成功
    • 在源集群创建快照文件
      • 创建快照
    • 查看同步状态
    • 在目标集群配置相同的快照仓库
    • 通过REST API注册相同名称的快照仓库
    • 验证仓库是否注册并导入成功
    • 在目标集群恢复快照
    • 在dashboard中查询数据

使用快照迁移数据

注意事项

不要启用include_global_state: true,除非明确知道恢复集群元数据可能导致的配置冲突。
快照不能跨大版本恢复如1.x → 2.x可能失败,需先升级再迁移。
如果使用安全插件(如 OpenSearch Security),需在目标集群重建角色、用户、权限。
快照不包含Kibana索引(.kibana*)的可视化配置以外的数据,如需迁移Kibana内容,建议单独导出/导入。
确保目标集群有足够的磁盘空间和分片容量。

在源集群注册快照仓库

在配置文件中开启path.repo选项
OpenSearch默认不启用任何快照仓库需手动配置,然后重启opensearch

$ mkdir /usr/share/opensearch/opensearch-backup $ chown -R opensearch:opensearch /usr/share/opensearch/opensearch-backup $ vim opensearch.yml path.repo: ["/usr/share/opensearch/opensearch-backup"]

通过REST API注册快照仓库

# my_backup是仓库名称,可自定义 curl -X PUT -ku admin:admin "https://192.168.131.158:9201/_snapshot/my_backup" \ -H 'Content-Type: application/json' \ -d '{ "type": "fs", "settings": { "location": "/usr/share/opensearch/opensearch-backup", "compress": true } }'

返回结果

验证仓库是否注册成功

$ curl -X GET -ku admin:admin "https://192.168.131.158:9201/_snapshot/my_backup"

返回结果

在源集群创建快照文件

创建快照

创建快照是异步操作

curl -X PUT -ku admin:admin "https://192.168.131.158:9201/_snapshot/my_backup/snapshot_20251223" \ -H 'Content-Type: application/json' \ -d '{ "indices": "test,test2", # 可选,多个索引以逗号隔开,留空则备份所有索引 "ignore_unavailable": true, "include_global_state": false, # 强烈建议设为false,避免恢复时覆盖集群设置 "partial": false }'

返回结果

查看同步状态

由于测试数据较少,同步很快完成了,无法显示异步效果

curl -X GET -ku admin:admin "https://192.168.131.158:9201/_snapshot/my_backup/snapshot_20251223/_status"

返回结果

将快照数据复制到目标集群可访问位置
需手动将/usr/share/opensearch/opensearch-backup下的内容(包括index-、meta-.dat、snap-*.dat等)复制到目标集群的对应目录

$ cd /usr/share/opensearch/ $ tar -zcf opensearch-backup.tar.gz opensearch-backup $ ls -lh

然后将打包好的文件通过scp或其他方式拷贝到目标集群的某个目录下

在目标集群配置相同的快照仓库

在配置文件中开启path.repo选项,这里配置的数据目录,可以和源集群目录不一样

$ mkdir /usr/share/opensearch/opensearch-backup $ chown -R opensearch:opensearch /usr/share/opensearch/opensearch-backup $ vim opensearch.yml path.repo: ["/usr/share/opensearch/opensearch-backup"]

通过REST API注册相同名称的快照仓库

仓库名称必须与源集群一致,否则无法识别快照

curl -X PUT -ku admin:admin "https://192.168.131.158:9202/_snapshot/my_backup" \ -H 'Content-Type: application/json' \ -d '{ "type": "fs", "settings": { "location": "/usr/share/opensearch/opensearch-backup", "compress": true } }'

返回结果

验证仓库是否注册并导入成功

$ curl -X GET -ku admin:admin "https://192.168.131.158:9202/_snapshot/my_backup/_all"

返回结果

看到snapshot_20251223已经能够识别到

在目标集群恢复快照

提前打开窗口监控恢复进度

watch -n 1 curl -X GET -ku admin:admin "https://192.168.131.158:9202/_cat/recovery?v"

恢复指定索引

curl -X POST -ku admin:admin "https://192.168.131.158:9202/_snapshot/my_backup/snapshot_20251223/_restore" \ -H 'Content-Type: application/json' \ -d '{ "indices": "test,test2", "ignore_unavailable": true, "include_global_state": false, "rename_pattern": "^(.*)$", "rename_replacement": "restored_$1" # 可选:重命名避免冲突,由于目标集群为空,所以rename这两个参数不使用 }'

返回结果

同时监控状态返回结果

在dashboard中查询数据

GET test/_search { "query": { "match_all": {} } } GET test2/_search { "query": { "match_all": {} } }

可以看到迁移过来的两个索引已经和源集群有一样的数据了

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

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

相关文章

STM32串口DMA实时性保障机制深度剖析

如何让STM32串口通信真正“零等待”?DMAIDLE机制实战全解析你有没有遇到过这样的场景:系统正在处理一个关键控制任务,突然蓝牙模块发来一串数据,结果因为串口中断太频繁,导致电机响应延迟;接收不定长JSON配…

OPC UA 服务端用户认证的底层逻辑:哈希与加盐应用详解

摘要在基于 Unified Automation SDK 开发 OPC UA 服务端时,用户认证(User Authentication)是安全体系的第一道防线。除了传输层的加密通道外,服务端如何安全地存储和验证用户信息至关重要。本文不涉及复杂的代码实现,而…

【All in RAG】检索增强生成 (RAG) 技术全栈指南(一)

[TOC](检索增强生成 (RAG) 技术全栈指南 一) 0. 前言 RAG技术(检索增强生成)是大模型应用开发中必用技术之一,本文按照开源项目All in RAG 的目录进行学。 项目文档:https://datawhalechina.github.io/all-in-rag GitHub: https://github.com/datawhal…

超详细版Proteus元件库对照表之SOP与QFP封装对照

从仿真到实物:SOP与QFP封装在Proteus中的真实映射之路你有没有遇到过这种情况——在 Proteus 里画好原理图、跑通仿真,信心满满导出PCB,结果发现焊盘对不上?一查才发现,用错了封装模型。更糟的是,原本选的是…

STM32CubeMX安装包实战案例引导式入门教程

从零开始玩转STM32:CubeMX实战入门全攻略 你有没有过这样的经历?手握一块崭新的STM32开发板,满心期待地想点亮第一个LED,结果却被复杂的时钟树、寄存器配置和引脚复用搞得焦头烂额?翻开数据手册几百页,却不…

从安装到运行:jScope与STM32CubeIDE完整示例

从零开始:用 jScope 实时“看见”你的 STM32 系统行为 你有没有过这样的经历? PID 控制调了三天,输出波形还是震荡不止;电池电压偶尔掉线,但串口日志里什么也抓不到;负载一突变,系统就“抽风”…

常用注解有哪些?(@Configuration, @Bean, @Autowired, @Value等)

Spring Boot 常用注解详解一、核心注解分类1. 配置类注解Configuration用途:声明一个类为配置类,相当于XML配置文件特点:会被CGLIB代理,确保Bean方法返回单例Configuration public class AppConfig {// 内部可以定义Bean方法 }Bea…

QSPI时序参数详解:超详细版调试指南

QSPI时序调优实战:从寄存器配置到信号完整性的深度拆解你有没有遇到过这样的场景?系统上电后偶尔卡死,JTAG一接上去却发现程序指针跑飞到了非法地址;或者在OTA升级时,固件读出来校验失败,但换块板子又正常—…

结合Proteus 8 Professional下载开展的电子竞赛培训实战案例

从仿真到实战:用Proteus打造电子竞赛的“预演战场” 一次“没焊电路板”的完整项目开发 去年带学生备战全国大学生电子设计竞赛时,有个小组遇到了典型难题:他们要做一个基于单片机的温控系统,但手头没有DS18B20温度传感器模块&…

Keil安装与ST-Link驱动兼容性问题全面讲解

Keil与ST-Link调试环境搭建:从驱动冲突到稳定连接的实战指南 你有没有遇到过这样的场景?刚装好Keil,满怀期待地打开uVision准备烧录程序,结果点击“Download”却弹出一串红字:“No ST-Link Detected”、“Cortex-M Acc…

高速时钟稳定性设计:STM32CubeMX核心要点

高速时钟稳定性设计:STM32CubeMX实战精要你有没有遇到过这样的问题?系统冷启动偶尔“卡死”,ADC采样值莫名漂移,USB通信频繁断开……排查半天软硬件,最后发现——根源竟是时钟配置不当。在嵌入式开发中,CPU…

手把手教程:如何高效克隆一个Demo代码仓库!

克隆Demo代码仓库是参与开源项目或学习开发实践的关键起点。借助Git命令行或图形化工具,用户可以将远程仓库完整复制到本地。本文将以清晰的步骤引导你完成整个克隆流程,确保新手也能快速上手。 一、下载模组的示例代码 下载示例代码到一个合适的项目目录…

嵌入式C语言在Keil uVision5中的编译优化策略

如何在 Keil uVision5 中用好编译优化?别让“快”毁了你的代码! 你有没有遇到过这样的情况: 代码明明进了中断,标志也置位了,主循环却像没看见一样卡在 while(flag 0) ? 切到 -O2 编译后&#xff0c…

STM32 Keil5破解详细步骤:超详细版安装说明

STM32开发环境搭建:Keil MDK-ARM 5配置与授权管理实战指南 在嵌入式系统的世界里,如果你正在使用STM32系列MCU,那么几乎绕不开一个名字—— Keil MDK 。作为ARM生态中历史最悠久、稳定性最强的集成开发环境之一,Keil Vision ID…

hh的蓝桥杯每日一题(交换瓶子)

15.交换瓶子 - 蓝桥云课 方法一&#xff1a;贪心做法 对于位置 i&#xff0c;如果 a[i] ≠ i 就把 a[i] 和 a[a[i]] 交换&#xff08;把当前数字放到它应该去的位置&#xff09; 这样每次交换都能让至少一个数字归位 重复直到 a[i] i #include<iostream> using na…

实验一 Python开发环境语法基础

实验一 Python开发环境&语法基础一、实验基本原理运用Anaconda搭建的Jupyter notebook平台编写实例Python程序。二、实验目的1、熟悉Python集成开发系统背景。2、熟悉Jupyter Notebook开发环境。3、熟悉编写程序的基本过程。三、具体要求1、熟悉Python的基本语法&#xff0…

LuatOS系统消息处理机制深度解析!

在LuatOS嵌入式运行环境中&#xff0c;系统消息是实现模块间通信与事件响应的核心机制。其消息处理机制采用轻量级事件驱动模型&#xff0c;有效降低CPU占用并提升系统实时性。此处列举了LuatOS框架中自带的系统消息列表。一、sys文档链接&#xff1a;https://docs.openluat.co…

避坑指南:LuatOS-Air脚本移植至LuatOS常见问题!

在实际开发中&#xff0c;许多开发者在尝试将LuatOS-Air脚本运行于标准LuatOS环境时遭遇报错或功能异常。这些问题多源于对底层驱动抽象层理解不足以及对系统任务模型的误用。本文将梳理典型错误场景&#xff0c;并提供可落地的修复方案&#xff0c;助力实现平滑迁移。 一、lua…

eide环境下GD32固件下载失败问题全面讲解

eIDE烧录GD32失败&#xff1f;从底层机制到实战排错的全链路技术拆解你有没有遇到过这样的场景&#xff1a;代码编译通过&#xff0c;接线看似没问题&#xff0c;点击“Download”按钮后却弹出一串红字——“Target Not Responding”、“Connection Failed”或干脆卡在“Connec…

实验二 Python 控制结构与文件操作

实验二 Python 控制结构与文件操作一、实验基本原理运用 Anaconda 搭建的 Jupyter notebook 平台编写 Python 实例程序。二、实验目的1、理解 Python 的流程控制、文件操作的基本原理。2、通过实际案例编程&#xff0c;掌握 Python 的流程控制、文件的基本操作。三、具体要求1、…