Elasticsearch的快照备份
该文档适用于备份使用NAS的仓库类型。所有Elasticsearch集群中的服务通过挂载NAS目录来存放备份快照数据。
1、创建备份仓库
创建一个仓库名称:backup
curl -H "Content-Type: application/json" -XPUT http://10.10.18.10:9200/_snapshot/backup -d '
{
"type":"fs",
"settings":{"location":"/data/bak_es/snapshot"},
"max_snapshot_bytes_per_sec" : "50mb",
"max_restore_bytes_per_sec" : "50mb"
}'
提交成功了返回:{"acknowledged":true} ,在集群所有节点上创建:/data/bak_es/snapshot 目录
max_snapshot_bytes_per_sec
当快照数据进入仓库时,这个参数控制这个过程的限流情况。默认是每秒 20mb 。
max_restore_bytes_per_sec
当从仓库恢复数据时,这个参数控制什么时候恢复过程会被限流以保障你的网络不会被占满。默认是每秒 20mb。
2、查询备份仓库
curl -XGET 'http://10.10.18.10:9200/_snapshot?pretty'
结果
{
"backup" : { ######仓库名称
"type" : "fs", #仓库类型
"settings" : {
"location" : "/data/bak_es/snapshot" #备份数据存放路径
}
}
}
3、编写全索引备份脚本
安装curl
yum -y install curl
脚本名称:es_backup.sh
#!/bin/bash
#功能:用于备份elasticsearch的全索引快照,保留7天的备份快照。 #7天前的日期
B_DATA=$(date -d "7 day ago" +%F) #脚本运行日志
LOG_FILE="/tmp/es_backup.log" #运行脚本的当前时间
CUR_TIME=$(date +%F_%H-%M-%S) #仓库名称
STORE_NAME="backup" #快照名称
SNAPSHOT_PRE="snapshot_all"
SNAPSHOT_NAME="${SNAPSHOT_PRE}_${CUR_TIME}" #快照API
Snap_API="http://10.10.18.10:9200" #curl的绝对路径
CURL_CMD="/usr/bin/curl" #生成快照
echo "=====${SNAPSHOT_NAME}=====开始快照es" >> ${LOG_FILE}
#执行命令后阻塞等快照完成
#${CURL_CMD} -XPUT "${Snap_API}/_snapshot/${STORE_NAME}/${SNAPSHOT_NAME}?wait_for_completion=true" >> ${LOG_FILE}
#执行命令后立即返回,备份快照会在后台运行
${CURL_CMD} -XPUT "${Snap_API}/_snapshot/${STORE_NAME}/${SNAPSHOT_NAME}" >> ${LOG_FILE}
echo "=====${SNAPSHOT_NAME}=====结束快照es" >> ${LOG_FILE} #删除7前老的快照
for snap_name in $(${CURL_CMD} -sXGET "${Snap_API}/_snapshot/${STORE_NAME}/_all" | python -m json.tool | grep '"snapshot":' | awk -F'[:",]' '{print $5}'|grep ${SNAPSHOT_PRE} | grep "${B_DATA}")
do
${CURL_CMD} -XDELETE "${Snap_API}/_snapshot/${STORE_NAME}/${snap_name}"
if [ $? -eq ];then
echo "删除快照:${snap_name} success" >> ${LOG_FILE}
else
echo "删除快照:${snap_name} fail" >> ${LOG_FILE}
fi
done
4、查看所有备份全索引的信息
curl -XGET "http:// 10.10.18.10:9200/_snapshot/backup/_all" | python -m json.tool
查看单个备份全索引的信息
curl -XGET "http://10.10.18.10:9200/_snapshot/backup/snapshot_all?pretty"
Elasticsearch的快照备份的更多相关文章
- 将Elasticsearch的快照备份到HDFS
1.安装Elasticsearch插件repository-hdfs 下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins ...
- elasticsearch snapshot快照备份和恢复
环境:mac 使用brew 安装elasticsearch 1.在 /usr/local/etc/elasticsearch/elasticsearch.yml 文件中配置快照地址 p ...
- Elasticsearch 简单快照备份
创建仓库 POST http://10.10.14.201:9200/_snapshot/backup { "type": "fs", "settin ...
- ElasticSearch快照备份及恢复
工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照 ...
- Elasticsearch系列---生产数据备份恢复方案
前言 生产环境中运行的组件,只要有数据存储,定时备份.灾难恢复是必修课,mysql数据库的备份方案已经非常成熟,Elasticsearch也同样有成熟的数据备份.恢复方案,我们来了解一下. 概要 本篇 ...
- ELK数据迁移,ES快照备份迁移
通过curl命令或者kibana快照备份,恢复的方式进行数据迁移 环境介绍 之前创建的ELK 因为VPC环境的问题,需要对ELK从新部署,但是还需要保留现有的数据,于是便有了这篇文档. 10.0.20 ...
- Elasticsearch:Cluster备份 Snapshot及Restore API
Elasticsearch提供了replica解决方案,它可以帮我们解决了如果有一个或多个node失败了,那么我们的数据还是可以保证完整的情况,并且搜索还可以继续进行.但是,有一种情况是我们的所有的n ...
- lvm快照备份数据库(Mysql5.7)
备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...
- 通过递增快照备份 Azure 非托管 VM 磁盘
概述 Azure 存储提供创建 Blob 快照的功能. 快照将捕获该时间点的 Blob 状态. 本文介绍有关如何使用快照维护虚拟机磁盘备份的方案. 如果选择不使用 Azure 备份和恢复服务,但想要为 ...
随机推荐
- Nginx配置文件nginx.conf(八)
原文链接:https://www.cnblogs.com/knowledgesea/p/5175711.html 在nginx.conf的注释符号是#. 默认的nginx.conf内容为: #user ...
- jsp中for-each应用(遍历数据相乘再相加)
- plsql导入.dmp步骤
https://blog.csdn.net/yudianxiaoxiao/article/details/78231143 plsql导入.sql和.dmp文件时,会经常用到,对于初学者来说可 ...
- RaxML使用
1.下载 https://github.com/stamatak/standard-RAxML 2.How many Threads shall I use? 重要的是要知道,RAxML PThrea ...
- struct和class内存大小的计算
以下均是在VS2017下的结果 结构体内存大小的计算: 用例一: #include<stdio.h> union ss { int a; char b; }; struct MyStruc ...
- [LeetCode] 908. Smallest Range I 最小区间
Given an array A of integers, for each integer A[i] we may choose any x with -K <= x <= K, and ...
- [LeetCode] 763. Partition Labels 分割标签
A string S of lowercase letters is given. We want to partition this string into as many parts as pos ...
- ros脚本断点调试-编写过程可以把过程变量输出到log查看的方法
/caps-man registration-table :do {:foreach i in=[find interface~"5G"] do={:log info messag ...
- .NET Core:路由
(1)模板路由 在Startup的Configure方法中配置: app.UseMvc(routes =>{ routes.MapRoute( name: "areas", ...
- ECMAScript 初探 - 基础篇
ECMAScript 语言的标准是由 Netscape.Sun.微软.Borland 等公司基于 JavaScript 和 JScript 锤炼.定义出来的. ECMAScript 仅仅是一个描述,定 ...