【es】elasticsearch生产数据备份和恢复方案

本文详细介绍了Elasticsearch生产环境中的数据备份、恢复和集群升级操作。通过使用snapshot API,可以实现增量备份,支持多种存储介质,并提供了监控备份进度、取消备份和恢复的机制。此外,还提到了集群升级的一般步骤,强调了升级前的数据全量备份和测试验证的重要性。

一、前言概要

生产环境中运行的组件,只要有数据存储,定时备份、灾难恢复是必修课,MySQL数据库的备份方案已经非常成熟,elasticsearch也同样有成熟的数据备份、恢复方案,我们来了解一下。

本篇介绍Elasticsearch生产集群数据的数据备份、恢复和升级的常规操作。

二、数据备份

我们知道Elasticsearch的索引拆分成多个shard进行存储在磁盘里,shard虽然分了primary shard和replica shard,可以保证集群的数据不丢失,数据访问不间断,但如果机房停电导致集群节点全部宕机这种重大事故时,我们就需要提前定期地对数据进行备份,以防万一。

既然是磁盘文件存储,那存储介质的选择就有很多了:本地磁盘,NAS,文件存储服务器(如FastDFS、HDFS等),各种云存储(Amazon S3, 阿里云OSS)等

同样的,Elasticsearch也提供snapshot api命令来完成数据备份操作,可以把集群当前的状态和数据全部存储到一个其他目录上,本地路径或网络路径均可,并且支持增量备份。可以根据数据量来决定备份的执行频率,增量备份的速度还是很快的。

1.创建备份仓库

我们把仓库地址暂定为本地磁盘的/home/esuser/esbackup目录

首先,我们需要在elasticsearch.yml配置文件中加上

path.repo: /home/esuser/esbackup

并重启Elasticsearch。

启动成功后,发送创建仓库的请求:

####################################

$ curl -XPUT'http://elasticsearch02:9200/_snapshot/esbackup?pretty'  \

-H  'Content-Type: application/json'  \

-d  '{

    "type": "fs",

    "settings": {

        "location": "/home/esuser/esbackup",

        "max_snapshot_bytes_per_sec" : "50mb",

        "max_restore_bytes_per_sec" : "50mb"

    }

}'

{"acknowledged":true}

#####################################

参数说明:

type: 仓库的类型名称,请求里都是fs,表示file system。

location: 仓库的地址,要与elasticsearch.yml配置文件相同,否则会报错

max_snapshot_bytes_per_sec: 指定数据从Elasticsearch到仓库(数据备份)的写入速度上限,默认是20m

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值