Elasticsearch 数据备份迁移(三)

300 阅读1分钟

场景描述

将服务器A的数据迁移到服务器B

服务器A

  1. 修改elasticsearch.yml配置文件,添加备份路径path.repo
path.repo: /home/es/path/backup

image.png
2. 重启Elasticsearch

  • 查看进程 ps -ef|grep elasticsearch
  • 杀掉进程 kill -9 pid
  • 启动 ./bin/elasticsearch -d
  1. 创建快照仓库
PUT http://127.0.0.1:9200/_snapshot/my_backup 
{
  "type": "fs", 
  "settings": { "location": "/home/es/path/backup" } 
}
  1. 备份数据快照
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
  1. 将数据快照传到服务器B scp -P 22 -r /home/es/path/backup 服务器B的es账户名@服务器B的ip:/home/es/path/

服务器B

  1. 修改elasticsearch.yml配置文件,添加备份路径path.repo
  2. 重启Elasticsearch
  3. 创建快照仓库

上面3步和服务器A一样

  1. 恢复数据
POST http://127.0.0.1:9200/_snapshot/my_backup/snapshot_1/_restore
{
  "indices": "index1,index2", // 需要恢复的索引名称,可以使用通配符
  "include_global_state": false
}

  1. 验证查看恢复数据
GET http://127.0.0.1:9200/index1/_search?size=10

# index1:为索引名称
# size=10:返回前10条数据