esh的snapshot快照备份

1)Elasticsearch的snapshot快照备份优点:通过snapshot拍摄快照,然后定义快照备份策略,能够实现快照自动化存储,可以定义各种策略来满足自己不同的备份
缺点:还原不够灵活,拍摄快照进行备份很快,但是还原的时候没办法随意进行还原,类似虚拟机快照
1、配置备份目录
在 elasticsearch.yml 的配置文件中注明可以用作备份路径 path.repo ,如下所示:
path.repo: ["/mount/backups", "/mount/longterm_backups"]
配置好后,就可以使用 snapshot api 来创建一个 repository 了,如下我们创建一个名为 my_backup 的 repository。
PUT /_snapshot/my_backup { "type": "fs", "settings": { "location": "/mount/backups/my_backup" } }
2、开始通过API接口备份
有了 repostiroy 后,我们就可以做备份了,也叫快照,也就是记录当下数据的状态。如下所示我们创建一个名为 snapshot_1 的快照。
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
【温馨提示】wait_for_completion 为 true 是指该 api 在备份执行完毕后再返回结果,否则默认是异步执行的,我们这里为了立刻看到效果,所以设置了该参数,线上执行时不用设置该参数,让其在后台异步执行即可。
3、增量备份
PUT /_snapshot/my_backup/snapshot_2?wait_for_completion=true
当执行完毕后,你会发现 /mount/backups/my_backup 体积变大了。这说明新数据备份进来了。要说明的一点是,当你在同一个 repository 中做多次 snapshot 时,elasticsearch 会检查要备份的数据 segment 文件是否有变化,如果没有变化则不处理,否则只会把发生变化的 segment file 备份下来。这其实就实现了增量备份。
4、数据恢复
通过调用如下 api 即可快速实现恢复功能:
POST /_snapshot/my_backup/snapshot_1/_restore?wait_for_completion=true { "indices": "index_1", "rename_replacement": "restored_index_1" }
2)elasticdump备份迁移es数据
索引数据导出为文件(备份)
# 导出索引Mapping数据 elasticdump \ --input=http://es实例IP:9200/index_name/index_type \ --output=/data/my_index_mapping.json \ # 存放目录 --type=mapping # 导出索引数据 elasticdump \ --input=http://es实例IP:9200/index_name/index_type \ --output=/data/my_index.json \ --type=data
索引数据文件导入至索引(恢复)
# Mapping 数据导入至索引 elasticdump \ --output=http://es实例IP:9200/index_name \ --input=/home/indexdata/roll_vote_mapping.json \ # 导入数据目录 --type=mapping # ES文档数据导入至索引 elasticdump \ --output=http:///es实例IP:9200/index_name \ --input=/home/indexdata/roll_vote.json \ --type=data
可直接将备份数据导入另一个es集群
elasticdump --input=http://127.0.0.1:9200/test_event --output=http://127.0.0.2:9200/test_event --type=data
type类型
type是ES数据导出导入类型,Elasticdump工具支持以下数据类型:type类型	说明
mapping	ES的索引映射结构数据
data	ES的数据
settings	ES的索引库默认配置
analyzer	ES的分词器
template	ES的模板结构数据
alias	ES的索引别名3)esm备份迁移es数据
备份es数据
esm -s http://10.33.8.103:9201 -x "petition_data" -b 5 --count=5000 --sliced_scroll_size=10 --refresh -o=./es_backup.bin
-w 表示线程数
-b 表示一次bulk请求数据大小,单位MB默认 5M
-c 一次scroll请求数量
导入恢复es数据
esm -d http://172.16.20.20:9201 -y "petition_data6" -c 5000 -b 5 --refresh -i=./dump.bin

https://zhuanlan.zhihu.com/p/540189644
https://www.cnblogs.com/windysai/p/14400830.html

#!/bin/bash#db_backups_conf.txt文件路径
db_backups_conf="/home/ljy/scripts/elasticsearch_backup_config.txt"base_path='/backup/elkdata'
mv_elk_bath='/backup/elkmvdata'#本机只保留最近3天快照
find ${mv_elk_bath}/ -type f -mtime +2 -exec rm -rf {} \; > /dev/null 2>&1##先把原来的挪走
# 获取前一天的:年,月,日
y=`date +"%Y" -d "-1day"`
ym=`date +"%Y%m" -d "-1day"`
d=`date "+%d" -d "-1day"`if [ ! -d ${mv_elk_bath}/${y}/${ym}/${d} ];
thenmkdir -p ${mv_elk_bath}/${y}/${ym}/${d}scp -rp ${base_path}/* ${mv_elk_bath}/${y}/${ym}/${d}/
fi#判断配置信息文件是否存在
if [ -f "${db_backups_conf}" ];thenecho $(date +'%Y-%m-%d %H:%M:%S')" 发现备份文件配置信息文件存在"#获取等号前内容,作为map中的Key值dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))#获取等号后内容,作为map中的value值dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))#创建一个空mapdeclare -A map=()#通过循环,将db_backups_conf配置文件中的信息存储在map中for((i=0;i<${#dbArrOne[@]};i++))domap[${dbArrOne[i]}]=${dbArrTwo[i]}done#获取要备份的索引名称的字符串indexNames=${map["indexNames"]}#获取默认的字符串分隔符old_ifs="$IFS"#设置字符串分隔符为逗号IFS=","#将要备份的索引名称value值的字符串进行分隔,获取一个数组indexNamesArr=($indexNames)#将字符串的分隔符重新设置为默认的分隔符IFS="$old_ifs"#获取当前年月日saveday=$(date +%Y%m%d)#获取超出备份天数的年月日delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)#执行命令,备份es数据{#检测es访问地址是否有效esStatus=$(curl -s -m 5 -IL http://${map["ipAddress"]}:${map["portNumber"]}|grep 200)if [ "$esStatus" != "" ];thenecho $(date +'%Y-%m-%d %H:%M:%S')" es地址访问正常:http://"${map["ipAddress"]}":"${map["portNumber"]}",开始备份数据"#遍历备份索引名称,逐个删除旧备份,重新全量备份for indexName in ${indexNamesArr[@]};doecho $indexName;##逐个判断索引是否存在indexStatus=$(curl -s -m 5 -IL http://${map["ipAddress"]}:${map["portNumber"]}/${indexName}|grep 200)if [ "$indexStatus" != "" ];then#先备份,然后再删除旧备份if [ ${map["backupBeforeDelete"]} == "yes" ];thenecho $(date +'%Y-%m-%d %H:%M:%S')" 开始同步备份索引:"${indexName}_backup_${saveday}curl -XPUT '127.0.0.1:9500/_snapshot/elk_backup/'${indexName}'_backup_'${saveday}'?wait_for_completion=true' -d '{"indices":"'${indexName}'"}'echo $(date +'%Y-%m-%d %H:%M:%S')" 完成同步备份索引:"${indexName}_backup_${saveday}#删除旧备份echo $(date +'%Y-%m-%d %H:%M:%S')" 开始删除备份索引:"${indexName}_backup_${delday}curl -XDELETE '127.0.0.1:9500/_snapshot/elk_backup/'${indexName}'_backup_'${delday}''echo $(date +'%Y-%m-%d %H:%M:%S')" 完成删除备份索引:"${indexName}_backup_${delday}fielseecho $(date +'%Y-%m-%d %H:%M:%S')" es中不能存在索引:"${indexName}fidonefi}
elseecho "文件不存在"
fi

备份到nas上的脚本
分每天和每月(每月仅备份1个)

#/bin/bash
#Date: 2020-08-02
#Script Name: elk_logs_bak
#备份elk快照数据到nas# 日志位置
base_path='/backup/elkdata'nas_bak='/nasdir/elk_bak/day_bak'
# 获取当前年信息和月信息
ym=$(date +"%Y%m")
dy=`date "+%Y%m%d"`
d=`date "+%d"`#按年月创建文件夹
if [ ! -d ${nas_bak}/${ym}/${d} ];
thensudo mkdir -p ${nas_bak}/${ym}/${d}
fiscp -rp ${base_path}/* ${nas_bak}/${ym}/${d}/#每月备份最后一天数据
nasmonth_bak='/nasdir/elk_bak/month_bak'
lastday=`date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%d"`
thisday=`date +"%d"`
#保留一个月的最后一天日志
if [ $thisday == lastday ];
thenmkdir -p ${nasmonth_bak}/${ym}/scp -rp ${nas_bak}/${ym}/${d}/* ${nasmonth_bak}/${ym}/
fifind ${nas_bak}/${ym}/ -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

竞赛选题 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

案例丨如何提升可视化分析能力?听听这两家企业怎么说

神策分析 2.5 版本正式发布经营分析能力以来&#xff0c;已有不少客户接入使用&#xff0c;并充分实现了可视化分析能力的提升。 本文将为大家分享两家客户的真实反馈&#xff0c;希望能够帮助您进一步了解神策经营分析的能力。 案例一&#xff1a;神策数据助力美篇打造公司级“…

基于Python+Pygame实现一个俄罗斯方块小游戏【完整代码】

俄罗斯方块&#xff0c;一款起源于上世纪80年代的经典电子游戏&#xff0c;凭借简单的规则和独特的魅力&#xff0c;一跃成为全球家喻户晓的经典。你知道其实只需要一些基础的编程知识&#xff0c;就可以自己实现它吗&#xff1f;今天&#xff0c;我们将使用Python的Pygame库&a…

第八天:gec6818arm开发板和Ubuntu中安装并且编译移植mysql驱动连接QT执行程序

一、Ubuntu18.04中安装并且编译移植mysql驱动程序连接qt执行程序 1 、安装Mysql sudo apt-get install mysql-serverapt-get isntall mysql-clientsudo apt-get install libmysqlclient-d2、查看是否安装成功&#xff0c;即查看MySQL版本 mysql --version 3、MySQL启动…

数据字段保证唯一性

数据字段保证唯一性 我们日常开发中&#xff0c;常见这么一个需求&#xff0c;要求一个code&#xff0c;一个name&#xff0c;需要保证code不重复&#xff0c;而code是用户输入的&#xff0c;常见的就比如一些字典等。 这个的我们常见的几种做法的话。 唯一键 要么就是直接…

有了Spring为什么还需要SpringBoot呢

目录 一、Spring缺点分析 二、什么是Spring Boot 三、Spring Boot的核心功能 3.1 起步依赖 3.2 自动装配 一、Spring缺点分析 1. 配置文件和依赖太多了&#xff01;&#xff01;&#xff01; spring是一个非常优秀的轻量级框架&#xff0c;以IOC&#xff08;控制反转&…

URL与URI小结

文章目录 一、URL是什么&#xff1f;URL的一般形式&#xff1a; 二、分类三、URI总结 一、URL是什么&#xff1f; 每条由Web服务器返回的内容都是和它管理的某个文件相关联的&#xff0c;这些文件中的每一个都有一个唯一的名字&#xff0c;叫做URL&#xff08;通用资源定位符&…

@DateTimeFormat 和 @JsonFormat 的详细研究

关于这两个时间转化注解&#xff0c;先说结论 一、介绍 1、DateTimeFormat DateTimeFormat 并不会根据得到其属性 pattern 把前端传入的数据转换成自己想要的格式&#xff0c;而是将前端的String类型数据封装到Date类型&#xff1b;其次它的 pattern 属性是用来规范前端传入…

java 自定义断言工具类

前言 java 开发过程中&#xff0c;应使用全局统一的断言工具类&#xff0c;使系统的断言处理一致&#xff0c;便于维护。 断言工具类 import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; impor…

python每日一题(模拟用户登录验证)

1、题目 预先设定正确用户名与密码&#xff0c;用来验证用户是否登录成功。 第一次&#xff1a; ① 输入用户名与密码&#xff0c;如果用户名与密码正确&#xff0c;则提示登录成功&#xff1b; ② 如果用户名错误&#xff08;不管密码是否正确&#xff09;&#xff0c;则需要重…

TOGAF架构开发方法—初步阶段

本章描述了满足新企业体系结构业务指令所需的准备和启动活动,包括组织特定体系结构框架的定义和原则的定义。 一、目标 初步阶段的目标是: 确定组织所需的体系结构功能: 审查进行企业架构的组织背景确定受体系结构功能影响的企业组织的元素并确定其范围确定与架构功能相交的…

10分钟设置免费海外远程桌面

前言 本教程将向您介绍如何使用 Amazon Lightsail 服务的免费套餐轻松搭建属于您的远程桌面。依托于 Amazon 全球可用区&#xff0c;您可以在世界各地搭建符合您配置需求的远程桌面。 本教程需要先拥有亚马逊云科技海外账户。现在注册亚马逊云科技账户可以享受12个月免费套餐…

北工大汇编——综合题(2)

题目要求 编写一个比赛得分程序。共有7 个评委&#xff0c;按百分制打分&#xff0c;计分 原则是去掉一个最高分和一个最低分&#xff0c;求平均值。要求&#xff1a; 评委的打分以十进制从键盘输入。成绩以十进制给出&#xff0c;并保留 1位小数。输入输出时屏幕上要有相应提…

基于海康Ehome/ISUP接入到LiveNVR实现海康摄像头、录像机视频统一汇聚,做到物联网无插件直播回放和控制

LiveNVR支持海康NVR摄像头通EHOME接入ISUP接入LiveNVR分发视频流或是转GB28181 1、海康 ISUP 接入配置2、海康设备接入2.1、海康EHOME接入配置示例2.2、海康ISUP接入配置示例 3、通道配置3.1、直播流接入类型 海康ISUP3.2、海康 ISUP 设备ID3.3、启用保存3.4、接入成功 4、相关…

代码随想录算法训练营第二天(C) | 977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵

文章目录 前言一、977.有序数组的平方二、209.长度最小的子数组三、59.螺旋矩阵总结 前言 java版&#xff1a; 代码随想录算法训练营第二天 | 977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵_愚者__的博客-CSDN博客 一、977.有序数组的平方 …

python实现命令tree的效果

把所有的文档都传到了git上,但是内容过多找起来不方便,突发奇想如果能在readme中,递归列出所有文件同时添加上对应的地址,这样只需要搜索到对应的文件点击就能跳转过去了… 列出文件总得有个显示格式,所以就按照tree的来了… 用python实现命令tree的效果 首先,这是tree的效果…

05预测识别-依托YOLO V8进行训练模型的识别——对视频中的图片进行识别

在前面的一些章节中,我们已经讲如何准备打标签的素材、如何制作标签、如何训练以及得到我们最终需要的用于YOLO目标识别的模型。那么现在我们就要正式开始,利用我们训练得到的best.pt,这个模型文件来对图片视频进行识别。 1、基本思路 公安交管场景中,我们经常会遇到需要…

坐标休斯顿,TDengine 受邀参与第九届石油天然气数字化大会

美国中部时间 9 月 14 日至 15 日&#xff0c;第九届石油天然气数字化大会在美国德克萨斯州-休斯顿-希尔顿美洲酒店举办。本次大会汇聚了数百名全球石油天然气技术高管及众多极具创新性的数据技术方案商&#xff0c;组织了上百场硬核演讲&#xff0c;技术专家与行业从业者共聚一…

C++ std::unique_lock 用法

文章目录 1.创建 std::unique_lock 对象2.自动加锁和解锁3.延迟加锁与手动加解锁4.尝试加锁5.配合条件变量使用6.小结参考文献 std::unique_lock 是 C11 提供的一个用于管理互斥锁的类&#xff0c;它提供了更灵活的锁管理功能&#xff0c;适用于各种多线程场景。 1.创建 std::u…

【unity小技巧】Unity 存储存档保存——PlayerPrefs、JsonUtility和MySQL数据库的使用

文章目录 前言PlayerPrefs一、基本介绍二、Demo三、优缺点 JsonUtility一、基本使用二、Demo三、优缺点 Mysql&#xff08;扩展&#xff09;完结 前言 游戏存档不言而喻&#xff0c;是游戏设计中的重要元素&#xff0c;可以提高游戏的可玩性&#xff0c;为玩家提供更多的自由和…