参考链接:
https://www.elastic.co/guide/en/elasticsearch/guide/current/backing-up-your-cluster.html#
坑或者是注意事项
indices属于某种node.box_type,恢复索引的目标机群需要有这种type的节点,不然会恢复不了。
indices需要open。
步骤:
1、创建共享文件目录,所有es节点都能读写访问,可以通过nfs的方式。
/etc/exports文件
/data0/elasticsearch-backup *(rw)
(在这里假设目录为/data0/elasticsearch-backup)
2、所有节点修改配置elasticsearch.yml,然后重启节点:
path.repo: /data0/elasticsearch-backup
3、创建snapshot共享仓库
max_snapshot_bytes_per_sec、max_restore_bytes_per_sec默认20mb。
curl -XPUT localhost:9200/_snapshot/backup_test -d '
{
"type": "fs",
"settings": {
"location": "/data/disk/nvme0n1p1/backup",
"max_snapshot_bytes_per_sec" : "50mb",
"max_restore_bytes_per_sec" : "50mb",
"compress": true
}
}'
4、备份索引数据
快照备份整个机群数据(同一机群注意快照名唯一,snapshot_1)
curl localhost:9200 /_snapshot/backup_test/snapshot_1?wait_for_completion=true
只快照备份某些索引
curl -XPUT localhost:9200/_snapshot/backup_test/snapshot_1?wait_for_completion=true -d '
{
"indices": "index1,index2,index3"
}'
5、查看备份状态
curl localhost:9200/_snapshot/backup_test/snapshot_1/_status?pretty
6、恢复快照数据,如果目标集群已经存在同名索引,需要先close索引
恢复某个快照所有数据
curl -XPOST localhost:9200/_snapshot/backup_test/snapshot_1/_restore?wait_for_completion=true
恢复某个快照部分索引数据
curl -XPOST localhost:9200/_snapshot/backup_test/snapshot_1/_restore?wait_for_completion=true -d '
{
"indices": "index1,index2"
}
'
7、辅助性操作
查看快照状态
curl localhost:9200/_snapshot/backup_test/snapshot_1/_status?pretty
查看恢复状态
curl localhost:9200/index1/_recovery?pretty
删除快照
curl -XDELETE localhost:9200/_snapshot/backup_test/snapshot_1