news 2026/6/10 5:26:21

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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": {} } }

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:17:30

基于STM32的QSPI通信实战案例详解

STM32上的QSPI实战:从零搭建高速外部存储系统你有没有遇到过这样的困境?项目做到一半,内部Flash快爆了,GUI资源、音频文件、新功能代码全挤在一起,改一行代码都得精打细算;OTA升级时看着进度条一动不动&…

作者头像 李华
网站建设 2026/6/9 23:38:18

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

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

作者头像 李华
网站建设 2026/6/9 22:34:24

AD23新增元件库资源盘点:与AD20的生态扩展对比

AD23元件库生态跃迁:从“建库”到“治库”的工程革命你有没有经历过这样的场景?深夜赶板,原理图画到一半,发现缺一个关键电源芯片的封装——查遍本地库、论坛、第三方网站,最终找到一个名字像模像样但引脚顺序反了的Pc…

作者头像 李华
网站建设 2026/6/9 23:51:48

最长递增子序列的个数

本文参考代码随想录 给定一个未排序的整数数组,找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 输入: [2,2,2,2,2] 输出: 5 解释: 最长递增子序列的长度是…

作者头像 李华
网站建设 2026/6/9 17:16:45

AUTOSAR中CAN控制器驱动开发实战案例

AUTOSAR中CAN控制器驱动开发实战:从硬件抽象到通信链贯通当汽车ECU遇上标准化通信:为什么我们需要AUTOSAR CAN驱动?现代汽车里藏着上百个电子控制单元(ECU),它们像一个个“智能器官”——发动机管理、刹车系…

作者头像 李华
网站建设 2026/6/9 21:26:10

CMSIS底层初始化流程详解:系统学习手册

深入理解CMSIS底层初始化:从启动到main的每一步你有没有遇到过这样的情况?代码烧录成功,下载器能连上,但单片机就是“不干活”——LED不闪、串口没输出。查了一圈外设配置都没问题,最后发现原来是系统时钟没配对&#…

作者头像 李华