ElasticSearch索引数据备份与恢复

索引数据备份

在磁盘创建备份目录并授权

sh 复制代码
# 创建备份目录
/home/esbackup
# 授权
chmod 777 /home/esbackup

修改配置文件elasticsearch.yml

sh 复制代码
echo 'path.repo: ["/home/esbackup"]' >> /etc/elasticsearch/elasticsearch.yml

重启elasticsearch(我是docker创建的,所以上述两条命令在docker中执行,可提前挂载)

sh 复制代码
docker restart elasticsearch

打开kibana控制台-开发者选项

新建备份仓库

sh 复制代码
PUT _snapshot/esbackup 
{
    "type": "fs", 
    "settings": {
        "location": "/home/esbackup" 
    }
}

查看备份仓库

sh 复制代码
GET _snapshot

备份置顶索引

snapshot_20230223这个名随便起,一般以时间为名

sh 复制代码
# 备份指定索引
PUT _snapshot/esbackup/snapshot_20230223
{
    "indices": "索引名"
}

查看备份情况

sh 复制代码
# 查看备份情况
GET _snapshot/esbackup/snapshot_20230223/_status
GET _snapshot/esbackup/snapshot_20230223

成功标志

索引数据恢复

删除之前的索引

sh 复制代码
DELETE /索引名

从备份过的快照恢复

sh 复制代码
POST /_snapshot/esbackup/snapshot_20230223/_restore

查看恢复状态,状态码返回200即可

sh 复制代码
GET _recovery
GET 索引名/_recovery

删除指定快照

sh 复制代码
DELETE _snapshot/esbackup/快照名

每日备份的shell脚本,供参考

sh 复制代码
#!/bin/bash

# 执行快照备份
time=$(date "+%Y%m%d")
logfile="/tmp/esbacklogs/"${time}".log"

curl -s -u elastic:changme -XPUT "http://127.0.0.1:9200/_snapshot/esbackup/snapshot_"${time} -H 'Content-Type: application/json' -d'
{
    "indices": "test_index, test_index2"
}'

# 快照备份需要一定时间,60s后检查备份情况
sleep 60

echo ""
curl -s -u elastic:changme -XGET "http://127.0.0.1:9200/_snapshot/esbackup/snapshot_"${time} | grep "SUCCESS" >> $logfile

if [ $? -eq 0 ]
then
  echo "backup elasticsearch success" >> $logfile
else
  echo "backup elasticsearch fail" >> $logfile
fi
echo ""

# 删除10天前的快照
delete_time=$(date "+%Y%m%d" -d " -10 day")
curl -s -u elastic:changme -XDELETE "http://127.0.0.1:9200/_snapshot/esbackup/snapshot_"${delete_time} >> $logfile
相关推荐
用户908324602732 小时前
Spring AI 1.1.2 + Neo4j:用知识图谱增强 RAG 检索(上篇:图谱构建)
java·spring boot
洛森唛21 小时前
ElasticSearch查询语句Query String详解:从入门到精通
后端·elasticsearch
用户83071968408221 小时前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
Java水解1 天前
Spring Boot 视图层与模板引擎
spring boot·后端
Java水解1 天前
一文搞懂 Spring Boot 默认数据库连接池 HikariCP
spring boot·后端
洋洋技术笔记1 天前
Spring Boot Web MVC配置详解
spring boot·后端
洛森唛2 天前
Elasticsearch DSL 查询语法大全:从入门到精通
后端·elasticsearch
初次攀爬者2 天前
Kafka 基础介绍
spring boot·kafka·消息队列
用户8307196840822 天前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
Java水解2 天前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端