在作es backup和es restore(导入)时,需要停es集群中的data节点,只保留master节点。

以下图说明,星号标识的为master节点,其他为data节点。

停两个节点之前,可以在页面上确认红色标示的docs值,再停两个data节点,检查运行着的节点其docs值与停之前一致。

备份脚本es_backup.sh

#!/bin/bash

filename=`date +%Y%m%d%H`

backesFile=es$filename.tar.gz

mkdir -p /xor/elasticsearch/es_snapshot

mkdir -p /xor/elasticsearch/es_backup/es_dump

es_backup_dir=/xor/elasticsearch/es_backup

es_snapshot_dir=/xor/elasticsearch/es_snapshot

chmod -R 777 $es_snapshot_dir

curl -XPUT localhost:9200/_snapshot/es_snapshot -d '{"type":"fs","settings":{"location":"/xor/elasticsearch/es_snapshot"}}'

cd $es_backup_dir/es_dump

curl -XDELETE localhost:9200/_snapshot/es_snapshot/$filename?

echo -e '\nsleep 5\n'

sleep 10

curl -XPUT localhost:9200/_snapshot/es_snapshot/$filename?wait_for_completion=true

echo -e '\nsleep 5\n'

sleep 5

cp $es_snapshot_dir/* $es_backup_dir/es_dump -rf

cd ..

tar czf $backesFile es_dump/

rm es_dump -rf

cd $es_snapshot_dir

rm * -rf

echo -e '\nes data backup succeed!\n'

还原脚本es_restore.sh

#!/bin/bash

filename=$1

backesFile=es$filename.tar.gz

mkdir -p /xor/data2/packages/aqua/backup/es/es_snapshot

mkdir -p /xor/data2/packages/aqua/backup/es/es_backup/es_dump

es_backup_dir=/xor/data2/packages/aqua/backup/es/es_backup

es_snapshot_dir=/xor/data2/packages/aqua/backup/es/es_snapshot

chmod -R 777 $es_snapshot_dir

curl -XPUT localhost:9200/_snapshot/es_snapshot -d '{"type":"fs","settings":{"location":"/xor/data2/packages/aqua/backup/es/es_snapshot"}}'

cd $es_backup_dir

tar zxvf $backesFile

rm $es_snapshot_dir/* -rf

cp $es_backup_dir/es_dump/* $es_snapshot_dir -rf

curl -XPOST localhost:9200/_all/_close

echo -e '\nsleep 5\n'

sleep 5

curl -XPOST localhost:9200/_snapshot/es_snapshot/$filename/_restore?

rm es_dump -rf

echo -e '\n es data restore succeed!'

es_delete_by_query.sh

用于删除es的数据。脚本需要传四个参数,参数依次为表名、时间字段名、开始时间、结束时间,示例如下:

./es_delete_by_query.sh vhsession view_begin_time 2018-01-10 00:00:00

2018-01-10 18:00:00

,时间区间包含上下界,时间字段也可以只传日期

#!/bin/sh

# example: sh ./es_delete_by_query.sh "bundle" "licensing_window_start" "2018-01-05 15:30:00" "2018-01-05 15:30:00"

# example: sh ./es_delete_by_query.sh "bundle" "licensing_window_start" "2018-01-05" "2018-01-06"

doc_type=$1

datefield=$2

start_time=$3

end_time=$4

if [ ! -n "$start_time" ]; then

echo "the start_time is empty,please input again...."

exit 1

else

tt=`date -d "$start_time" +"%FT%T+0800"`

if [ 0 -eq $? ]

then

start_time=$tt

else

exit 1

fi

fi

if [ ! -n "$end_time" ]; then

echo "the end_time is empty,please input again...."

exit 1

else

tt=`date -d "$end_time" +"%FT%T+0800"`

if [ 0 -eq $? ]

then

end_time=$tt

else

exit 1

fi

fi

echo "args: doc_type = ${doc_type},datefield = ${datefield}, start_time = ${start_time}, end_time = ${end_time}"

echo "query count response : "

curl -XPOST http://localhost:9200/aquapaassearch/${doc_type}/_count?pretty -d '

{

"query": {

"filtered": {

"filter": {

"bool": {

"must": {

"range": {

"'${datefield}'": {

"from": "'${start_time}'",

"to": "'${end_time}'",

"include_lower": true,

"include_upper": true

}

}

}

}

}

}

}

}'

read -p "please input '1'(otherwise not) to confirm if you need delete:" flag

if [ "1" = "$flag" ]; then

echo "delete response : "

curl -XDELETE http://localhost:9200/aquapaassearch/${doc_type}/_query?pretty -d '

{

"query": {

"filtered": {

"filter": {

"bool": {

"must": {

"range": {

"'${datefield}'": {

"from": "'${start_time}'",

"to": "'${end_time}'",

"include_lower": true,

"include_upper": true

}

}

}

}

}

}

}

}'

echo "delete sucess!!!"

else

echo "confirmed just query count!!!"

fi

java查询es restore_ES(elasticsearch)备份还原脚本相关推荐

  1. Java查询ES (elasticsearch) 对短句进行关键词摘要 并分词查询

    项目场景: 提示:根据用户最近浏览的文章标题进行关键词摘要,并根据结果,查询ES 这里关键的是根据内容获取关键词摘要的方法 关键词摘要 使用IK中文分词 pom文件 <!--中文分析器--> ...

  2. java查询elasticsearch_JAVA使用ElasticSearch查询in和not in的实现方式

    ElasticSearch Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Ja ...

  3. SqlServer整库备份还原脚本

    最近领导要求定时备份数据库(不是我的作业), 搜了一下资料还不少, 先mark一下, 得空再验证吧!!! 以下内容为转载 转自:https://www.cnblogs.com/want990/p/74 ...

  4. java查询es分词结果_ElasticSearch 分词器

    ES内置的6种分词器 standard analyzer 标准分词器,未设置分词器时默认使用此分词器.在空格.符号处切,中文部分切割为一个一个的汉字. 切的意思是不要了.多个连续的空格算一个空格,符号 ...

  5. java操作es查询数据总量

    通过java查询es的数据总量返回数据接口 public long rangeCount(String indexName, String timeFileds, String vehicleidFi ...

  6. es elasticsearch 几种常见查询场景 二次分组 java读取es的查询json文件

    大家好,我是烤鸭: es中几种常见的查询场景,使用java读取es的json文件进行查询. es 中文使用手册. https://www.elastic.co/guide/cn/elasticsear ...

  7. java 查询 代码_java使用es查询的示例代码

    众所周知,elasticsearch简称es,它是基于基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开 ...

  8. elasticsearch数据备份还原

    elasticsearch数据备份还原 1.在浏览器中运行http://XXX.XXX.XXX.XXX:9200/_flush,确保索引数据能保存到硬盘中. 2.原数据的备份.主要是elasticse ...

  9. ES(Elasticsearch)基本查询总结(含docker安装,python操作)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 官网:https://www.elastic.co/guide/index.html 搜索语法:https://www.elastic.co/guid ...

最新文章

  1. 人脸对齐--Face Alignment at 3000 FPS via Regressing Local Binary Features
  2. 【OpenCV3】直线拟合——cv::fitLine()详解
  3. C++设计模式之适配器模式
  4. sudo dpkg 找不到命令_【干货】Linux中实用但很小众的11个炫酷终端命令
  5. Django实战1-权限管理功能实现-01:搭建开发环境
  6. batchplot插件用法_Batchplot怎么安装及使用?Batchplot的安装方法及使用方法介绍
  7. blog群发王(价值1980元)源代码提供
  8. 20151210编译高通的qca9531的wireless版本 修改版本4
  9. 当索尼停产单反:好产品是怎么被时代「消融」的?
  10. 微信小程序开挂模式即将启动
  11. Linux 重命名文件和文件夹
  12. PyCharm 激活 截止日期2100年1月
  13. 漫步数学分析三十九——隐函数定理
  14. Linux正则表达式和文本处理工具(gred、awk、sed)
  15. 数学分析:换元积分法与分部积分法
  16. python下载视频工具
  17. 大数相乘 (模板)
  18. 半导体器件物理【21】PN结 —— 载流子分布、正偏反偏
  19. 设计模式 外观模式 一键电影模式
  20. Angular之HelloWorld——Angular(1)

热门文章

  1. sql语句的各种连接
  2. vn.py开源量化框架把我整蒙了,开始填坑。
  3. 13.罗马数字转化为整型
  4. 螺旋矩阵java_Java 实现螺旋矩阵的方法
  5. 冈萨雷斯DIP第9章知识点
  6. 在工作中,亿方云和坚果云哪个好?
  7. 大数据可视化服务商有那些?
  8. 腾讯QQ Linux版本
  9. NDCG(@R)指标
  10. android 各大厂商型号手机本地录音路径