本文介绍: 之前也写过使用API请求方式对ES数据进行快照方式备份这里主要对之前的内容进行完善和补充。版本兼容快照包含构成索引磁盘数据结构副本。这意味着快照只能还原可以读取索引的 Elasticsearch 版本:在5.x创建索引快照可以还原为6.x。在2.x中创建索引快照可以还原为5.x。在1.x中创建的索引快照可以还原为2.x。相反,在1.x中创建的索引的快照不能还原为5.x或6.x,在2.x中创建的索引的快照不能还原为6.x。

https://blog.csdn.net/qq_34777982/article/details/131340478

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

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

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

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

重要的:在升级备份数据时,请记住,如果快照包含在与升级版本不兼容的版本中创建的索引,升级后将无法还原快照。
如果在需要还原与当前运行的群集版本不兼容的索引快照的情况下结束,可以在最新的兼容版本上还原该快照,并使用「reindex-fromremote」在当前版本上重建索引。只有在原始索引启用了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}&gt;”, # 快照的名称格式
repository”: “snapshot_backup”, # 备份repository
config”: {
indices”: “*”, # 备份的索引
include_global_state”: true # 设置true默认true),则创建的快照包括集群状态以及 feature 状态
},
retention”: {
expire_after”: “30d”, # 快照存储的天数
“min_count”: 5, # 最少存多少快照
max_count”: 50 # 最多存多少快照
}
}

  1. 手动执行快照任务
    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 .kibanaeventlog-8.1.3-000001

POST _snapshot/mytx_backup/test-snap-2022.05.04-13d-_6dore-kc1x0-fdaiq/_restore
{
indices”: “.kibanaeventlog-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错误地报告快照已在运行 – 问答 – 腾讯云开发者社区-腾讯云
————————————————
版权声明本文为CSDN博主「筑梦之路」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明
原文链接https://blog.csdn.net/qq_34777982/article/details/131340478

原文地址:https://blog.csdn.net/qq_32907195/article/details/134692764

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_7655.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注