ES:在线迁移集群索引,数据不丢失

摘要:
2、 应用场景1.同一机房内不同集群之间的数据迁移;2.跨机房的不同集群之间的数据迁移。
一、背景
生产环境由于某些原因需要跨机房迁移ES集群,或者同机房原有集群中所有节点全部更换,期间ES索引要求完整,客户端请求中断不超过五分钟。
二、应用场景 1、同机房不同集群之间数据迁移; 2、跨机房不同集群之间数据迁移。
三、迁移方案
A机房ES集群 --> B机房ES集群
1、迁移任务:假设A机房ES集群(3master、3data共三台物理机)迁移到B机房ES集群(3master、3data共三台物理机);
2、迁移思路:通过集群扩容的方式加入B机房ES节点,通过缩容的方式去掉A机房节点,始终保持一个集群原则,分片在集群内部进行迁移,集群及索引配置不更改,对业务友好;
3、对业务影响: 迁移期间有两次集群master重选举环节,选举期间ES集群对外不可用,每次选举时长不超过2分钟;
4、迁移步骤:
  1.在A机房ES集群扩容3master、3data节点,新节点使用首鸣的物理机,观察新增的3master、3data全部加入到A机房ES集群,此时B机房3master、3data和A机房3master、3data共同组成1个6master、6data节点的跨机房集群;       discovery.zen.ping.unicast.hosts: ["bjsm_master1:tcp_port","bjsm_master2:tcp_port","bjsm_master3:tcp_port","bjdz_master1:tcp_port","bjdz_master2:tcp_port","bjdz_master3:tcp_port" ]    配置首鸣、大族共6个master节点     2.在集群内部迁移A机房data节点上的分片到B机房的data节点上,此时集群中所有数据分片都在B机房的data节点上;       执行RESTful API迁移分片: curl -H 'Content-Type:application/json' -XPUT 'http://bjsm_master1:http_port/_cluster/settings' -d'{"transient" : {"cluster.routing.allocation.exclude._ip" : "IP"}}'     3.更改ES客户端配置文件中“data.elasticsearch.cluster-nodes”,去掉A机房的节点配置,改成B机房的master节点(tcp端口),然后客户端实例灰度重启并生效配置;     4.下线A机房的3个data节点,再下线A机房的两个副master节点,最后下线A机房的主master节点,此时集群会进入master节点重新选举,且新的主master节点一定会在B机房的3个master节点中产生,此时集群会有短暂的不可访问(两分钟左右);     5.去掉B机房master、data节点配置文件中的大族节点配置,逐个重启data节点,再重启副master节点,最后重启主master节点(集群会有最长两分钟的不可访问时间)后全部生效,等待ES集群再次恢复;       discovery.zen.ping.unicast.hosts: ["bjsm_master1:tcp_port","bjsm_master2:tcp_port","bjsm_master3:tcp_port" ]   只留B机房的3个master节点     6.B机房的客户端访问均正常后,下线A机房的3个master、3个data节点,此时整个迁移任务完毕。

免责声明:文章转载自《ES:在线迁移集群索引,数据不丢失》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Navicat破解方法(仅供学习)VSCode插件开发全攻略(六)开发调试技巧下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue后台(一)

一,项目准备工作 1.拿到已经是二次开发的代码, npm i , 安装依赖包 ES6模块暴露和导入复习 1. 导出方式一: 默认一次性导出 (只能有一个) export default xxx 本质: 整个模块是一个对象, 对象中有default属性, 即: {default: xxx} 2....

ElasticSearch性能优化策略【转】

ElasticSearch性能优化主要分为4个方面的优化。 一、服务器部署 二、服务器配置 三、数据结构优化 四、运行期优化 一、服务器部署 1、增加1-2台服务器,用于负载均衡节点 elasticSearch的配置文件中有2个参数:node.master和node.data。这两个参 数搭配使用时,能够帮助提供服务器性能。 1.1> node.ma...

MySQL Myisam引擎和Innodb引擎的区别

MySQL Myisam和Innodb的区别 MySQL 区别于其他数据库的很重要的一个特点就是插件式的表存储引擎,其基于表,而不是数据库。由于每个存储引擎都有其特点,最常见的是 Innodb 引擎和 Myisam 引擎,因此我们可以针对每一张表来挑选最合适的存储引擎。 两者区别对照表: Myisam Innodb 5.5版本前默认引擎 5....

vue调用组件,组件回调给data中的数组赋值,报错Invalid prop type check failed for prop value. Expecte

报错信息: 代码信息:调用一个tree组件,选择一些信息 <componentsTree ref="typeTreeComponent"   @treeCheck="treeCheck"   :isClearAllChecked=true   :defaultProps="defaultProps"> </componentsTree&...

Cacti数据备份与数据迁移还原

简介:部署了一台备用cacti监控服务器,需要将原cacti监控服务器的数据迁移到新的监控主机上去,实现监控数据双重同步备份。 cacti数据是由mysql数据(主要保存设备配置信息、用户信息等)和rra数据(环状数据库,没有起点和终点,存储监控数据信息;加载速度比mysql数据库快)。因此只需要将这两部分数据备份再恢复到新部署的cacti即可。...

分享12款 JavaScript 表格控件(DataGrid)

JavaScript 表格控件可以操作大数据集的 HTML 表格,提供各种功能,如分页、排序、过滤以及行编辑。在本文中,我们整理了13个最好的 JavaScript 表格插件分享给开发人员,开发者可以很容易地添加表格操作功能到 Web 应用程序中。 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果【附源码】 分享35个让人惊讶的 CSS3...