首页 > 其他分享 >Elasticsearch 快照与恢复-快照仓库 repository

Elasticsearch 快照与恢复-快照仓库 repository

时间:2022-08-31 19:01:18浏览次数:92  
标签:快照 repository 仓库 索引 only Elasticsearch url 集群

Elasticsearch 中的一个快照即一个运行时的集群备份。快照能在以下场景使用。

  • 不停机的情况下周期性的备份集群。
  • 数据被删除或者硬盘故障的情况下还原数据
  • 在集群之间传输数据
  • 使用可搜索快照来减少存储资源。

ES 把快照存储在一个叫做快照仓库的地方。在使用快照前,需要先注册快照库,用于管理快照,如提供存储位置、存储用途(敏感数据的存放)。ES 支持部分云存储类型的快照库。

  • AWS S3
  • Google Cloud Storage (GCS)
  • Microsoft Azure
    在注册完快照库之后,可以使用快照生命周期管理(SLM)来自动的生成和管理快照,之后可以使用快照还原来实现恢复或传输数据的功能。

快照内容

默认情况下,集群快照包含集群状态,所有常规的数据流、索引。
索引状态包含下面信息:

  • 集群持久化设置
  • 索引模板
  • 其它
    可以使用快照只备份集群中的数据流或索引。

快照如何工作

快照会自动的删除以便于节省存储空间和减少完了传输的消耗。为了备份一个索引,快照会复制索引的segment,并将其保存在快照库中,由于segement是不可变的,因此快照只需要复制比快照库中新的索引segement即可完成增量备份。

每个快照是逻辑独立的,当删除一个快照时, ES 只是删除由快照使用的专有段,不会删除快照库中其它快照的segement。

快照和shard allocation

快照从索引的主分片中拷贝segement。当启动一个快照时,ES立即开始复制可用的主分片上的段。当分片在启动中或者重定位时,ES会等该分片可用后再继续拷贝索引段,如果有一个或多个主分片不可以,快照备份会失败。

一旦一个快照开始复制某一个主分片,ES不会移动该分片到其它节点,ES会等到复制完成在进行移动操作。

快照开始和启动时间

一个快照并不能表示一个精确的时间点的集群。相反,每个快照都包含启动时间、结束时间。 快照表示的是在这两个时间点之间的分片数据的视图。

快照兼容性

不能先前兼容,即新版本的快照不能在老版本的es下进行还原。

快照是唯一可靠和支持备份集群的方式。采用备份底层文件的方式会有不可知的问题。
不要修改快照仓库下的任何内容。

注册一个仓库

自己管理下集群的仓库配置

Azure
Google Cloud Storage
AWS S3
Shared file system
Read-only URL
Source-only

使用共享文件系统注册仓库

创建文件系统快照库需要在配置文件中配置 仓库目录,否则会报错,集群中的所有节点需要挂载到相同的目录下。
vi elasticsearch.yml

path.repo: /usr/share/elasticsearch/_snapshots

创建共享文件系统镜像仓库

curl --location --request PUT "http://localhost:29201/_snapshot/person" \
--header "Content-Type: application/json" \
--data-raw "{
  \"type\": \"fs\",
  \"settings\": {
    \"location\": \"perosn\"
  }
}"

当多个集群使用相同的快照库时,只能有一个集群有权限对该仓库写入,其它的应当配置为只读。如集群间复制场景下。

只读配置
PUT _snapshot/my_fs_backup
{
  "type": "fs",
  "settings": {
    "location": "my_fs_backup_location",
    "readonly": true
  }
}
仓库配置
  • chunk_size
  • compress : 默认true
  • location : 快照在共享文件系统中的位置,必须要在 path.repo中配置。
  • max_number_of_snapshots: 最大快照数量。
  • readonly : ture ,只能读该仓库。

只读的url类型仓库

可以使用url仓库来给集群授予共享文件系统的只读权限。由于url 仓库是只读的,相较于共享文件系统仓库中的只读配置,该方式更安全和方便。

PUT _snapshot/my_read_only_url_repository
{
  "type": "url",
  "settings": {
    "url": "file:/mount/backups/my_fs_backup_location"
  }
}

source-only 快照库

可以使用Source-only 库来实现最小的快照, souce-only 可以比其它类型的快照减少50%的磁盘空间(只存储source 信息)。

和其它类型苦苦不同, souce-only 不直接存储快照,而是委托其它已注册的快照库来存储数据。

当采用source-only 的快照库时,ES 在代理库中创建source-only快照,该快照只包含属性和元数据信息,它不包含索引和文档值,而且当还原是,不是立即可搜索的。若要搜索已还原的数据,首先需要reindex到新的索引中。

source-only 只支持开启了_source 属性且 没有source_filtering 应用的索引。

  • restored 的索引是只读的,并且只能使用 match_all搜索或者 使用scroll 请求去重新reindex 新索引。
  • restored index 的mapping 信息是空的,当原始的mapping仍然可以使用,需要在最顶层的meta元素中查找。
PUT _snapshot/my_src_only_repository
{
  "type": "source",
  "settings": {
    "delegate_type": "fs",
    "location": "my_backup_repository"
  }
}

标签:快照,repository,仓库,索引,only,Elasticsearch,url,集群
From: https://www.cnblogs.com/hhan/p/16644107.html

相关文章

  • [CentOS8]Repository extras is listed more than once in the configuration
    1.问题[root@localhost~]#yuminstallhttps://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpmRepositoryextrasislistedmorethanonceintheconfigu......
  • ElasticSearch7创建index时指定type问题
    项目背景最近在某项目开发中遇到一个高版本ES创建索引时指定index和type问题。项目中的ES使用了阿里云上的ES,版本为7.4。通过ES官网对各版本type的演变如下:在5.X版本......
  • 【ElasticSearch】常用的JAVA API(长期更新)
    背景主要介绍和整理ElasticSearch常用的API环境SpringBoot2.1+MavenMaven依赖<dependency><groupId>org.elasticsearch</groupId>......
  • 【转】SpringBoot ElasticSearch 各种查询汇总
    原文连接:https://www.cnblogs.com/jelly12345/p/14765477.html 一:文档对象如下@Data@AllArgsConstructor@NoArgsConstructor@Document(indexName="items",type......
  • 在elasticsearch中对象object嵌套的使用
    1.添加映射PUT/object-test/{"mappings":{"properties":{"deviceNo":{"type":"keyword"},"......
  • Docker安装ElasticSearch和Kibana
    一、ElasticSearch安装1.1拉取elasticsearch镜像拉取最新版本elasticsearchdockerpullelasticsearch拉取指定版本elasticsearch,比如拉取7.17.5版本的elasticsearchdocke......
  • ElasticSearch 精确查询统计
    ElasticSearch精确查询统计match_phrase:短语匹配,不分词GETlogback-2022-08/_search{"size":1,//显示1条记录"query":{"bool":{"must":[......
  • 安装elasticsearch集群
    https://www.elastic.co/cn/downloads/elasticsearch一、elasticsearch93009200的协议不同:1、9200作为Http协议,主要用于外部通讯。2、9300作为Tcp协议,jar之间就是通过tcp......
  • linux环境下安装Elasticsearch
    下载Elasticsearch文件这里使用wget命令进行下载wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.4.0-linux-x86_64.tar.gz\wgethtt......
  • Elasticsearch实时搜索引擎
    一、实时搜索引擎ElasticsearchElasticsearch是一个基于ApacheLucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最......