1 备份和还原机器上的共同操作
1.1 创建备份还原目录
这里放到/opt/es_bak目录下
cd /opt
mkdir es_bak
# 为了避免权限问题,直接修改/opt/es_bak权限为777
chmod 777 /opt/es_bak
1.2 注册备份还原目录
修改elasticsearch.yml
添加如下配置
path.repo: ['/opt/es_bak']
重启elasticsearch
注册备份还原仓库(仓库名称为my_backup)
PUT http://地址:9200/_snapshot/my_backup/
参数
{
"type": "fs",
"settings": {
"location": "/opt/es_bak",
"max_snapshot_bytes_per_sec" : "50mb",
"max_restore_bytes_per_sec" : "50mb",
"compress" : true
}
}
这里执行完之后/opt/es_bak目录下还什么数据都没有
2 备份数据
(在my_backup仓库下备份数据,备份的名字为snapshot_20190709)
PUT http://地址:9200/_snapshot/my_backup/snapshot_20190709
指定备份的索引逗号分隔,不传默认备份所有索引
{
"indices": "index1,index2"
}
?wait_for_completion=true 等待备份完
备份完数据后就会在/opt/es_bak目录下生成备份的元数据
查看备份状态
GET http://地址:9200/_snapshot/my_backup/snapshot_20190709
3 还原数据
将备份机器上/opt/es_bak目录下的元数据拷贝到要还原的目标机器的备份还原目录下
在需要还原的机器上执行POST请求
POST http://地址:9200/_snapshot/my_backup/snapshot_20190709/_restore
参考文献
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html