ElasticSearch数据备份与恢复

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 查看所有仓库: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体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
弹性计算 JavaScript Linux
ElasticSearch备份与恢复-elasticdump工具
ElasticSearch备份与恢复-elasticdump工具
|
5月前
|
JSON 数据格式 索引
实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原
就可以通过Elasticsearch的导入导出工具Elasticdump来实现,可以将Elasticsearch不同集群的数据进行索引备份和还原。
90 0
|
11月前
|
监控 Cloud Native 大数据
带你读《企业级云原生白皮书项目实战》——5.1.6 数据备份恢复(1)
带你读《企业级云原生白皮书项目实战》——5.1.6 数据备份恢复(1)
|
11月前
|
存储 监控 Cloud Native
带你读《企业级云原生白皮书项目实战》——5.1.6 数据备份恢复(2)
带你读《企业级云原生白皮书项目实战》——5.1.6 数据备份恢复(2)
106 0
|
11月前
|
存储 Cloud Native 大数据
带你读《企业级云原生白皮书项目实战》——5.1.6 数据备份恢复(3)
带你读《企业级云原生白皮书项目实战》——5.1.6 数据备份恢复(3)
|
存储 API 索引
Elasticsearch集群数据备份与恢复 Snapshot & Restore
Elasticsearch集群数据备份与恢复 Snapshot & Restore
478 0
|
存储 监控 Java
Elasticsearch的Snapshot and Restore(快照备份与恢复)
Elasticsearch提供的Snapshot api就是从正在运行的集群中获取备份用的,可以根据情况选择整个集群,也可以指定index和data stream。Elasticsearch是以增量的方式获取Snapshot,节约了时间和空间,小开销意味着可以适当增加备份的频率。每一个Snapshot在逻辑上相互独立,所以删除某一个Snapshot不会影响到其他的Snapshot。
4849 0
|
分布式计算 大数据 Hadoop
|
存储 索引
elasticsearch(es) 集群恢复触发配置(Local Gateway参数)
elasticsearch(es) 集群恢复触发配置(Local Gateway) 当你集群重启时,几个配置项影响你的分片恢复的表现。 首先,我们需要明白如果什么也没配置将会发生什么。 想象一下假设你有 10 个节点,每个节点只保存一个分片,这个分片是一个主分片或者是一个副本分片,或者说有一个有 5 个主分片/1 个副本分片的索引。
1732 0