步骤说明
- 集群A创建索引
- 集群A申明仓库地址
- 集群A创建快照
- 拷贝仓库内容至集群B准备用的仓库
- 集群B指定仓库位置
- 集群B查询当前已有快照
- 集群B选择恢复快照
步骤详解
集群启动前的配置
* 配置/config/elasticsearch.yml
cluster.name: test
node.name: node-test
node.max_local_storage_nodes: 1
http.port: 920
path.repo: /backuptest/es_backup_test 此集群共享仓库位置
集群A创建索引
PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
实际链接是 http://localhost:9200/megacorp/employee/1 9200是elastic的端口
megacorp为索引,employee是类型
你可以用 localhost:9200/megacorp/employee/_search 查看
集群A声明仓库
http://localhost:9200/_snapshot/my_backup
PUT _snapshot/my_backup my_backup是自定义的仓库名称
{
"type": "fs", fs表明为共享仓库
"settings": {
"location": "/backup/es_backup_origin"
}
}
如果你想了解共享仓库,请走传送门
快照备份
http://localhost:9200/_snapshot/my_backup/snapshot_1?wait_for_completion=true
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
snapshot_1 为自定义的快照名字
拷贝仓库内容至集群B准备用的仓库
- 我们的示例中就是/backup/es_backup_origin 目录的内容
集群B指定仓库位置
配置集群B的yml文件,指明端口,集群名字等,别忘了指定它的path.repo
http://localhost:9201/_snapshot/my_backup
PUT _snapshot/my_backup
{
"type": "fs", fs表明为共享仓库
"settings": {
"location": "/backuptest/es_backup_test"
}
}
- 集群B查询当前已有快照
GET localhost:9201/_snapshot/my_backup/_all
此时你就已经可以从集群A的快照目录中读出信息
TIM截图20180321164955.png
- 集群B选择恢复快照
POST /_snapshot/my_backup/snapshot_1/_restore
localhost:9201/_snapshot/my_backup/snapshot_1/_restore
如果没问题的话,此时你可以通过查询索引找到集群A中添加的内容
localhost:9201/megacorp/employee/_search
网友评论