ElasticSearch索引数据备份与恢复

索引数据备份

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

# 创建备份目录
/home/esbackup
# 授权
chmod 777 /home/esbackup

修改配置文件elasticsearch.yml

echo 'path.repo: ["/home/esbackup"]' >> /etc/elasticsearch/elasticsearch.yml

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

docker restart elasticsearch

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

新建备份仓库

PUT _snapshot/esbackup 
{
    "type": "fs", 
    "settings": {
        "location": "/home/esbackup" 
    }
}

查看备份仓库

GET _snapshot

备份置顶索引

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

# 备份指定索引
PUT _snapshot/esbackup/snapshot_20230223
{
    "indices": "索引名"
}

查看备份情况

# 查看备份情况
GET _snapshot/esbackup/snapshot_20230223/_status
GET _snapshot/esbackup/snapshot_20230223

成功标志

image-20230223153133850

索引数据恢复

删除之前的索引

DELETE /索引名

从备份过的快照恢复

POST /_snapshot/esbackup/snapshot_20230223/_restore

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

GET _recovery
GET 索引名/_recovery

删除指定快照

DELETE _snapshot/esbackup/快照名

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

#!/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
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ElasticSearch是一种分布式的搜索和分析引擎,它可以帮助用户快速地搜索和分析大量的数据。在使用ElasticSearch之前,需要先创建一个索引,用于存储数据。 以下是创建索引的步骤: 1. 安装ElasticSearch:首先需要在本地机器上安装ElasticSearch。可以从官方网站下载最新版本的ElasticSearch,并按照安装指南进行安装。 2. 启动ElasticSearch:安装完成后,需要启动ElasticSearch。可以通过命令行或控制台启动ElasticSearch。启动成功后,可以通过浏览器在http://localhost:9200访问ElasticSearch。 3. 创建索引使用ElasticSearch的REST API创建一个索引。可以使用curl或任何其他HTTP客户端来发送REST请求。下面是一个使用curl创建索引的示例: ``` curl -X PUT "http://localhost:9200/my_index" ``` 这个命令会在ElasticSearch中创建一个名为“my_index”的索引。 4. 添加映射:在索引中添加映射,以定义数据的结构。映射定义了数据类型、字段名称和字段属性。下面是一个使用curl添加映射的示例: ``` curl -X PUT "http://localhost:9200/my_index/_mapping/my_type" -H 'Content-Type: application/json' -d' { "properties": { "name": { "type": "text" }, "age": { "type": "integer" }, "email": { "type": "keyword" } } } ' ``` 这个命令会在“my_index”索引中的“my_type”类型下添加一个映射。 5. 添加文档:使用ElasticSearch的REST API向索引中添加文档。可以使用curl或任何其他HTTP客户端来发送REST请求。下面是一个使用curl添加文档的示例: ``` curl -X POST "http://localhost:9200/my_index/my_type" -H 'Content-Type: application/json' -d' { "name": "张三", "age": 30, "email": "zhangsan@example.com" } ' ``` 这个命令会向“my_index”索引中的“my_type”类型添加一个名为“张三”的文档。 6. 搜索数据:使用ElasticSearch的REST API搜索索引中的数据。可以使用curl或任何其他HTTP客户端来发送REST请求。下面是一个使用curl搜索数据的示例: ``` curl -X GET "http://localhost:9200/my_index/my_type/_search?q=name:张三" ``` 这个命令会从“my_index”索引中的“my_type”类型中搜索名为“张三”的文档。 以上是创建索引的基本步骤。在实际应用中,可能需要更复杂的操作,例如创建分片、备份恢复等。ElasticSearch提供了强大的API来支持这些操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小白.

感谢老板,祝老板今年发大财!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值