该文档适用于备份使用NAS的仓库类型。所有Elasticsearch集群中的服务通过挂载NAS目录来存放备份快照数据。

1、创建备份仓库

创建一个仓库名称:backup

  1. curl -H "Content-Type: application/json" -XPUT http://10.10.18.10:9200/_snapshot/backup -d '
  2. {
  3. "type":"fs",
  4. "settings":{"location":"/data/bak_es/snapshot"},
  5. "max_snapshot_bytes_per_sec" : "50mb",
  6. "max_restore_bytes_per_sec" : "50mb"
  7. }'

提交成功了返回:{"acknowledged":true} ,在集群所有节点上创建:/data/bak_es/snapshot 目录

max_snapshot_bytes_per_sec

当快照数据进入仓库时,这个参数控制这个过程的限流情况。默认是每秒 20mb 。

max_restore_bytes_per_sec

当从仓库恢复数据时,这个参数控制什么时候恢复过程会被限流以保障你的网络不会被占满。默认是每秒 20mb。

2、查询备份仓库

  1. curl -XGET 'http://10.10.18.10:9200/_snapshot?pretty'

结果

  1. {
  2. "backup" : { ######仓库名称
  3. "type" : "fs", #仓库类型
  4. "settings" : {
  5. "location" : "/data/bak_es/snapshot" #备份数据存放路径
  6. }
  7. }
  8. }

3、编写全索引备份脚本

安装curl

  1. yum -y install curl

脚本名称:es_backup.sh

  1. #!/bin/bash
  2. #功能:用于备份elasticsearch的全索引快照,保留7天的备份快照。
  3.  
  4. #7天前的日期
  5. B_DATA=$(date -d "7 day ago" +%F)
  6.  
  7. #脚本运行日志
  8. LOG_FILE="/tmp/es_backup.log"
  9.  
  10. #运行脚本的当前时间
  11. CUR_TIME=$(date +%F_%H-%M-%S)
  12.  
  13. #仓库名称
  14. STORE_NAME="backup"
  15.  
  16. #快照名称
  17. SNAPSHOT_PRE="snapshot_all"
  18. SNAPSHOT_NAME="${SNAPSHOT_PRE}_${CUR_TIME}"
  19.  
  20. #快照API
  21. Snap_API="http://10.10.18.10:9200"
  22.  
  23. #curl的绝对路径
  24. CURL_CMD="/usr/bin/curl"
  25.  
  26. #生成快照
  27. echo "=====${SNAPSHOT_NAME}=====开始快照es" >> ${LOG_FILE}
  28. #执行命令后阻塞等快照完成
  29. #${CURL_CMD} -XPUT "${Snap_API}/_snapshot/${STORE_NAME}/${SNAPSHOT_NAME}?wait_for_completion=true" >> ${LOG_FILE}
  30. #执行命令后立即返回,备份快照会在后台运行
  31. ${CURL_CMD} -XPUT "${Snap_API}/_snapshot/${STORE_NAME}/${SNAPSHOT_NAME}" >> ${LOG_FILE}
  32. echo "=====${SNAPSHOT_NAME}=====结束快照es" >> ${LOG_FILE}
  33.  
  34. #删除7前老的快照
  35. 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}")
  36. do
  37. ${CURL_CMD} -XDELETE "${Snap_API}/_snapshot/${STORE_NAME}/${snap_name}"
  38. if [ $? -eq ];then
  39. echo "删除快照:${snap_name} success" >> ${LOG_FILE}
  40. else
  41. echo "删除快照:${snap_name} fail" >> ${LOG_FILE}
  42. fi
  43. done

4、查看所有备份全索引的信息

  1. curl -XGET "http:// 10.10.18.10:9200/_snapshot/backup/_all" | python -m json.tool

查看单个备份全索引的信息

  1. curl -XGET "http://10.10.18.10:9200/_snapshot/backup/snapshot_all?pretty"

Elasticsearch的快照备份的更多相关文章

  1. 将Elasticsearch的快照备份到HDFS

    1.安装Elasticsearch插件repository-hdfs 下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins ...

  2. elasticsearch snapshot快照备份和恢复

    环境:mac   使用brew 安装elasticsearch   1.在 /usr/local/etc/elasticsearch/elasticsearch.yml 文件中配置快照地址     p ...

  3. Elasticsearch 简单快照备份

    创建仓库 POST http://10.10.14.201:9200/_snapshot/backup { "type": "fs", "settin ...

  4. ElasticSearch快照备份及恢复

    工作步骤: 1:建立备份快照数据挂载点,即共享文件目录(Shared Filesystem): 2:建立快照仓储repository: 3:建立snapshot快照备份: 4:恢复snapshot快照 ...

  5. Elasticsearch系列---生产数据备份恢复方案

    前言 生产环境中运行的组件,只要有数据存储,定时备份.灾难恢复是必修课,mysql数据库的备份方案已经非常成熟,Elasticsearch也同样有成熟的数据备份.恢复方案,我们来了解一下. 概要 本篇 ...

  6. ELK数据迁移,ES快照备份迁移

    通过curl命令或者kibana快照备份,恢复的方式进行数据迁移 环境介绍 之前创建的ELK 因为VPC环境的问题,需要对ELK从新部署,但是还需要保留现有的数据,于是便有了这篇文档. 10.0.20 ...

  7. Elasticsearch:Cluster备份 Snapshot及Restore API

    Elasticsearch提供了replica解决方案,它可以帮我们解决了如果有一个或多个node失败了,那么我们的数据还是可以保证完整的情况,并且搜索还可以继续进行.但是,有一种情况是我们的所有的n ...

  8. lvm快照备份数据库(Mysql5.7)

    备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...

  9. 通过递增快照备份 Azure 非托管 VM 磁盘

    概述 Azure 存储提供创建 Blob 快照的功能. 快照将捕获该时间点的 Blob 状态. 本文介绍有关如何使用快照维护虚拟机磁盘备份的方案. 如果选择不使用 Azure 备份和恢复服务,但想要为 ...

随机推荐

  1. Tkinter--Text文本框样例

    #-*- coding:utf-8 -*- """ Text 文本框样例 实现功能有:Ctrl+a全选文本, 竖向滚动条,横向滚动条(不自动换行) 自动缩放 有谁知道全选 ...

  2. 【Spring 整合篇】整合SpringMVC+Mybatis(一)

    首先,创建Maven Project,packaging为war,修改pom.xml. <properties> <!-- JDK版本 --> <java.version ...

  3. 知识点总结 JS(ES6)

    一.新增数据类型Symbol 概念: Symbol代表独一无二的 Symbol类型的值通过Symbol函数来生成,同时Symbol函数返回的值的唯一的 Symbol函数可以接收字符串作为参数,但是即使 ...

  4. python中使用rsa加密

    前提不多说, 为什么使用RSA加密请自行搜索,直接正为: 一. 生成公钥及私钥, 并保存 二. 使用公钥加密, 私钥解密 后记: 通常使用中, 会先对数据进行bas64加密, 再对加密后的内容使用rs ...

  5. Linux性能优化实战学习笔记:第十二讲

    一.性能优化方法论 不可中断进程案例 二.怎么评估性能优化的效果? 1.评估思路 2.几个为什么 1.为什么要选择不同维度的指标? 应用程序和系统资源是相辅相成的关系 2.性能优化的最终目的和结果? ...

  6. Linux性能优化实战学习笔记:第五十一讲

    一.上节回顾 上一节,我带你一起学习了常见的动态追踪方法.所谓动态追踪,就是在系统或者应用程序正常运行的时候,通过内核中提供的探针,来动态追踪它们的行为,从而辅助排查出性能问题的瓶颈. 使用动态追踪, ...

  7. [LeetCode] 895. Maximum Frequency Stack 最大频率栈

    Implement FreqStack, a class which simulates the operation of a stack-like data structure. FreqStack ...

  8. spring cloud gateway 全局过滤器

    全局过滤器作用于所有的路由,不需要单独配置,我们可以用它来实现很多统一化处理的业务需求,比如权限认证,IP访问限制等等. 接口定义类:org.springframework.cloud.gateway ...

  9. 遍历 combobox 中的各个选项

    For ii = 0 To cboTCAT.Items.Count - 1 MessageBox.Show(CType(cboTCAT.DataSource, DataTable).Rows(ii). ...

  10. Data Science: An overview

    Week 1 Data Science: An overview Objective: 1.Is data science the same as statistics or analysis? st ...