前段时间在公司研究了一下es6.3的数据备份和还原,今天总结一下,也算整理一下自己的工作内容吧。
因为es提供了非常强大的api支持,备份和恢复也都是基于es提供的api进行的,所以备份恢复功能使用起来也是很简单的。步骤如下:
单机备份恢复:
第一步:创建es备份仓库
mkdir -p /u2s/backup/elk
curl -H "Content-Type: application/json" -XPUT 'http://127.0.0.1:9200/_snapshot/datasvr' -d '
{
"type": "fs",
"settings": {
"location": "/u2s/backup/elk",
"compress": true
}
}'
在linux命令行执行上述两条命令,第一条命令创建了数据备份的linux目录,第二条命令创建了一个名为datasvr 存储目录为/u2s/backup/elk 的备份仓库。
第二步:使用第一步创建的仓库备份es数据
curl -XPUT 'http://127.0.0.1:9200/_snapshot/datasvr/'$DATE_YMDHMS'?wait_for_completion=true'
在linux命令行执行上述命令,执行成功则对es数据进行了一次备份,备份名称为 $DATE_YMDHMS (自行定义备份名称)。
第三步:查看备份仓库数据
直接在浏览器中查看备份仓库信息。
http://192.168.0.187:9200/_snapshot/datasvr/_all
第四步:恢复数据
若遇到异常情况需要进行数据恢复时,直接调用api方法即可。
curl -XPOST 'http://127.0.0.1:9200/_snapshot/datasvr/'$DATE_YMDHMS'/_restore?wait_for_completion=true'
在linux命令行执行上述命令,执行成功则完成数据恢复操作, $DATE_YMDHMS 为需要恢复的备份名称 (参考第三步查看备份名称)。
集群备份恢复:
es集群的备份恢复方法和单机模式一样,只不过需要增加一个集群共享目录用来存放备份数据,使所有节点可访问。
第一步:配置集群共享目录。
① ubuntu系统下安装sshfs软件
apt-get install sshfs
② 创建集群共享目录,并将各节点备份目录挂载到共享目录
#创建集群共享目录
mkdir -p /u2s/backup/elk_share
#共享目录挂载
sshfs root@192.168.0.187:/u2s/backup/elk_share /u2s/backup/elk -o allow_other
第二步:数据备份恢复与单机备份恢复一样,参考单机备份恢复描述。