无论是Mycat的新增数据节点扩容还是缩减数据节点,都涉及到数据的重新分布。下面这张图是实际假设的数据分布情况。
二、 扩容方案
1)扩容方案一:表中增加一个冗余标志位字段,默认为0
如果遇到迁移数据,我首先发送一条SQL语句把冗余标志位改为1,标识这条数据需要重新分布。
然后进行扩容,重新加载配置文件,剩下情况就是处理冗余标志为1的数据了
2)扩容方案二
<table name="t_gaojs" dataNode="dn1,dn2,dn3" rule="mod-long" />
把name属性拆分为
<table virtualName="t_gaojs" realName="t_gaojs" dataNode="dn1,dn2,dn3" rule="mod-long" />
virtualName对应程序中sql语句查询的表名字,realName对应数据库中数据的真实名字
路由过程中重要的一步是用realName替换查询语句的virtualName
默认情况下,virtualName 和 realName="t_gaojs" 相等,因此没准哪天宝宝不高兴, 不用mycat了,如果不相等你就惨了。
现在遇到迁移情况,我改完 dataNode之后顺便把realName指向另外一张新表realName="t_gaojs_bak"
新表建表语句直接copy旧表的就行,然后在mycat的8066端口执行建表语句,应用就顺利切换过来了。剩下情况就是历史数据的重新插入计算路由了,历史数据要重新插入一遍。
方案二优点:
1)对应用可以隐藏真实的表名字
2)不需要一个一个的先把旧表改名字,当然也可以通过mycat8066改表名字,然后再建一个新表,但是此时可能碰到改表名字的时候锁表情况,因为没有停止应用,就有链接蜂拥上来的情况。
3)历史数据和新数据暂时分家了,可以互不影响,后续需要人为干预重新路由。
三、历史数据重新路由
剩下工作就是把数据重新取出来进行路由,
如果遇到缩减节点,缩减的那个节点数据都要重新路由一遍,类似扩容方案二。
如果遇到新增节点,那么取出来的数据有可能还是路由到该节点,此时就不需要处理,
反之就要先把数据路由到新节点,然后删除该条数据, 整个过程应该是一个事物
相关推荐
### MYCAT 数据扩容与迁移详解 #### 一、MYCAT数据扩容步骤 ##### 1. 前期准备 在进行MYCAT数据扩容之前,需要完成以下准备工作: - **安装MySQL客户端**: 确保MYCAT所在的环境中已安装MySQL客户端程序,这有助...
【Mycat多租户解决方案】是针对SAAS(Software as a Service)应用设计的一种高效且资源节省的数据隔离策略。在传统的多租户模式中,每个租户通常需要单独的数据库实例,这不仅消耗大量资源,还增加了管理和运维的...
《Mycat生产实践之数据迁移与扩容》 Mycat是一个开源的分布式数据库中间件,它能够将大型数据库拆分为多个子库,实现水平扩展,以处理大规模数据的存储和查询。在实际生产环境中,数据迁移和扩容是常见的需求,而...
Mycat数据扩容与迁移 第9课 Mycat案例分析 Mycat线上案例分析 第10课 MySQL 优化 MySQL通用调优 MySQL 主键问题 MySQL字段类型问题 MySQL Cache问题 MySQL常见误区 第11课 Mycat eye Mycat eye的规划...
第7课 Mycat高可用方案 读写分离机制 集群机制 高可靠性的几种生产方案 第8课 Mycat项目实施方案 Mycat较佳实践 Mycat项目改造路线 Mycat数据扩容与迁移 第9课 Mycat案例分析 Mycat线上案例分析 第10课 MySQL 优化 ...
标题所涉及的知识点为“Mycat高可用负载均衡集群实现”,这是使用HAProxy和Keepalived技术来达成MyCat服务器集群的高可用性和负载均衡的方案。下面详细说明这一知识点。 首先,Mycat是一个数据库中间件,它可以实现...
下面是 Mycat-cluster 的组件设计方案简述: 一、集群中 Mycat 节点服务状态跟踪 Mycat-cluster 可以方便地查看集群中各个节点的 server 状态,以及所有节点之间的网络关系。当节点状态异常时,可以获得通知消息等...
《Mycat-cluster组件设计方案详解》 Mycat-cluster是Mycat分布式集群的重要组成部分,其主要任务是确保Mycat存储系统中的各个服务器节点能够高效协同工作。本文将深入探讨Mycat-cluster的设计方案,解析其核心特性...
MySQL分布式数据库MyCAT方案 MySQL分布式数据库MyCAT方案是基于 MySQL 数据库管理系统和 MyCAT 分布式数据库中间件的实践方案。该方案的主要目的是为了解决传统 MySQL 数据库的单点故障和性能瓶颈问题,提高数据库...
综合来看,MyCat的性能受硬件配置、并发用户数、以及前端代理方案的影响。在选择MyCat集群规模和代理策略时,应考虑实际业务需求、系统负载和资源利用率。Lvs作为轻量级代理,更适合简单代理场景,而增加MyCat节点则...
Mycat智能优化设计方案 数据库智能优化设计方案的主要目的是将数据库优化自动化,通过对数据库日志和系统状态的监控,进行综合统计分析,给出对应的优化策略,并提供操作建议和入口目标。 根据 DB 日志和系统状态...
5. **动态扩容缩容**:当数据库需要扩展或缩减时,MYCAT可以动态调整数据节点,无需停机即可完成,降低了运维成本。 6. **SQL兼容性**:MYCAT支持大部分MySQL语法,使得开发人员可以无缝迁移现有的MySQL应用到MYCAT...
【MyCat配置方案1】 MyCat 是一个高性能、分布式数据库解决方案,源于阿里巴巴的Cobar项目。Cobar在MySQL分布式处理领域表现出色,而...这种设计使得MyCat成为企业级大数据处理和分布式数据库解决方案的理想选择。
读写分离,支持MySQL双主多从、一主多从模式,支持全局表,数据自动分片到多个节点,用于高效表关联查询,支持独有的基于E-R关系的分片策略,实现了高效的表关联查询,支持一致性Hash分片,有效解决分片扩容难题,多...
4. **自动扩容**:mycat允许动态添加数据库节点,当现有节点无法满足业务需求时,可以通过添加新节点来扩展系统容量。 然而,mycat并不是万能的解决方案,它也有其局限性: - **复杂性增加**:引入mycat意味着增加...
8. **第8课Mycat项目实施方案**:分享Mycat在实际项目中的最佳实践、改造路线、数据扩容与迁移等内容。 9. **第9课Mycat案例分析**:通过对线上案例的分析,深入理解Mycat在不同场景下的应用效果。 10. **第10课...
### Mycat升级指南知识点详解 #### 一、Mycat简介 Mycat是一款开源的分布式数据库中间件,主要用于解决数据库水平扩展问题。它能够帮助应用程序实现数据分片,提高数据库处理性能,同时具备良好的易用性和灵活性。...
总结起来,Mycat的生产使用需要关注数据一致性、性能优化、迁移策略、主从延迟、扩容缩容、故障恢复、SQL兼容性和监控日志等多个方面。通过深入理解Mycat的工作原理和最佳实践,可以有效地规避这些问题,确保系统的...
MyCat的主要目标是解决大数据量、高并发情况下的数据读写问题,提供了一种分库分表的解决方案,使得单个数据库无法承载的海量数据可以分散到多个数据库上,实现水平扩展。 在MyCat的生态系统中,mycat-web和mycat-...
- 扩展性:mycat 可以轻松地添加或移除数据库节点,实现动态扩容和缩容。 - 高可用性:支持主从复制、读写分离,提高系统的可用性和稳定性。 - 事务一致性:mycat 支持分布式事务,保证数据的一致性。 - SQL ...