当前位置: 首页 > news >正文

【Elasticsearch索引】Recovery恢复索引

文章目录

  • 索引恢复
    • 恢复列表
    • 获取恢复信息
    • 响应
    • 详细信息
    • 正在进行的恢复
    • 响应解析
    • 高级设置
  • 本地分片恢复
  • 事务日志

索引恢复

索引恢复提供了对正在进行的索引分片恢复的洞察。恢复状态可以针对特定的索引报告,也可以在集群范围内报告。

恢复列表

recovery命令是索引分片恢复的视图,包括正在进行的和已经完成的。

GET _cat/recovery?v

获取恢复信息

GET index1,index2/_recovery?human
GET /_recovery?human

响应

该索引总大小130M,有5个主分片

{"es-7.7.0-2020.10.23.11.50" : {"shards" : [{"id" : 3,   "type" : "EXISTING_STORE",   "stage" : "DONE",    "primary" : true,   "start_time" : "2020-10-23T06:56:58.414Z",  "start_time_in_millis" : 1603436218414,"stop_time" : "2020-10-23T06:56:58.533Z","stop_time_in_millis" : 1603436218533,"total_time" : "119ms",     "total_time_in_millis" : 119,"source" : {"bootstrap_new_history_uuid" : false},"target" : {"id" : "B-M3lfhbQfS88kIq64pECQ","host" : "10.253.4.67","transport_address" : "10.253.4.67:9300","ip" : "10.253.4.67","name" : "node02"},"index" : {"size" : {"total" : "26.2mb","total_in_bytes" : 27533706,"reused" : "26.2mb","reused_in_bytes" : 27533706,"recovered" : "0b","recovered_in_bytes" : 0,"percent" : "100.0%"},"files" : {"total" : 67,"reused" : 67,"recovered" : 0,"percent" : "100.0%"},"total_time" : "10ms","total_time_in_millis" : 10,"source_throttle_time" : "-1","source_throttle_time_in_millis" : 0,"target_throttle_time" : "-1","target_throttle_time_in_millis" : 0},"translog" : {"recovered" : 0,"total" : 0,"percent" : "100.0%","total_on_start" : 0,"total_time" : "100ms","total_time_in_millis" : 100},"verify_index" : {"check_index_time" : "0s","check_index_time_in_millis" : 0,"total_time" : "0s","total_time_in_millis" : 0}},。。。

详细信息

GET es-7.7.0-2020.10.23.11.50/_recovery?human&detailed=true

与以上信息相似

正在进行的恢复

GET _recovery?human&active_only=true

响应解析

字段描述
idShard ID
type恢复类型: 1、store 2、snapshot 3、replica 4、 relocating
stage恢复阶段: init: 初始化 index: 读取索引元数据并将数据从源复制到目标 start: 开启索引,并提供使用 translog: 回放事务日志 finalize: 清理 done: 完成
primary是否主分片
start_time恢复开始时间
stop_time恢复结束时间
total_time_in_millis恢复耗时
source恢复源: 存储库描述:如果是从快照恢复的话 源节点描述
target目标节点
index关于物理索引恢复的统计信息
translog关于事务日志恢复的统计信息
start关于打开和启动索引时间的统计信息

高级设置

可以设置以下专家设置来管理恢复策略。(动态更新)

PUT _cluster/settings
{"transient": {"indices.recovery.max_bytes_per_sec": "40mb"}
}默认 40mb. 

本地分片恢复

该模块在整个集群重启期间存储集群状态和分片数据。

本地网关模块在整个集群重启期间存储集群状态和分片数据。

该模块配置一般用于大型集群

以下静态设置,必须在每个主节点上设置,控制一个新选出的主应该等待多长时间,在它试图恢复集群状态和集群的数据:

gateway.expected_nodes 
预计在集群中的(数据或主)节点的数量。一旦预期数量的节点加入集群,本地分片的恢复就会开始。默认值为0gateway.expected_master_nodes 
预计在集群中的主节点的数量。一旦预期的主节点数量加入集群,本地分片的恢复就会开始。默认值为0gateway.expected_data_nodes 
预期在集群中的数据节点的数量。一旦预期数量的数据节点加入集群,本地分片的恢复就会开始。默认值为0gateway.recover_after_time 
如果没有达到预期的节点数量,恢复进程将等待配置的时间,然后再尝试恢复,这与恢复无关。如果配置了expected_nodes设置之一,则默认为5m。

一旦recover_after_time持续时间超时,只要满足以下条件,恢复就会启动:

gateway.recover_after_nodes 
要有这么多数据或主节点加入集群,就可以恢复。gateway.recover_after_master_nodes 
只要这么多主节点加入了集群,就可以恢复。gateway.recover_after_data_nodes 
只要有这么多数据节点加入集群,就可以恢复。

这些设置只在完整的集群重新启动时生效。

事务日志

对Lucene的更改只会在Lucene提交期间持久化到磁盘上,这是一个相对昂贵的操作,因此不能在每次索引或删除操作之后执行。当进程退出或硬件出现故障时,在一次提交之后或之前发生的更改将被Lucene从索引中删除。

因为Lucene提交的开销太大,无法在每个单独的更改上执行,所以每个分片副本都有一个与之关联的事务日志,称为translog。所有的索引和删除操作在被内部Lucene索引处理之后,但是在它们被确认之前,都被写到translog中。在崩溃的情况下,当分片恢复时,已经确认但在上次Lucene提交中还没有包含的最近事务可以从translog中恢复。

Elasticsearch刷新是执行Lucene提交并启动新的跨日志的过程。刷新是在后台自动执行的,以确保translog不会增长得太大,否则在恢复过程中会花费相当长的时间来重播它的操作。手动执行刷新的能力也通过API公开,尽管很少需要这样做。

默认情况下,如果Elasticsearch每5秒进行fsyncs和提交translog。持久性设置为async,或者在每个索引、删除、更新或批量请求的末尾设置为request(默认)。

更准确地说,如果设置为request, Elasticsearch只会在跨日志在主服务器和每个分配的副本上成功地同步并提交之后,向客户端报告索引、删除、更新或批量请求的成功。

index.translog.sync_intervaltranslog多长时间同步到磁盘并提交一次,而不考虑写操作。默认为5s。不允许小于100ms。index.translog.durability 是否在每个索引、删除、更新或批量请求后fsync和提交translog。此设置接受以下参数:request (默认)fsync和提交后,每个请求。在发生硬件故障时,所有已确认的写操作都已提交到磁盘。async:fsync和在后台提交每个sync_interval。在发生硬件故障时,自上次自动提交以来所有已确认的写操作都将被丢弃。index.translog.flush_threshold_size translog存储了所有还没有安全地保存在Lucene中的操作(也就是说,它们不是Lucene提交点的一部分)。尽管这些操作可用于读取,但如果分片要关闭并必须恢复,则需要对它们重新建立索引。此设置控制这些操作的最大总大小,以防止恢复时间过长。一旦达到最大大小,刷新就会发生,生成一个新的Lucene提交点。默认为512 mb。index.translog.retention.size 要保存的跨日志文件的总大小。在恢复副本时,保留更多的translog文件会增加执行基于同步操作的机会。如果translog文件不够,复制恢复将退回到基于文件的同步。默认为512 mb。7.4后不建议设置,未来会被废弃index.translog.retention.age 保存translog文件的最大持续时间。默认为12h。7.4后不建议设置,未来会被废弃

可以考虑的优化设置:

    "settings": {"translog": {"flush_threshold_size": "1gb",//内容容量到达1gb异步刷新"sync_interval": "30s",//间隔30s异步刷新(设置后无法更改)"durability": "async"//异步刷新}}}
http://www.lryc.cn/news/310916.html

相关文章:

  • 如何在 Linux 中快速清空文件而不删除它们?
  • SpringBoot 配置文件${variable:default}用法
  • CUDA学习笔记02:测试程序hello world
  • 2023年第十四届蓝桥杯大赛软件类省赛C/C++大学A组真题
  • 项目部署发布
  • MATLAB环境下基于离散小波变换的心电信号伪影去除及PQRST波检测
  • SwiftUI 在 App 中弹出全局消息横幅(下)
  • 2023年06月CCF-GESP编程能力等级认证Scratch图形化编程三级真题解析
  • 升级openssl
  • 软考基础知识2
  • Python基本数据类型介绍
  • 边缘计算网关:连接物理世界与数字世界的桥梁-天拓四方
  • NTP网络校时服务器(GPS北斗卫星校时系统)应用场景
  • Intel 芯片 Mac 如何重新安装系统
  • 【uni-app】condition 启动模式配置,生产环境无效,仅开发期间生效
  • sql单表运用11.3
  • YOLOv5目标检测学习(1):yolo系列算法的基础概念
  • 【大数据】通过 docker-compose 快速部署 MinIO 保姆级教程
  • VMware 虚拟机安装windows 10操作系统
  • Mysql实战(2)之MySQL执行流程
  • ES6 | (二)ES6 新特性(下) | 尚硅谷Web前端ES6教程
  • 客户案例|用友NC财务系统上云
  • OceanPen Art AI绘画系统内容讲解
  • 类 Unix 系统的文件目录结构
  • 外部存储器接口(EMIF)
  • 华为认证HCIP报名条件有哪些?考试要求介绍
  • 【Python】变量的引用
  • nextjs13如何进行服务端渲染?
  • Redis-基础篇
  • 【好书推荐-第七期】《RTC程序设计:实时音视频权威指南》(音视频开发必看!)