场景描述
将服务器A的数据迁移到服务器B
服务器A
- 修改
elasticsearch.yml配置文件,添加备份路径path.repo
path.repo: /home/es/path/backup
2. 重启Elasticsearch
- 查看进程
ps -ef|grep elasticsearch - 杀掉进程
kill -9 pid - 启动
./bin/elasticsearch -d
- 创建快照仓库
PUT http://127.0.0.1:9200/_snapshot/my_backup
{
"type": "fs",
"settings": { "location": "/home/es/path/backup" }
}
- 备份数据快照
PUT http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1
{
"indices": "index1,index2", // 需要备份的索引名称,可以使用通配符
"include_global_state": false
}
## 上面json参数可不传,表示全量备份
### 查看快照进度
GET http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1
- 将数据快照传到服务器B
scp -P 22 -r /home/es/path/backup 服务器B的es账户名@服务器B的ip:/home/es/path/
服务器B
- 修改
elasticsearch.yml配置文件,添加备份路径path.repo - 重启Elasticsearch
- 创建快照仓库
上面3步和服务器A一样
- 恢复数据
POST http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1/_restore
{
"indices": "index1,index2", // 需要恢复的索引名称,可以使用通配符
"include_global_state": false
}
- 验证查看恢复数据
GET http://127.0.0.1:9200/index1/_search?size=10
# index1:为索引名称
# size=10:返回前10条数据