备份方式
官方建议采用snapshot方式进行备份与恢复。
单节点案例
单节点备份
首先我们看下单节点的情况下,我们首先需要在配置文件中配置好本地磁盘:
path.repo:["/opt/elasticsearch-cluster/snapshot_repo"]
可以配置多个仓库,如果刚开始没有配置这个需要配置后重启es,通过http方式来注册一个仓库:
PUT http://192.168.11.10:9200/_snapshot/testbackup
{
"type": "fs",
"settings": {
"location": "/opt/elasticsearch-cluster/snapshot_repo/my_backup"
}
}
注册成功以后咱们需要验证下是否可以正常访问该仓库:
POST http://192.168.11.10:9200/_snapshot/testback/_verify
{
"nodes" : {
"mDRki1qVRBGnJiGEHUNlpg" : {
"name" : "node-1"
}
}
}
节点可以正常读写当前仓库,只有这个时候才可以执行备份操作,那么咱们现在执行下全库备份
PUT http://192.168.11.10:9200/_snapshot/testback/snapshot_2
{
"accepted" : true
}
如果数据量很小这个直接就是秒级的,如果数据量达到一定程度即便是物理copy也是需要很长一定时间的,那么这个时候就可以查看当前备份的任务状态:
GET http://192.168.11.10:9200/_snapshot/testback/snapshot_2/_status
{
"snapshots" : [
{
"snapshot" : "snapshot_2",
"repository" : "testback",
"uuid" : "O7YoR7dSQKueRff3jI4yow",
"state" : "SUCCESS",
"include_global_state" : true,
"shards_stats" : {
"initializing" : 0,
"started" : 0,
"finalizing" : 0,
"done" : 54,
"failed" : 0,
"total" : 54
},
"stats" : {
,,,,
},
"indices" : {
,,,,, # 备份的索引信息
}
}
]
}
单节点恢复
备份好了以后我们看下如何进行恢复,有些系统级的索引是没必要恢复的,此时我们就可以仅仅恢复业务索引:
POST http://192.168.11.10:9200/_snapshot/testback/snapshot_2/_restore
{
"indices": "log-server-*", #通过通配字符可以恢复批量索引
"ignore_unavailable": true,
"include_global_state": false
}
集群案例
如果是集群环境,需要把所有节点注册仓库并且做nas共享即可,不然会报错。恢复方式和单节点一样。
## 参考
https://blog.csdn.net/qq_38665235/article/details/135272031