栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

elasticsearch快照备份与恢复

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

```

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/304228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号