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 0 ];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"

 

转载于:https://www.cnblogs.com/sz-wenbin/p/11103102.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值