其他
干货 | Elasitcsearch7.X集群/索引备份与恢复实战
来自专辑
死磕Elasticsearch
1、问题引出
问题1:存储数据,data目录从一个机器直接移到一台新的机器是否可以直接使用? 问题2:es升级时,data目录如果在外部路径,从低版本升级到高版本时,data目录是否直接可以使用? 问题3:将一个旧的es数据(400多G)迁移到新的es中的时候直接将旧es的data目录下indices文件拷贝到新es的data下(大概花了一个晚上),这种做法是否可取?
2、问题分析
1、ES Mapping&Setting 基础信息备份。 2、ES 全量数据备份。 3、ES 增量数据备份。 4、ES 数据恢复。
3、常见备份和恢复索引/集群方案
方案一:使用ES的快照和恢复功能进行备份和恢复。
适用于
:集群整体备份与迁移,包括:全量、增量贝恩和恢复。方案二:使用elasticdump迁移Mapping和数据。
适用于
:索引层面迁移数据或Mapping,支持:analyzer/Mapping/data的迁移操作。方案三:使用reindex实行集群内部或跨集群同步数据。
适用于
:本地索引更新Mapping实现索引层面迁移,或者跨集群的索引迁移。4、直接拷贝文件能不能实现集群备份呢?
备份集群
的唯一可靠方法是使用快照和还原功能。5、方案一:Elasticsearch快照和还原功能
5.1 快照注意事项
1、快照是从正在运行的Elasticsearch集群中获取的备份。 2、您可以创建单个索引或整个群集的快照,支持本地文件存储,以及远程第三方存储库存储(包括:S3,HDFS,Azure,Google Cloud Storage等)。 3、快照是 增量
创建的。这意味着,当创建索引快照时,Elasticsearch避免复制任何已存储在存储库中的数据作为同一索引的早期快照的一部分。因此,可以非常频繁
地为集群创建快照。4、如果您的集群启用了Elasticsearch安全功能,则在备份数据时,必须授权快照API调用。 5、在升级之前备份数据时,请记住,如果快照中包含与升级版本不兼容的版本中创建的索引,则可能导致升级后将无法还原快照。 6、兼容列表如下:
在1.x中创建的索引快照可以恢复到2.x。
在2.x中创建的索引快照可以恢复到5.x。
在5.x中创建的索引快照可以恢复到6.x。
在6.x中创建的索引快照可以恢复到7.x。
反例:无法将在1.x中创建的索引快照还原到5.x或6.x,无法将在2.x中创建的索引快照还原到6.x或7.x,以及无法将在5.X创建的索引快照还原到7.x。7、要保证还原的集群有足够的存储容量。
5.2 快照执行步骤
5.2.1 步骤1:配置快照存储路径及注册快照存储库
在elasticsearch中添加如下配置:
注册快照存储库(即设置存储路径)
2{
3 "type": "fs",
4 "settings": {
5 "location": "D:\\install\\elasticsearch-7.2.0-windows-x86_64\\elasticsearch-7.2.0\\backup"
6 }
7}
5.2.2 步骤2:拍摄快照
想象成拍照的点击确认的那一刻。
2快照执行起始时间、持续时间
3成功、失败分片数等
2{
3 "indices": "hamlet_*",
4 "ignore_unavailable": true,
5 "include_global_state": false,
6 "metadata": {
7 "taken_by": "mingyi",
8 "taken_because": "backup before upgrading"
9 }
10}
假设ES有实时数据持续写入,不同时间点会生成不同的快照。
5.2.3 步骤3:恢复快照
步骤3.1 恢复索引快照
2POST /_snapshot/my_backup/snapshot_hamlet_index/_restore
2 "accepted" : true
3}
步骤3.2 恢复集群快照
5.3 快照常见操作
1、查看所有快照存储库
2、查看快照状态
3、删除快照
6、方案二:elasticdump迁移
192.168.1.1:9200 迁移源集群, 192.168.3.2:9200 迁移目的集群。
6.1 迁移Setting和Mapping等
2 --input=http://192.168.1.1:9200/my_index \
3 --output=http://192.168.3.2:9200/my_index \
4 --type=analyzer
5elasticdump \
6 --input=http://192.168.1.1:9200/my_index \
7 --output=http://192.168.3.2:9200/my_index \
8 --type=settings
9elasticdump \
10 --input=http://192.168.1.1:9200/my_index \
11 --output=http://192.168.3.2:9200/my_index \
12 --type=mapping
6.2 迁移数据
2 --input=http://192.168.1.1:9200/my_index \
3 --output=http://192.168.3.2:9200/my_index \
4 --type=data
7、最常见问题
7.1 多节点集群如何配置才能实现快照?
NFS共享
,确定每一个节点挂载到指定路径,才能创建快照存储库。7.2 相同名称索引存在的情况下执行恢复快照?
英文reason里面已经给出解决方案。
2 "error": {
3 "root_cause": [
4 {
5 "type": "snapshot_restore_exception",
6 "reason": "[my_backup:snapshot_cluster/_THlX1vMQvGmwxcRCmhnlA] cannot restore index [.kibana_task_manager] because an open index with same name already exists in the cluster. Either close or delete the existing index or restore the index under a different name by providing a rename pattern and replacement name"
7 }
8 ],
8、小结
更短时间、更快习得更多干货!