一、前言概要
生产环境中运行的组件,只要有数据存储,定时备份、灾难恢复是必修课,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

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

被折叠的 条评论
为什么被折叠?



