elasticsearch快照备份与恢复

### 1、首次创建备份文件路径:
#在计算机上创建一个保存数据备份文件的路径,该路径要与elasticsearch.yml中配置的备份仓库路径一直,并且该文件夹路径授予最高权限。

`path.repo: /data/elasticsearch/backup`

### 2、首次创建备份仓库:
```shell
curl -H "Content-Type: application/json" -XPUT 127.0.0.1:9202/_snapshot/data_backup -d'
{
    "type": "fs",
    "settings": {
        "compress": "true", 
        "location": "/data/elasticsearch/backup"
    }
}'
```
### 3、修改备份仓库的备份和存储速度:
```shell
curl -H "Content-Type: application/json" -XPOST 127.0.0.1:9202/_snapshot/data_backup/my_index -d'
{
    "type": "fs",
    "settings": {
        "location": "/data/elasticsearch/backup",
        "max_snapshot_bytes_per_sec" : "50mb",
        "max_restore_bytes_per_sec" : "50mb",
        "compress" : true
    }
}'

# "max_snapshot_bytes_per_sec" : "50mb",     # 备份速度
# "max_restore_bytes_per_sec" : "50mb"    #存储速度
# 说明:备份仓库默认的备份和存储速度为20mb/s,可以通过手动修改仓库的速度,本人设置为50mb/s,可根据网络网速合理设置。
```
### 4、查看备份仓库
```shell
curl -H "Content-Type: application/json" -XGET 127.0.0.1:9202/_snapshot?pretty
```
### 5、查看备份仓库中所有索引备份信息
```shell
curl -H "Content-Type: application/json" -XGET 127.0.0.1:9202/_snapshot/_all?pretty
```
### 6、手动备份索引
#### 6.1、异步备份
```shell
curl -H "Content-Type: application/json" -XPUT 127.0.0.1:9202/_snapshot/data_backup/my_index_backup -d'
{
    "indices": "my_index"
}'
# 说明:此命令备份是异步备份,也就是默认的备份方式,命令执行后会立即返回,备份在后台运行。
```
#### 6.2、同步备份
```shell
curl -H "Content-Type: application/json" -XPUT 127.0.0.1:9202/_snapshot/data_backup/my_index_backup?wait_for_completion=true -d'
{
    "indices": "my_index"
}'

# 说明:添加了wait_for_completion参数,此命令备份是同步备份,只有等备份完成后命令才会返回,如果数据量大,可能会花费比较长的时间。
```
### 7.手动查看索引备份
```shell
curl -H "Content-Type: application/json" -XGET 127.0.0.1:9202/_snapshot/data_backup/my_index_backup
```
### 8.手动恢复索引备份
#### 8.1、异步恢复
```shell
curl -H "Content-Type: application/json" -XPOST 127.0.0.1:9202/_snapshot/data_backup/my_index_backup/_restore -d'
{
    "indices": "my_index"
}'

# 说明:此命令恢复是异步恢复,也就是默认的恢复方式,命令执行后会立即返回,恢复在后台运行。
```
#### 8.2、同步恢复:
```shell
curl -H "Content-Type: application/json" -XPOST 127.0.0.1:9202/_snapshot/data_backup/my_index_backup/_restore?wait_for_completion=true -d'
{
    "indices": "my_index"
}'

#说明:添加了wait_for_completion参数,此命令恢复是同步恢复,只有等恢复完成后命令才会返回,如果数据量大,可能会花费比较长的时间。
```
### 9、从仓库中删除一个快照
```shell
curl -X DELETE "127.0.0.1:9202/_snapshot/data_backup/my_index_backup"
```
### 10.es备份脚本
```shell
#!/bin/bash

IP=http://192.168.10.248
filename=es-`date +%Y%m%d%H`
es_backup_dir=/nfs/backes
es_backup_gz=/nfs/backes/es_back
logs=/nfs/backes/log
#index=

#创建仓库
curl -XPUT $IP:9200/_snapshot/my_back -d '{"type": "fs","settings": {"location": "/nfs/backes/"}}'
if [ $? -eq 0 ]; then
 echo -e '\n仓库创建成功\n'
else
 echo -e '\n仓库创建失败\n'
exit 1
fi

#更新仓库配置,制作和恢复快照的速度,压缩
curl -XPOST $IP:9200/_snapshot/my_back -d '{"type":"fs","settings":{"location":"/nfs/backes/","max_snapshot_bytes_per_sec":"50mb","max_restore_bytes_per_sec":"50mb","compress":true}}'

#检查仓库信息
echo -e '\n仓库配置信息:\n'
curl -XGET $IP:9200/_snapshot/my_back?pretty

#间隔5秒
sleep 3

#判断目录是否存在,不存在则创建
if [ ! -d "$es_backup_dir" ]; then
  mkdir -p "$es_backup_dir"
else
 cd "$es_backup_dir"
fi

#修改为任何人可写权限
chmod -R 1777 $es_backup_dir
cd $es_backup_dir

#判断文件是否存在
if [ ! -f "$logs" ]; then
  touch "$logs"
else
 rm -rf "$logs"
 touch "$logs"
fi

chmod -R 777 $logs

#备份指定索引
#curl -XPUT $IP:9200/_snapshot/my/$filename '{"indices":"$index"}'

echo -e '\n正在备份中,请稍后...\n'

#开始备份
aaa=`curl -XPUT $IP:9200/_snapshot/my_back/$filename?pretty&wait_for_completion=true`
echo "$aaa" >> $logs
sleep 5

#过滤log文件里是否有error字段,如果有输出备份失败,没有输出成功
if [ `grep -c "error" $logs` -eq "0" ]; then
  echo -e '\nes data backup success!\n'
else
  echo -e '\nes data backup failure!\n'
fi

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值