为了避免ElasticSearch发生意外情况发生,导致数据丢失或者整个集群不能提供服务,所以对存储的数据进行灾备是在使用ElasticSearch过程中,必不可少的重要环节。
主要分享低代码、微服务、容器化、SAAS、系统架构方面的的内容,希望大家点赞,评论,关注。
- 为了避免ElasticSearch发生意外情况所以对存储的数据进行灾备是在使用ElasticSearch过程中,必不可少的重要环节,通过快照快照进行本地或者分布式备份,ElasticSearch支持多种存储,可以适应与各种场景下的数据灾备需求,并在意外发生后及时的数据还原,持续化的提供ElasticSearch服务能力。
- 工作流程图
- 为了多集群共享数据,所以需要创建分布式存储仓库,可以支持NFS、S3,同时需要设置ElasticSearch对应用户的权限
- 第一次ElasticSearch数据备份是全量备份,再次备份则是增量备份,可以根据业务具体设置增量时间间隔。
- 如果出现ElasticSearch出现问题,可以用镜像数据进行还原,同时如果也可以在另一个集群实时还原增量数据,以便出现故障时及时切换。
- 涉及到的elasticsearch.yml配置文件的主要配置项
- path.repo 需要设置仓库地址,进行数据存储是需要在改目录下,支持nfs、s3、hdfs。在创建仓库前一定要设置好仓库地址
- 涉及到主要操作=
- 创建仓库
- es_snapshot_202205 仓库名称
- type 文件类型
- compress 是否启用压缩
- 创建镜像
- snapshot_log 镜像名称
- wait_for_completion 是否等待快照保存结束时才会返回结果。反之异步返回结果
- indices 设置要备份的索引,也可以不设置备份全部索引数据
- 数据还原&全量还原
- 恢复snapshot_log镜像中的索引及数据,注意如果集群中已有快照的索引那就会报索引已存在的错误。所以在数据还原时需要确认是否存在同名的索引
- 数据还原&部分索引还原
- ignore_unavailable false表示当缺少access_log索引时报错
- include_global_state false 将还原快照中的所有数据流和索引,但不还原群集状态
- include_aliases 是否需要恢复别名,true恢复,false不恢复别名
- 实施建议
- 快照名称带有日期时间,镜像文件管理
- 恢复数据之前保证恢复的索引在当前ElasticSearch中没有创建,否则会恢复失败
- 可以使用定时任务根据业务需求进行定时执行快照任务以保证ElasticSearch数据的可靠性
主要分享低代码、微服务、容器化、SAAS、系统架构方面的的内容,希望大家点赞,评论,关注。