首页 > 其他 > 详细

ES数据备份与恢复

时间:2020-08-17 15:10:26      阅读:99      评论:0      收藏:0      [点我收藏+]

1.安装npm环境

# 安装npm(只需要在一个节点安装即可,如果前端还有nginx做反向代理可以每个节点都装)
[root@elkstack01 ~]# yum install -y npm
# 进入下载head插件代码目录
[root@elkstack01 src]# cd /usr/local/
# 从GitHub上克隆代码到本地
[root@elkstack01 local]# git clone git://github.com/mobz/elasticsearch-head.git
# 克隆完成后,进入elasticsearch插件目录
[root@elkstack01 local]# cd elasticsearch-head/
# 清除缓存
[root@elkstack01 elasticsearch-head]# npm cache clean -f
# 使用npm安装n模块(不同的项目js脚本所需的node版本可能不同,所以就需要node版本管理工具)

2.安装备份工具

[root@db01 ~]# npm install elasticdump -g

3.备份命令
1)备份参数

--input: 数据来源
--output: 接收数据的目标
--type: 导出的数据类型(settings, analyzer, data, mapping, alias, template)

2)备份数据到另一个ES集群

elasticdump   --input=http://10.0.0.51:9200/my_index   --output=http://100.10.0.51:9200/my_index   --type=analyzer
  
elasticdump   --input=http://10.0.0.51:9200/my_index   --output=http://100.10.0.51:9200/my_index   --type=mapping
  
elasticdump --input=http://10.0.0.51:9200/my_index --output=http://100.10.0.51:9200/my_index --type=data

elasticdump   --input=http://10.0.0.51:9200/my_index   --output=http://100.10.0.51:9200/my_index   --type=template

3)备份数据到本地的json文件

elasticdump   --input=http://10.0.0.51:9200/student   --output=/tmp/student_mapping.json   --type=mapping
  
elasticdump   --input=http://10.0.0.51:9200/student   --output=/tmp/student_data.json   --type=data

4)导出文件打包

elasticdump   --input=http://production.es.com:9200/my_index   --output=$   | gzip > /data/my_index.json.gz

5)备份指定条件的数据

elasticdump   --input=http://production.es.com:9200/my_index   --output=query.json   --searchBody="{\"query\":{\"term\":{\"username\": \"admin\"}}}"

# 帮助文档:https://github.com/elasticsearch-dump/elasticsearch-dump

4.导入命令

elasticdump   --input=./student_template.json   --output=http://10.0.0.51:9200   --type=template
  
elasticdump   --input=./student_mapping.json   --output=http://10.0.0.51:9200   --type=mapping
  
elasticdump   --input=./student_data.json   --output=http://10.0.0.51:9200   --type=data
  
elasticdump   --input=./student_analyzer.json   --output=http://10.0.0.51:9200   --type=analyzer

# 恢复数据的时候,如果数据已存在,会覆盖原数据

5.备份脚本

#!/bin/bash
echo ‘要备份的机器是:‘${1}
index_name=‘
test
student
linux7
‘
for index in `echo $index_name`
do
    echo "start input index ${index}"
    elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_alias.json --type=alias &> /dev/null
    elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_analyzer.json --type=analyzer &> /dev/null
    elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_data.json --type=data &> /dev/null
    elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_alias.json --type=alias &> /dev/null
    elasticdump --input=http://${1}:9200/${index} --output=/data/${index}_template.json --type=template &> /dev/null
done

6.导入脚本

#!/bin/bash
echo ‘要导入的机器是:‘${1}
index_name=‘
test
student
linux7
‘
for index in `echo $index_name`
do
    echo "start input index ${index}"
    elasticdump --input=/data/${index}_alias.json --output=http://${1}:9200/${index} --type=alias &> /dev/null
    elasticdump --input=/data/${index}_analyzer.json --output=http://${1}:9200/${index} --type=analyzer &> /dev/null
    elasticdump --input=/data/${index}_data.json --output=http://${1}:9200/${index} --type=data &> /dev/null
    elasticdump --input=/data/${index}_template.json --output=http://${1}:9200/${index} --type=template &> /dev/null
done

ES数据备份与恢复

原文:https://www.cnblogs.com/Applogize/p/13517430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!