备份方式
官方建议采用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