开发者社区> cjsoldier> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

ElasticSearch数据备份与恢复

简介: 查看所有仓库:curl 192.168.40.x:9200/_snapshot/_all 默认为空,需要创建仓库,注意仓库需要共享文件系统。这时候可以选择使用: NFS HDFS ①.NFS(太麻烦,不推荐) 需要在elasticsearch.
+关注继续查看

ES备份快照的时候可以用NFS或者HDFSNFS有点麻烦,我们使用HDFS

1.安装hdfs插件(如果已安装,则忽略这一步):

bin/elasticsearch-plugin install repository-hdfs

注意下载后会提示是否安装,一定要输入 y,否则视为取消安装。 安装完之后要重启ES集群.

2.源集群创建仓库:

curl -XPUT '192.168.40.11:9200/_snapshot/my_hdfs_repository?pretty' -H 'Content-Type: application/json' -d'
{
  "type": "hdfs",
  "settings": {
    "uri": "hdfs://192.168.40.60:8020/",
    "path": "elasticsearch/repositories/my_hdfs_repository",
    "conf.dfs.client.read.shortcircuit": "false"
  }
}
'

注意源集群的IP和hdfs的IP不要写错了

这里conf.dfs.client.read.shortcircuit如果设置为true,那么hdfs里需要配置一些额外的东西,我试了没成功。设置为true能减少通信次数,加快速度,如果您和我一样不想折腾,还是建议设置为false。

3.查看源集群创建好的仓库:

curl -XGET '192.168.40.11:9200/_snapshot/my_hdfs_repository?pretty'

4.备份所有索引:(这一步非常慢)

curl -XPUT '192.168.40.11:9200/_snapshot/my_hdfs_repository/snapshot_20171215?wait_for_completion=false&pretty'

注意:

wait_for_completion=true会一直等待备份结束。
wait_for_completion=false会立即返回,备份在后台进行,可以使用下面的api查看备份的进度:
curl -XGET '192.168.40.11:9200/_snapshot/my_hdfs_repository/snapshot_20171215/_status?pretty'

默认情况下,会将ES集群中所有打开的或者启动索引都备份一遍。如果不想备份所有的索引,可以加参数,详情见官方文档 ES备份和恢复

我使用master这个用户操作的,快照备份在hdfs的这个目录下,可以查看一下:
hdfs dfs -ls /user/master/elasticsearch/repositories/my_hdfs_repository

5.在目标集群里恢复快照:

5.1目标集群注册仓库:

curl -XPUT '192.168.40.15:9200/_snapshot/my_hdfs_repository?pretty' -H 'Content-Type: application/json' -d'
{
  "type": "hdfs",
  "settings": {
    "uri": "hdfs://192.168.40.60:8020/",
    "path": "/user/master/elasticsearch/repositories/my_hdfs_repository",
    "conf.dfs.client.read.shortcircuit": "false"
  }
}
'

注意目标集群的IP,hdfs的IP,hdfs的路径都不要写错了

5.2目标集群恢复快照:

curl -XPOST '192.168.40.15:9200/_snapshot/my_hdfs_repository/snapshot_20171215/_restore?pretty' -H 'Content-Type: application/json' -d'
{
  "indices": "janusgraph_vertices",
  "index_settings": {
    "index.number_of_replicas": 1
  },
  "ignore_index_settings": [
    "index.refresh_interval"
  ]
}
'

注意:如果恢复的时候报这个错:cannot restore index [janusgraph_vertices] because it's open ...
说明目标集群里已经有这个索引了,要把这个索引删掉,然后再恢复,因为快照里已经有schema信息了:

curl -XDELETE '192.168.40.15:9200/janusgraph_vertices?pretty'

注意恢复快照的时候分片的数量是不能改变的(要想改变分片数量只能re-index)。但是副本的数量是可以重新指定的(index.number_of_replicas )。还有其他的一些参数也是可以重新指定的。

咱们的snapshot_20171215备份的是所有索引, 这里的indices可以写多个索引的名字,逗号隔开。indices指定的索引,其参数会被覆写。 indices没有指定的索引,其参数跟以前保持一致。因为备份的时候,索引的配置参数和schema也一并备份了。

5.3查看目标集群快照恢复的进度:

在ES head插件上看:

红色状态表示ES正在恢复主分片, 黄色状态表示主分片已经恢复完成,正在进行创建副本的操作,绿色状态表示所有的主分片和副本都恢复完成。

如果不放心还可以用du -sh ./data 看一下文件夹的容量有没有增加。

注意刚恢复完不要急着查询,这时候查询会报错误,要等一会儿再查询!恢复的过程中也不要查询数据!

5.4删除以前的快照(如果磁盘空间紧张的话,建议删除,这一步不是必需的)

curl -XDELETE '192.168.40.11:9200/_snapshot/my_hdfs_repository/snapshot_20171215?pretty'

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Elasticsearch数据迁移
今天换了新的ES集群,要把原集群的ES数据库的数据迁移到新的集群上,经过查找elasticdump使用的人不少,所以今天大家和我一起来学学elasticdump吧!
94 0
一张图理清楚关系型/非关系型数据库与Elasticsearch同步
题记 ES除了做TB级日志分析外,越来越多的被企业用来用作数据存储。但是,传统企业里面,数据存在关系型数据库Mysql,oracle中,或者存储在非关系型数据库Mongo中。
99 0
Elasticsearch系列---数据建模实战
<p style="font-weight: 400; margin: 10px 0px; padding: 0px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); max-width: 100%; line-height: 1.5; color: rgb(51, 51, 51); font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;PingFang SC&quot;, Tahoma, Arial, sans-serif; white-space: normal; backgroun
146 0
【最佳实践】大数据时代,通过OSS快照迁移Elasticsearch数据
本文以将自建Elasticsearch迁移至阿里云Elasticsearch中为例,为您介绍通过OSS快照迁移数据的具体方法。
1602 0
【资源分享】esrally:Elasticsearch 官方压测工具测试数据共享(国内)
自从上篇发布的关于“【最佳实践】esrally:Elasticsearch 官方压测工具及运用详解”后,不停有同学询问使用中遇到的问题,尤其是测试数据存储在国外 aws 上,导致下载极慢的情况出现。为了让大家快速上手使用 esrally,我 build 了一个可用的 docker 镜像,将 13GB 的测试数据拉取到国内的存储上,通过百度网盘的方式分享给大家。大家只要按照下面简单的几步操作就可以顺畅地使用 esrally 来进行相关测试了。
2611 0
如何将Elasticsearch的快照备份至OSS
前言 Elasticsearch 是一个开源的分布式 RESTful 搜索和分析引擎。它可以在近实时条件下,存储,查询和分析海量的数据。它还支持将快照备份至HDFS/S3上面,而阿里云OSS兼容S3的API,本文将介绍如何使用ES的Repository-S3插件将快照备份至OSS。
3657 0
elasticsearch字符串包含查询
在查询的时候经常会遇到查询字符串是否包含的某个特定字符传的查询。可以使用query_string实现。 GET pv/_search {   "query": {       "query_string": {         "default_field": "name",         ".
9066 0
数据库数据导入Elasticsearch案例分享
The best elasticsearch highlevel java rest api-----bboss 基于bboss持久层和bboss elasticsearch客户端实现数据库数据导入es案例分享(支持各种数据库和各种es版本) 1.
2939 0
elasticsearch 备份还原
1、采用snapshot方式:https://www.jianshu.com/p/d2a189f704a2 2、采用外置命令行:http://tech.lede.
530 0
备份恢复12——复制数据库与备用数据库
1、建立复制数据库: 分为用户管理的方式建立复制数据库和rman建立复制数据库。 对于用户管理的复制数据库来说,还可以分为本机建立复制数据库和不在本机建立复制数据库,但是这两个方式区别不大,建立 数据库的方法步骤与建库的方法基本类似。
1109 0
+关注
cjsoldier
too young too simple,sometimes naive.
49
文章
3
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载