ES数据备份与恢复

场景:ES线上的数据和服务迁移到另外的机器上去

老ES机器ip:172.16.0.1
新ES机器ip:172.16.0.2

一. 首先,

  1. 在备份之前要在es/config/elasticsearch.yml添加仓库配置:

path.repo: ["/data/es/snapshot"]

2.重启ES

二. 在老机器上

3.创建备份仓库

在/data/es/snapshot下新建名为bro_backup的仓库

curl -XPOST '172.16.0.1:9200/_snapshot/bro_backup' -H  'Content-Type: application/json' -d 
'{ "type": "fs",  "settings": { "location": "/data/es/snapshot", "compress": true, "chunk_size": "1g", "max_snapshot_bytes_per_sec": "50m", "max_restore_bytes_per_sec": "50m"}}'
  • max_snapshot_bytes_per_sec 和max_restore_bytes_per_sec 为了限制备份和恢复时的速度
  • 如果新建仓库的时候报错 "reason": "failed to create blob container"  access_denied_exception  请检查/data/es/snapshot文件夹权限

4.备份数据

curl -XPUT "172.16.0.1:9200/_snapshot/bro_backup/ss_2019100905?wait_for_completion=true"
  • 如果不希望快照作为后台进程运行,可以通过添加wait_for_completion=true参数,使其在前台运行,知道备份完成。
  • 如果想备份部分索引,可以加上indices 参数:

curl -XPUT http://172.16.0.1:9200/_snapshot/bro_backup/ss_2019100905 -d '
    {
        "indices": "index_1,index_2"
    }'
  • 终止备份:

curl -XDELETE http://172.16.0.1:9200/_snapshot/bro_backup/ss_2019100905
  • 查看备份信息

curl -XGET http://172.16.0.1:9200/_snapshot/bro_backup/ss_2019100905

三. 在新机器上
(将备份数据打包传到新机器上,并解压到/data/es/snapshot目录下)

6.恢复数据
与之前步骤一致,先修改配置文件

path.repo:["/data/backup/elasticsearch"],

7.创建备份仓库bro_backup,然后执行恢复命令:

curl -XPOST 'http://172.16.0.2:9200/_snapshot/bro_backup' -H  'Content-Type: application/json' -d '{ "type": "fs",  "settings": { "location": "/data/es/snapshot", "compress": true, "chunk_size": "1g", "max_snapshot_bytes_per_sec": "50m", "max_restore_bytes_per_sec": "50m"}}'

8.执行恢复命令

curl -XPOST '172.17.90.3:9200/_snapshot/bro_backup/ss_20190905/_restore' -H 'Content-Type: application/json' -d'{ "ignore_unavailable": true, "include_global_state": false }'
  • 如果只想恢复某些分片的数据,还可以在json参数里加{"indices": "game_info"},以指定只恢复game_info分片数据。

9.查看恢复的分片数据

curl '172.16.0.2:9200/_cat/indices?v'

类似这种(我们这里只有一个节点,没有主从,所以是yellow状态,正常的)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值