1.创建源集群的快照仓库
使用fs方式,首先需要在所有节点挂载文件系统
然后在elasticsearch.yaml中新增配置path.repo
必须确保对应目录具备读写权限
path.repo: /mount/backups
修改配置重启完之后,开始创建快照仓库
PUT /_snapshot/my_repository
{"type": "fs","settings": {"location": "/mount/backups/my_fs_backup_location"}
}
此时如果报超时可以不用管着先,查一下仓库是否创建成功
GET 10.105.100.71:9200/_snapshot
2.创建快照
对增量的索引批量创建快照
PUT /_snapshot/my_repository/snapshot_1
{"indices": "index_1","ignore_unavailable": true,"include_global_state": false
}
3.恢复快照到目标集群
1)在迁移索引数据开始之前,需要先在目标集群先创建快照仓库,同步骤1
2)因为开发环境新搭了一套skywalking,它自己会每日生成新的索引,需要先删除同名索引,否则会恢复失败
DELETE 10.106.100.117:9200/sw891_zipkin_span-20230607#可以考虑直接批量清除
#!/bin/bash
time=$(date -d '-3days' +'%Y.%m.%d')
curl -XDELETE -u elastic:changeme http://localhost:9200/*-${time}
3)开始进行快照恢复
POST /_snapshot/my_repository/snapshot_1/_restore
需要在master节点执行恢复指令
4.删除快照
DELETE /_snapshot/my_repository/snapshot_1
辅助查询
查看集群状态
curl localhost:9200/_cat/health?v
curl localhost:9200/_cat/nodes?v
curl localhost:9200/_cluster/allocation/explain?pretty
curl localhost:9200/_cat/recovery?v | grep -v done
查看索引
curl localhost:9200/_cat/indices | grep 索引ID
curl localhost:9200/_cat/shards/索引名
关闭索引
curl -XPOST localhost:9200/索引名/_close
查看索引具体状态
curl localhost:9200/_cat/shards/索引名? h=index,shard,prirep,state,unassigned.reason
查看快照状态
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
查看仓库信息
GET /_snapshot/my_backup
当前所有仓库信息
GET /_snapshot
GET /_snapshot/_all
删除仓库信息:仅仅删除index,不会删除hdfs数据
DELETE /_snapshot/my_backup
查询快照
GET /_snapshot/my_backup/snapshot_1 //查询指定快照
GET /snapshot/my_backup/snapshot*,otherSnapshot //支持通配符
GET /_snapshot/my_backup/_all //查询所有快照
删除一个快照:仅删除引用,未删除hdfs数据
DELETE /_snapshot/my_backup/snapshot_1