elasticsearch snapshot快照指定多个索引并行备份——筑梦之路

news2024/9/20 14:26:40

Curl 命令方式对elasticsearch备份和恢复—— 筑梦之路_筑梦之路的博客-CSDN博客

之前也写过使用API请求的方式对ES数据进行快照方式备份,这里主要对之前的内容进行完善和补充。

版本兼容性

快照包含构成索引的磁盘上数据结构的副本。这意味着快照只能还原为可以读取索引的 Elasticsearch 版本:

  • 5.x中创建的索引快照可以还原为6.x
  • 2.x中创建的索引快照可以还原为5.x
  • 1.x中创建的索引快照可以还原为2.x

相反,在1.x中创建的索引的快照不能还原为5.x6.x,在2.x中创建的索引的快照不能还原为6.x

每个快照可以包含在不同版本的 Elasticsearch 中创建的索引,并且在还原快照时,必须能够将所有索引还原到目标集群中。如果快照中的任何索引是在不兼容的版本中创建的,则无法还原快照。

  • 重要的:在升级前备份数据时,请记住,如果快照包含在与升级版本不兼容的版本中创建的索引,升级后将无法还原快照。

如果在需要还原与当前运行的群集版本不兼容的索引快照的情况下结束,可以在最新的兼容版本上还原该快照,并使用「reindex-from-remote」在当前版本上重建索引。只有在原始索引启用了source时,才能从远程重新索引。检索和重新索引数据可能比简单地还原快照要花费更长的时间。如果你有大量的数据,我们建议你在继续之前使用数据子集测试远程进程的reindex,以了解时间要求。

Elasticsearch 保证高可用性的方式 

Elasticsearch 保证集群高可用的方式包含但不限于如下三种:

方式一:

            副本分片。主分片失效后,副本分片会被提升为主分片。

方式二:

           跨集群复制主从同步。简称:CCR,指的是索引数据从一个 Elasticsearch 集群复制到另一个 Elasticsearch 集群。对于主集群的索引数据的任何修改都会直接复制同步到从索引集群。

方式三:

          快照。快照在给定时刻对集群或者索引按了暂停键且拍摄了当时的全部“照片”。这样,当在之后的某个时间点,倘若集群或索引出现故障,可以基于之前的快照进行快速恢复。
 

Elasticsearch 7.x 之前版本备份

参考:Curl 命令方式对elasticsearch备份和恢复—— 筑梦之路_筑梦之路的博客-CSDN博客

Elasticsearch 7.x 之前版本备份方式及存在问题 

7.x之前的版本快照都是手动创建、手动控制的,不支持定时快照、定时删除历史快照等功能。

实际业务中,如何定时创建快照、定时删除时间比较久的历史快照呢?

关于快照的定时管理功能在 Elasticsearch 7.x+ 版本已经实现。7.4已经支持单个索引快照SLM定时快照管理,7.6+已经支持多个索引快照SLM定时并行管理备份

借助什么实现的呢?快照生命周期管理 (SLM) !

快照生命周期管理 (SLM) 是定期备份集群的最简单方法。SLM 策略会按照预设计划自动拍摄快照。该策略还可以根据用户自定义的保留规则(retention)删除快照。

 1. 配置ES快照仓库路径

# 配置快照仓库
cat elasticsearch.yml

path.repo: ["/usr/share/elasticsearch/data/snapshot_backup"]

2. 注册快照仓库

PUT _snapshot/snapshot_backup

{
  "type": "fs",
  "settings": {
    "location": "/usr/share/elasticsearch/data/snapshot_backup"
  }
}

3. 配置定时快照任务

PUT _slm/policy/daily_snapshots

{
  "schedule": "0 0/15 * * * ?",       # 定时任务 0/15 代表每15分钟创建一次快照
  "name": "<test-snap-{now/d}>",      # 快照的名称格式
  "repository": "snapshot_backup",    # 备份的repository
  "config": {  
    "indices": "*",                   # 备份的索引
    "include_global_state": true      # 设置为true(默认为true),则创建的快照包括集群状态以及 feature 状态
  },
  "retention": {                    
    "expire_after": "30d",            # 快照存储的天数
    "min_count": 5,                   # 最少存多少快照
    "max_count": 50                   # 最多存多少快照
  }
}

  

4. 手动执行快照任务

POST _slm/policy/daily_snapshots/_execute

retention定时任务

PUT _cluster/settings
{
  "persistent" : {
    "slm.retention_schedule" : "0 30 1 * * ?"
  }
}

retention立即执行

POST _slm/_execute_retention

5. 快照恢复

 查看指定仓库下的快照

GET _snapshot/snapshot_backup/*?verbose=false

注意:原恢复索引若存在是不可以的,需要提前删除后再恢复。

示例如下:

DELETE .kibana-event-log-8.1.3-000001

POST _snapshot/mytx_backup/test-snap-2022.05.04-13d-_6dore-kc1x0-fdaiq/_restore
{
  "indices": ".kibana-event-log-8.1.3-000001"
}

6. SLM快照生命周期管理常用命令

# 检查当前正在运行的快照

GET _snapshot/mytx_backup/_current

# 检查当前正在运行快照的详细信息

GET _snapshot/_status

# 查看全量SML poclicy执行历史

GET _slm/stats

"snapshots_taken" : 67 是执行快照的次数

# 查看特定SLM policy执行历史

GET _slm/policy/test-snapshots


参数说明:

last_success 代表上一次执行成功快照的名称;。

start_time 快照执行时间:2022-05-05 14:29:59。

next_execution_millis 下一次快照执行时间:2022-05-05 14:45:00。

snapshots_taken - snapshots_deleted 之差和retention 里规定的 50 个是基本一致的。

# 删除快照

DELETE _snapshot/mytx_backup/test-snap-2022.05.05-uhbwjyj8qwwhdxqvcgejbq

# 停止快照
POST _slm/stop

 Stop snapshot lifecycle management API | Elasticsearch Guide [8.8] | Elastic

Elasticsearch 6.6 官方文档 之「快照和还原」_path.repo_CG国斌的博客-CSDN博客

Elasticsearch 7.4错误地报告快照已在运行 - 问答 - 腾讯云开发者社区-腾讯云

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

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

相关文章

Kubernetes API Server源码学习(二):OpenAPI、API Resource的装载、HTTP Server具体是怎么跑起来的?

本文基于Kubernetes v1.22.4版本进行源码学习 6、OpenAPI 1&#xff09;、OpenAPI的作用 OpenAPI是由Swagger发展而来的一个规范&#xff0c;一种形式化描述Restful Service的语言&#xff0c;便于使用者理解和使用一个Service。通过OpenAPI规范可以描述一个服务&#xff1a;…

28离散Hopfield神经网络的联想记忆数字识别(附matlab)

1.简述 学习目标&#xff1a;利用离散Hopfield神经网络进行联想记忆数字识别 1982年&#xff0c;美国加州理工学院的J.Hopfield教授提出了一种单层反馈神经网络&#xff0c;称为Hopfield网络[1]。Hopfield网络是一种循环的神经网络&#xff0c;从输出到输入有反馈连接。Hopfiel…

Leetcode---350周赛

题目列表 6901. 总行驶距离 6890. 找出分区值 6893. 特别的排列 6447. 给墙壁刷油漆 一、总行驶距离 很显然&#xff0c;这题单纯就是一道数学应用题&#xff0c;我们要明白最关键的一点 &#xff1a;只有当mainTank>5并且additionalTank>0时&#xff0c;才能发生副油…

操作系统 - 操作系统结构

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

【Kubernetes资源篇】StatefulSet无状态服务管理入门实战详解

文章目录 一、StatefulSet理论知识1、StatefulSet Pod控制器特性2、什么是有状态服务和无状态服务&#xff1f;3、Deployment和StatefulSet区别 二、案例&#xff1a;StatefulSet资源实战演示1、创建WEB站点并验证StatefulSet特点2、StatefulSet滚动更新 三、总结 一、Stateful…

JavaFX第四篇 Button按钮和事件处理

JavaFX第四篇 Button按钮和事件处理 1. 代码2. 讲解3. 代码仓库 上一篇我们讲解了Hello World演示&#xff0c;主要用到Label标签的功能&#xff0c; 这里我们要介绍的是最常用的控件之一&#xff1a;按钮 在现在的软件开发过程中还没发现没有用到按钮的应用&#xff0c; 基本上…

【数据库原理与实践】第八章至第十章作业汇总(更新中)

填空题部分&#xff1a; Chp 8 安全性与完整性 part 1&#xff1a; 数据库的安全性是指保护数据库以防止不合法的使用所造成的&#xff08; 数据泄露、更改或破坏 &#xff09;。计算机系统有三类安全性问题&#xff0c;即&#xff08; 技术安全 &#xff09;、管理安全和…

ROS:计算图

目录 一、ROS计算图简介二、节点&#xff08;Node&#xff09;三、节点管理器&#xff08;Master&#xff09;四、消息&#xff08;Message&#xff09;五、话题&#xff08;Topic&#xff09;六、服务&#xff08;Service&#xff09;七、动作&#xff08;Action&#xff09;八…

LabVIEW开发燃油阀自动性能测试系统

LabVIEW开发燃油阀自动性能测试系统 燃油阀是航空燃油控制系统的核心部件。燃油阀的流量滞后直接影响控制精度、稳定性和可靠性&#xff0c;而燃油阀生产的性能测试是至关重要的步骤。但是&#xff0c;由于流动滞后是非线性的&#xff0c;因此很难控制和进行实时测试。随着厂家…

CSS3-浮动

&#xff08;了解&#xff09;标准流&#xff1a;又称文档流&#xff0c;是浏览器在渲染显示网页内容时默认采用的一套排版规则&#xff0c;规定了应该以何种方式排列元素 常见标准流排版规则&#xff1a; 1. 块级元素&#xff1a;从上往下&#xff0c;垂直布局&am…

Matplotlib---柱形图

1. 绘制简单的柱状图 bar函数用于绘制柱状图。下面是bar函数的语法格式&#xff1a; bar(x, height, width0.8, bottomNone, aligncenter, dataNone, **kwargs)参数解释&#xff1a; x&#xff1a;指定每个柱子的x轴坐标。height&#xff1a;指定每个柱子的高度。width&…

TypeScript ~ 掌握基本类型 ②

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; TypeScript ~ TS &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &…

vue的学习

title: VUE 一、Vue简介 1.1 简介 ::: tip Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式的js框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0…

F. Gardening Friends(树的直径)

Problem - 1822F - Codeforces 两位朋友Alisa和Yuki在他们的花园里种了一棵有n个顶点的树。树是一个无向图&#xff0c;没有循环、回路或多重边。这棵树中的每条边都有一个长度为k。最初&#xff0c;顶点1是树的根。 Alisa和Yuki种植这棵树不仅仅是为了好玩&#xff0c;而是想…

基于SpringBoot的流浪动物救助平台

1.引言 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于流浪动物救助平台所牵扯的管理及数据保存都是非常多的&#xff0c;例如首页、个人中心、会员管理、志愿者管理、流浪动物信息管理、领养信息管理、取消领养信息管理、志愿团队活动管理、志愿者申请表管理、…

【性能设计篇】数据库拓展

前两篇文章介绍了分布式存储的机制&#xff0c;为保证数据的高性能以及可拓展&#xff0c;采用分片/分区机制。为保证数据的高可用性&#xff0c;采用复制/镜像机制存储数据。一份数据存储多份。而这两种方式在数据中&#xff0c;就是分片/分区机制。分库分表/读写分离。 读写…

掌握这个关键技术,让你的APP开发事半功倍!——Flutter与其他方案的区别

Flutter动机是什么&#xff0c;解决啥痛点&#xff1f;优势在哪里&#xff1f; 介绍Flutter的历史背景和运行机制&#xff0c;并以界面渲染过程为例与你讲述其实现原理。 1 Flutter的历史背景 为不同的操作系统开发拥有相同功能的应用程序&#xff0c;开发人员只有两个选择&…

gitTortoise图形化工具下载步骤

一&#xff0c;简介 本文主要介绍如何下载安装gitTortoise图形化工具来管理和提交代码。 二&#xff0c;步骤介绍 2.1 安装包下载 下载地址&#xff1a;https://download.tortoisegit.org/tgit/ 打开后&#xff0c;界面如下&#xff1a; 点击选择最新的稳定release版本&am…

二分查找算法及实现

概念 二分查找算法也成为折半查找,是一种非常高效的工作于有序数组的查找算法. 实现 需求 现有一个有序数组 arr [1,2,3,4,5,6,7,8,9], 目标值target 2 ,要求返回目标值target在数组arr中的索引,没有则返回-1; 代码实现 private int binarySearch(int[] arr, int target)…

Android加快你的编译速度

工欲善其事&#xff0c;必先利其器。如果每次运行项目都要花费5-10分钟&#xff0c;那人的心态都要崩了。 Gradle构建流程 Gradle 的生命周期可以分为大的三个部分&#xff1a;初始化阶段&#xff08;Initialization Phase)&#xff0c;配置阶段&#xff08;Configuration Pha…