Elasticsearch定时备份索引数据与恢复

定时备份脚本

Linux定时任务功能使用cron服务来进行

  • 编写定时任务的cron表达式
crontab -e #进入cron定时任务编辑
  • 定时任务
*/1 * * * * /opt/scheduler/es_bk.sh >> /opt/scheduler/bk_log.txt 2>&1

每隔1分钟定时执行 /opt/scheduler/目录下的es_bk.sh脚本,将数据内容写入到 /opt/scheduler目录下的bk.log.txt文件中

  • 查看一下es_bk.sh脚本内容
#! /bin/bash
echo '=================================start======================================'

#删除备份的快照
curl -i -X DELETE localhost:9200/_snapshot/es_backup/snapshot01
#再次备份
curl -i  -X PUT  localhost:9200/_snapshot/es_backup/snapshot01

echo '==================================end======================================='

ES备份数据需要将要备份的索引数据快照一份,需要指定一个快照名,且不能使用相同的快照,所以在每次备份之前需要删除旧的快照,再备份。

ES备份与恢复

  • 创建一个备份仓库(目录)
mkdir -p /bk/es/data
#修改权限
chmod -R 777 bk
  • 修改elasticsearch.yml文件,指定仓库位置
    在这里插入图片描述
  • 发送初始化仓库请求
curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"type": "fs","settings": {"location": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backup是备份命名空间,可以随意指定

  • 创建第一份快照
curl -i  -X PUT  localhost:9200/_snapshot/es_backup/snapshot01

将使用es_backup这个备份将es的所有索引数据备份到snapshot01这个快照下,当然也可以只备份指定索引

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01
  • 重启定时任务
systemctl restart cron

恢复索引

  • 恢复指定
curl -i -H ""'Content-Type:application/json;charset=UTF-8'""  -X POST --data '{"indices": "'bk_user_index_server'"}'  localhost:9200/_snapshot/es_backup/snapshot01/_restore
  • 恢复所有
curl -i -X POST localhost:9200/_snapshot/es_backup/snapshot01/_restore
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值