参看网址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/backing-up-your-cluster.html
参看网址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_restoring_from_a_snapshot.html
测试过程:
##单个节点集群测试
1、在elasticsearch.yml添加如下配置并重启节点:
path.repo: ["/home/elasticsearch/snapshot"]
2、新建目录并修改属主
mkdir /home/elasticsearch/snapshot -p
chown elasticsearch.elasticsearch /home/elasticsearch/snapshot -R
3、创建仓库
PUT _snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/home/elasticsearch/snapshot"
}
}
给我们的仓库取一个名字,在本例它叫 my_backup 。
我们指定仓库的类型(type)应该是一个共享文件系统。
最后,我们提供一个已挂载的设备(location)作为目的地址(因为是单个节点就直接创建了个目录)。
4、快照所有打开的索引(查看所有的索引和状态:GET /_cat/indices/?v)
PUT _snapshot/my_backup/snapshot_1
5、快照指定索引(查看所有的索引和状态:GET /_cat/indices/?v)
PUT _snapshot/my_backup/snapshot_2
{
"indices": "index_1,index_2"
}
这个快照命令现在只会备份 index1 和 index2 了。
6、列出快照的信息:快找多了需要看看
GET _snapshot/my_backup/snapshot_2 ##查看某一个快照
GET _snapshot/my_backup/_all ##查看所有快照
7、删除快照
DELETE _snapshot/my_backup/snapshot_2
8、查看快照进行的进度
GET _snapshot/my_backup/snapshot_2
GET _snapshot/my_backup/snapshot_2/_status ##推荐
9、取消一个快照
DELETE _snapshot/my_backup/snapshot_3
这个会中断快照进程。然后删除仓库里进行到一半的快照。
10、恢复某个快照中的所有索引
##注意:恢复前,要被恢复的索引(被覆盖的索引)需要关闭或者删除。
POST /megacorp_1/_close ##关闭某个索引
POST /_all/_close ##关闭所有索引
POST /_all/_open ##打开所有索引
GET /_cat/indices/?v ##查看下所有索引的的状态
POST _snapshot/my_backup/snapshot_1/_restore ##执行完立即返回,不阻塞
POST _snapshot/my_backup/snapshot_1/_restore?wait_for_completion=true ##等待恢复完成才退出阻塞
11、恢复某个快照部分索引
POST /_snapshot/my_backup/snapshot_3/_restore
{
"indices": "megacorp"
}
12、查看快照恢复进度
GET megacorp/_recovery
13、取消一个恢复
DELETE /megacorp
##3节点集群备份测试:
多个节点都能访问NFS共享目录后,备份还原和单节点的一样。对于NFS怎么配置和挂载,请自行搭建。
需要注意的是,当在两个集群间移动备份的快照进行恢复时,需要两个集群提前建立相同名字的库,之后把文件考进去就可以恢复了。