es异地恢复(目的端带密码认证)

news/2025/3/17 16:35:49/文章来源:https://www.cnblogs.com/hxlasky/p/18777106

环境:

OS:Centos 4

es:6.8.5

源端:3节点组成的集群

目的端:单点

 

1.目的端需要安装好ES

安装的版本与源端保持一致,同时目的端启用密码认证

安装步骤参考如下:

https://www.cnblogs.com/hxlasky/p/13361631.html

 

2.目的端需要安装与源端的插件

安装插件
su - elasticsearch
[elasticsearch@elasticsearch-backup001 ~]$ cd /usr/local/services/elasticsearch/bin
[elasticsearch@elasticsearch-backup001 bin]$ ./elasticsearch-plugin install file:///soft/es_fenci/elasticsearch-analysis-ik-6.8.5.zip
-> Downloading file:///soft/es_fenci/elasticsearch-analysis-ik-6.8.5.zip
[=================================================] 100%?? 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: plugin requires additional permissions     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.net.SocketPermission * connect,resolve
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.Continue with installation? [y/N]y
-> Installed analysis-ik需要重启动
[elasticsearch@elasticsearch-backup001 bin]$kill 7885
[elasticsearch@elasticsearch-backup001 bin]$cd /usr/local/services/elasticsearch/bin
[elasticsearch@elasticsearch-backup001 bin]$ ./elasticsearch -d

 

 

3.确定源端和目的端的备份路径

源端:path.repo: /home/middle/esbak/backup

目的端:path.repo: /nasdata/middle/esbak/bakcup

说明:源端和目的端的备份路径可以不一样

 

4.拷贝备份压缩的备份文件到目的集群

[elasticsearch@tarfile]$cd /home/middle/esbak/tarfile
[elasticsearch@tarfile]$ls -al
total 355565029
drwxr-xr-x 2 elasticsearch elasticsearch        4096 Mar 17 05:27 .
drwxrwxrwt 4 root          root                 4096 Jan  6  2022 ..
-rw-r--r-- 1 root          root          51600734611 Mar 11 05:26 esbak_20250311.tar.gz
-rw-r--r-- 1 root          root          51768466359 Mar 12 05:26 esbak_20250312.tar.gz
-rw-r--r-- 1 root          root          51887303301 Mar 13 05:26 esbak_20250313.tar.gz
-rw-r--r-- 1 root          root          52025550514 Mar 14 05:27 esbak_20250314.tar.gz
-rw-r--r-- 1 root          root          52208586000 Mar 15 05:27 esbak_20250315.tar.gz
-rw-r--r-- 1 root          root          52237266593 Mar 16 05:27 esbak_20250316.tar.gz
-rw-r--r-- 1 root          root          52370671775 Mar 17 05:27 esbak_20250317.tar.gzscp esbak_20250317.tar.gz scpuser@192.168.1.100:/hxl-scp-databackup/

 

5.修改传输到目标机器文件的权限
[root@data-scp]# cd /temp01/data-scp
[root@data-scp]# chown elasticsearch:elasticsearch ./esbak_20250317.tar.gz

 

6.解压到备份目录

查看压缩文件的路径情况

[elasticsearch@elasticsearch-backup001 data-scp]$ pwd
/temp01/data-scp
-rw-rw-r-- elasticsearch/elasticsearch    8664 2025-03-17 01:00 ./backup/indices/6_NCHiUURoORo_fN5BomoA/4/__hNn1StymSJyWNLRsvKu6SQ
-rw-rw-r-- elasticsearch/elasticsearch     331 2025-03-17 01:00 ./backup/indices/6_NCHiUURoORo_fN5BomoA/4/__iF9iqzP4TDiQt46Cm2MTOA
-rw-rw-r-- elasticsearch/elasticsearch  826208 2025-03-17 01:00 ./backup/indices/6_NCHiUURoORo_fN5BomoA/4/__iFFiaNbATkKKi-ALBhZdxA

压缩文件里带有了backup目录,我们直接解压到 /nasdata/middle/elasticsearch/esbak

目的端es备份目录设置如下:

path.repo: /nasdata/middle/elasticsearch/esbak/backup

 

[root@elasticsearch]# su - elasticsearch
[elasticsearch@elasticsearch]$ cd /temp01/data-scp[elasticsearch@elasticsearch]$time tar --use-compress-program=pigz -xvf esbak_20250317.tar.gz -C /nasdata/middle/elasticsearch/esbak

 

7.注册备份集到新机器

设置备份指定目录

curl -u elastic:elastic -H "Content-Type: application/json" -XPUT http://192.168.1.100:19200/_snapshot/esbackup -d'{
"type": "fs",
"settings": {
"location": "/nasdata/middle/elasticsearch/esbak/backup"
}
}'

 

查看备份情况

[elasticsearch@elasticsearch-hangzhou-db-backup001 esbak]$ curl -u elastic:elastic -X GET "http://172.16.119.201:19200/_snapshot/esbackup/_all?pretty"
{"snapshots" : [{"snapshot" : "snapshot_20250317","uuid" : "z0FaDPjDTAasm0h7reQhsg","version_id" : 6080599,"version" : "6.8.5","indices" : [".monitoring-kibana-6-2025.03.15",".monitoring-kibana-6-2025.03.11",".monitoring-es-6-2025.03.10",
".monitoring-kibana-6-2025.03.14","hxl_inocue_examine",".monitoring-es-6-2025.03.16",".monitoring-es-6-2025.03.12",".kibana_task_manager",".monitoring-kibana-6-2025.03.10",
".monitoring-es-6-2025.03.14",".kibana_1",".monitoring-kibana-6-2025.03.16",".monitoring-es-6-2025.03.15",".monitoring-es-6-2025.03.11",".monitoring-es-6-2025.03.13",
".security-6",".monitoring-kibana-6-2025.03.13",
".monitoring-kibana-6-2025.03.12"],"include_global_state" : true,"state" : "SUCCESS","start_time" : "2025-03-16T17:00:19.226Z","start_time_in_millis" : 1742144419226,"end_time" : "2025-03-16T17:19:48.111Z","end_time_in_millis" : 1742145588111,"duration_in_millis" : 1168885,"failures" : [ ],"shards" : {"total" : 18,"failed" : 0,"successful" : 18}}]
}

 

这里列出了所有备份的index,包括kinna,security

 

8.恢复

time curl -u elastic:elastic -XPOST http://192.168.1.100:19200/_snapshot/esbackup/snapshot_20250317/_restore?wait_for_completion=true

[elasticsearch@db-backup001 esbak]$ curl -u elastic:elastic -XPOST http://192.168.1.100:19200/_snapshot/esbackup/snapshot_20250317/_restore?wait_for_completion=true
{"error":{"root_cause":[{"type":"snapshot_restore_exception","reason":"[esbackup:snapshot_20250317/z0FaDPjDTAasm0h7reQhsg] 
cannot restore index [.security-6] 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"}],"type":"snapshot_restore_exception","reason":"[esbackup:snapshot_20250317/z0FaDPjDTAasm0h7reQhsg] 
cannot restore index [.security-6] 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"},"status":500} 

 

报错:是因为当前的环境已经存在了.security-6
解决办法(先关闭):
curl -u elastic:elastic -XPOST "http://192.168.1.100:19200/.security-6/_close"

 

再次恢复:
time curl -u elastic:elastic -XPOST http://192.168.1.100:19200/_snapshot/esbackup/snapshot_20250317/_restore?wait_for_completion=true

wait_for_completion选项是需要执行完成后才返回

 

若没有安装相应的插件会报如下错误

[2025-03-17T13:48:11,983][WARN ][o.e.c.r.a.AllocationService] [ytB7yEC] failing shard [failed shard, shard [threegene_content_base][0], node[ytB7yECbS_SwTIT6kg2ujw], [P], recovery_source[snapshot recovery [ZU2ZUtojSmiTWrIhLztlQg] from esbackup:snapshot_20250317/z0FaDPjDTAasm0h7reQhsg], s[INITIALIZING], a[id=6-yNz-MAQaGKbTvrdQzQXw], unassigned_info[[reason=NEW_INDEX_RESTORED], at[2025-03-17T05:47:23.002Z], delayed=false, details[restore_source[esbackup/snapshot_20250317]], allocation_status[deciders_throttled]], message [failed to update mapping for index], failure [MapperParsingException[Failed to parse mapping [content]: analyzer [ik_max_word] not found for field [content]]; nested: MapperParsingException[analyzer [ik_max_word] not found for field [content]]; ], markAsStale [true]]
org.elasticsearch.index.mapper.MapperParsingException: Failed to parse mapping [content]: analyzer [ik_max_word] not found for field [content]

数据量比较大的话,恢复过程需要些时间

 

9.查看恢复情况

这个时候恢复了security-6,就需要使用源库的密码才能登录了,所以为了方便恢复,可以使用不带验证的环境进行恢复

索引情况

curl -u elastic:原实例的密码 -X GET 'http://192.168.1.100:19200/_cat/indices?v'

分片情况

curl -u elastic:原实例的密码 -X GET "192.168.1.100:19200/_cat/shards?h=index,shard,prirep,state,unassigned.reason?v"

 

目前我们是从集群同步到单节点环境的,在集群环境设置了副本集的话,恢复到单机显示的状态是:yellow

 

可以修改副本数设置为0:

curl -u elastic:源库密码 -H "Content-Type: application/json" -XPUT 'http://192.168.1.100:19200/索引名称/_settings' -d '{
"number_of_replicas" : 0
}'

 

最后的分片情况如下:

[elasticsearch@elasticsearch-backup001 data-scp]$ curl -u elastic:源库密码 -X GET "192.168.1.100:19200/_cat/shards?h=index,shard,prirep,state,unassigned.reason?v"
.kibana_1                             0 p STARTED
hxl_inocue_examine                    1 p STARTED
hxl_inocue_examine                    3 p STARTED
hxl_inocue_examine                    2 p STARTED
hxl_inocue_examine                    4 p STARTED
hxl_inocue_examine                    0 p STARTED
.security-6                           0 p STARTED
.monitoring-kibana-6-2025.03.15       0 p STARTED
.kibana_task_manager                  0 p STARTED
threegene_content_heatcontent         0 p STARTED
.monitoring-kibana-6-2025.03.14       0 p STARTED
.monitoring-es-6-2025.03.16           0 p STARTED
.monitoring-es-6-2025.03.14           0 p STARTED
.monitoring-kibana-6-2025.03.13       0 p STARTED
.monitoring-es-6-2025.03.10           0 p STARTED
.monitoring-kibana-6-2025.03.16       0 p STARTED
.monitoring-es-6-2025.03.15           0 p STARTED
.monitoring-kibana-6-2025.03.10       0 p STARTED
.monitoring-kibana-6-2025.03.12       0 p STARTED
.monitoring-kibana-6-2025.03.11       0 p STARTED
.monitoring-es-6-2025.03.11           0 p STARTED
.monitoring-es-6-2025.03.12           0 p STARTED
.monitoring-es-6-2025.03.13           0 p STARTED

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/900436.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Bernoulli Equation

伯努利方程 伯努利方程并非一个独立的定律,而是在不同条件下由 Navier-Stokes 动量方程(式1)和能量方程(式2)推导而来的。 \[\rho\left(\frac{\partial u_{j}}{\partial t} + u_{i}\frac{\partial u_{j}}{\partial x_{i}}\right)=-\frac{\partial p}{\partial x_{j}}+\rho…

社区演讲-基于.NET 技术栈的研发过程管理和智能化探索

Hi all 2024年11月23日,我作为【项目管理实践探索者大会】专题讲师,给社区分享了主题《基于.NET 技术栈的研发过程管理和智能化探索》 现场参与人数:100+ 演讲议题介绍: 体系建设:如何设计一个合适的研发过程管理体系 平台提效:通过.NET技术构建任务驱动+流程驱动,释放研…

halcon 深度学习教程(二)halcon基于深度学习的OCR检测

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18777081深度学习教程目录如下,还在继续更新完善中 深度学习系列教程目录 本篇非常简单,但是非常好用的OCR识别,传统的OCR识别方法一大堆各种各样的操作,麻烦的要死。halcon 22版本开始支持深度学习OCR,并且…

[ SpringMVC ] SpringMVC如何通过是否有@RestController注解来判断返回ModelAndView还是Json

引言之前在面试的遇到面试官问我SpringMVC的执行流程,我那时候回答的是SpringMVC的DispatcherServlet的dodispatch方法找到ControllerMethod之后将返回值通过convert成Json返回响应体,事后想了一下回答的其实并不正确,因为SpringMVC之前学习的时候有使用ModelAndView返回视图,我…

从HR+AI到AI+HR,企业人力资源AI进程已过半

一、人力资源管理智能化应势而上,核心价值受企业管理层肯定 过往各项研究表明,AI 已经被广泛应用于企业经营的各个环节中。根据易路于2023 年发布的《AI 在企业人力资源中的应用白皮书1.0》(以下简称《白皮书1.0》),我们可以明确感受到:AI 已不同程度应用于招聘管理、员工…

multi-object tracking in the dark

创新点:构建LMOT数据集:开发了一种双摄像头系统,同步采集明暗视频帧,形成高度对齐的低光视频对,并提供高质量的多目标跟踪标注。该数据集包含大量城市户外场景视频,涵盖多种动态物体,为模型训练和评估提供了丰富的数据支持。 提出LTrack方法:引入自适应低通下采样模块(…

LGP11831_1 [UPTS 2025] 追忆 学习笔记

LGP11831_1 [UPTS 2025] 追忆 学习笔记 Luogu Link 前言 又幻想了……唉! 幻想自己场切这道题,最后标准分上升至 \(\text{598pts}\),翻掉了 \(\text{yyz}\),不至于一点脸不要。 本题解基本借鉴这篇题解。 题意简述 给定一个 \(n\) 点 \(m\) 边的简单有向图 \(G\),有 \(m\)…

sql 在两个数据表中,A表存在字段以逗号分隔存储B表的多id对象,进行关联查询

A 表:B表:关联查询 需求为,查询出A表的数据列表,需要将A表关联B表的数据id,概要通过B表的 name 进行输出显示 SELECT A.id,A.name,A.creator,A.created_at,GROUP_CONCAT(B.name SEPARATOR , ) AS B_names -- 将 c_name 合并为逗号分隔的字符串 FROM xf_service_type A LE…

算力市场何以拥有巨大潜力

算力市场未来确实具有巨大的潜力,这一判断基于多个方面的因素: 一、算力成为经济增长的主要驱动力 随着全球数字化转型的迅猛推进,算力已成为推动经济增长的关键引擎。各国纷纷加大在算力基础设施方面的投入,以期为经济发展注入新的活力。例如,欧盟委员会批准了一项名为“…

算法备案拟公示内容编写指南

除了自评估报告,算法备案复审中的拟公示内容也是难度颇大的一份材料,导致很多开发者的算法备案申请被驳回。今天我就提供一份简易模板供大家学习参考(请结合实际情况撰写,不要照抄,不要买模板,否则会判定真实性存疑或高度雷同,影响备案)。(各类文件套模板都会判定该真…

CH585 RF_Basic例程讲解含单向和双向发送

CH585_RF基础通讯例程见下图路径:1、RF初始化参数配置/******************************************************************************** @fn RFRole_Init** @brief RF应用层初始化** @param None.** @return None.*/ void RFRole_Init(void) {rfTaskID = TMOS_…

uniapp整合SQLite(Android)

一、勾选SQLite数据库选项 (1)HBuilder工具打开项目 (2)项目/manifest.json =>App模块配置 => 勾选SQLite(数据库)二、封装sqlite.ts 在项目根目录下创建sqlite/sqlite.ts// 数据库名称 const dbName = scan/*** 数据库地址* @type {String} 推荐以下划线为开头 _d…