如何安全备份 Elasticsearch 数据?两种方案任你选

背景

有时候需要对 Elasticsearch 集群进行备份,或者恢复到其他集群。

方案

以下提供两种方案:使用 Elasticsearch 自带的 SNAPSHOT 快照机制,或者利用 elasticsearch-dump 工具完成。

使用快照与恢复功能

将索引数据备份到其他文件存储,恢复时先恢复快照,再恢复索引。

在 elasticsearch.yaml 配置快照存储路径。

 
 

yaml

代码解读

复制代码

path.repo: ["/path/to/snapshot"]

注册快照存储库。

 
 

json

代码解读

复制代码

PUT /_snapshot/my_backup { "type": "fs", "settings": { "location": "/path/to/snapshot" } }

创建快照。

 
 

json

代码解读

复制代码

# 全量备份 PUT /_snapshot/my_backup/snapshot_cluster?wait_for_completion=true # 按需备份 PUT /_snapshot/my_backup/snapshot_demo_index?wait_for_completion=true { "indices": "demo_*", "ignore_unavailable": true "include_global_state": false. "metadata": { "author": "mengxiangge", "description": "backup before reindex" } }

恢复快照。

 
 

json

代码解读

复制代码

# 全量恢复 POST /_snapshot/my_backup/snapshot_cluster/_restore # 按需恢复 POST /_snapshot/my_backup/snapshot_demo_index/_restore

使用 elasticsearch-dump 工具

elasticsearch-dump 是一个开源的命令行工具,用于将 Elasticsearch 索引数据导出为 JSON 文件,或将 JSON 文件导入 Elasticsearch 中。项目地址可以查阅链接

假设源数据节点为 10.2.0.1:9200,迁移到 10.2.1.1:9200。

 
 

bash

代码解读

复制代码

# 迁移 Analyzer、Settings、Mapping elasticdump --input=http://10.2.0.1:9200/my_index --output=http://10.2.1.1:9200/my_index --type=analyzer elasticdump --input=http://10.2.0.1:9200/my_index --output=http://10.2.1.1:9200/my_index --type=settings elasticdump --input=http://10.2.0.1:9200/my_index --output=http://10.2.1.1:9200/my_index --type=mapping # 迁移数据 elasticdump --input=http://10.2.0.1:9200/my_index --output=http://10.2.1.1:9200/my_index --type=data

猜你喜欢

转载自blog.csdn.net/2401_89221867/article/details/146398409
今日推荐