mycat:
配置文件有3个
1,server.xml----mycat本身的服务器参数,和用户配置
2,scheam.xml----具体需要规则分片的表配置规则
3,rule.xml----申明好后面要用的规则
server.xml:
schemas逻辑数据库
逻辑数据中包含许多dn
每个dn对应一个datahost,其中的database就是逻辑数据库名
每个datahost设置数据库读写地址,其中的host随便写(同一个datahost中读写同步的数据库相同即可)
1,主从配置
datahost balance--负载策略 switchType 主从切换策略
writerhost
readhost
一个dn一个dataHost
<dataNode name="dn1" dataHost="vm1" database="test" />
<dataNode name="dn2" dataHost="vm2" database="test" />
<dataNode name="dn3" dataHost="vm3" database="test" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="localhost:3306" user="root"
password="123456">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.244.146:3306" user="root" password="123456" />
</writeHost>
</dataHost>
2:
scheam.xml
<table name="t_vote" dataNode="dn2,dn1,dn3" rule="sharding-by-intfile-test" />
3:rule.xml
1. tableRule
2. function
3. mapFile
<tableRule name="sharding-by-intfile-test">
<rule>
<columns>province</columns>
<algorithm>hash-int-test</algorithm>
</rule>
</tableRule>
<function name="hash-int-test"
class="org.opencloudb.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int-test.txt</property>
<property name="type">1</property>
<property name="defaultNode">0</property>
</function>
mapFile:
hubei=0
tianjin=1
guangdong=2
mycat没有主从复制功能,只有能根据sql语句的特性识别出是读还是写,读的分配到readhost(startdant by writehost),写的分配到writehost,从主之间的数据复制是靠mysql自身实现的
我们自己实现读写分离的方案就是用注解标识
分库、分表的时候原理:
mycat 只支持通过注解实现读哪个库,或者哪个分片。
mycat相当于一个虚拟的数据库,但是可以直接navicat客户端连接执行sql,外部看到的只有这个库,他的功能就是路由数据节点(实现读写分离(根据sql语句分离),分离数据库分片(根据对某个字段的算法))
一个数据节点datanote就相当于一个数据片,datahost就是数据库物理节点,database就是这个datanode的从属scheam
分库分表是在不同的datanode间,读写分离实在一个datanode中不同的readhost,writehost
1,读写分离只要一个datanode即可,一个node中有readhost,writehost:
<dataNode name="dn1" dataHost="test1" database="lunch" />
<dataHost name="test1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select user();</heartbeat>
<writeHost host="hostM1" url="192.168.0.2:3306" user="root" password="123456">
<readHost host="hostM1" url="192.168.0.3:3306" user="root" password="123456">
</readHost>
</writeHost>
</dataHost>
<table name="lunchmenu" dataNode="dn1" />
2,分库分表需要多个datanode,规则是决定分在不同的dn,一个dn就是一个dataHost :
<table name="t_vote" dataNode="dn2,dn1,dn3" rule="sharding-by-intfile-test" />
mycat有管理端口和管理页面,有问题可以看运行日志,
启动日志:
1,wrapper.log 为程序启动的日志,启动时的问题看这个
2,mycat.log 为脚本执行时的日志,SQL脚本执行报错后的具体错误内容,查看这个文件
相关推荐
《MyCat测试报告:单机与多机集群的性能比较》 MyCat,作为一个流行的开源分布式数据库系统,常被用于解决大数据场景下的高并发问题。本测试报告旨在探究单台MyCat与多台MyCat集群在性能上的差异,并对比前端使用...
【标题】"mycat2 install-template(mycat2-install-template-1.20.zip)" 指的是MyCat 2的一个安装模板文件,版本号为1.20,存储在一个名为“mycat2-install-template-1.20.zip”的压缩包内。MyCat是开源的、基于...
MYCAT是一款开源的分布式数据库中间件,主要用于解决大数据量下的高性能读写问题,它通过分库分表的方式,实现数据库的水平扩展。MYCAT的核心设计理念是“Scale Out”,即通过增加硬件设备的数量来提升系统处理能力...
《Mycat数据库分片中间件详解》 Mycat,作为一款开源的分布式数据库中间件,被广泛应用于大数据量、高并发的互联网环境中。它实现了数据库的分片功能,可以将一个大表拆分成多个小表,分散在不同的数据库服务器上,...
MyCat2映射关系概述 MyCat2是一款开源的数据库中间件,可以实现数据库的分布式处理、读写分离、负载均衡等功能。在MyCat2中,数据源、集群和逻辑表是三个核心概念。 数据源(DataSource)是指实际的数据库实例,...
【标题】"mycat2 install-template(mycat2-install-template-1.21.zip)" 指的是MyCat 2的一个安装模板文件,版本为1.21,通常包含了安装MyCat 2所需的所有配置文件和脚本,用于简化部署过程。 【描述】虽然描述...
《深入解析mycat2:基于mycat2-1.21-release-jar-with-dependencies.jar的分布式数据库中间件》 mycat2是一款开源的、高性能的、基于Java开发的分布式数据库中间件,它旨在解决大数据分布式存储和处理的问题。mycat...
Proxy和Mycat是两种常用的中间件,用于实现这些功能。本篇文章将深入探讨proxy和Mycat的对比测试,以及如何在MySQL主从架构中进行测试。 首先,我们来看proxy。Proxy通常指的是数据库代理服务器,它位于应用服务器...
- **wrapper.conf**:该文件位于`/usr/local/mycat/conf/`目录下,用于设置Mycat服务的一些基本参数,如Java版本、日志级别等。 - **schema.xml**:该文件同样位于`/usr/local/mycat/conf/`目录下,是Mycat的核心...
【MyCat从入门到放弃】 MyCat是一款开源的分布式数据库中间件,它的设计目标是让大数据分布式处理变得简单。在大型互联网应用中,面对高并发、海量数据的挑战,单机数据库往往无法满足需求,因此MyCat应运而生。本...
【标题】"mycat2-1.21" 指的是Mycat数据库中间件的一个特定版本,即1.21版。Mycat是一款开源的、基于Java开发的分布式数据库系统,常用于大数据环境下的数据库集群管理,能够实现数据库的水平扩展,提升系统的并发...
Mycat从入门到精通视频教程目录介绍: 第1课 Mycat前世今生 Mycat的历史、背后的团队、发展现状、RoadMap等 第2课 Mycat原理与入门 Mycat的原理、主要功能、配置和使用入门 第3课 Mycat故障排查指南 常见...
MySQL中间件MyCat是一款在大数据环境下广泛使用的数据库管理和分发工具,特别针对MySQL数据库系统设计,旨在实现数据库的读写分离和水平扩展。MyCat 1.6.5是其一个稳定版本,专为Windows环境提供了免安装的便捷性。...
【标题】"mycat2基础安装包"涉及的是开源数据库中间件Mycat的第二代版本,Mycat是一款基于Java开发的分布式数据库系统,它主要用于解决大数据量、高并发场景下的数据存储与访问问题。在传统的单机数据库无法满足业务...
它是一个开源的分布式...将一些计算分析后的数据灌入到 Hadoop 中,并能用 Mycat+Storm/Spark Stream 引擎做大规模数据分析,看 到这里,你大概明白了,Mycat 是什么?Mycat 就是 BigSQL,Big Data On SQL Database。
### 关系型数据的分布式处理系统MyCAT:深入解析与应用 #### 1. MyCAT 概述 ##### 1.1 背景 随着信息技术的快速发展,传统的数据库技术面临着越来越大的挑战。特别是当数据库应用扩展到互联网级别时,集中式...
《Mycat学习教程:从入门到精通》 Mycat,作为一款开源的分布式数据库中间件,是Java开发者在构建大型分布式数据库系统时的得力工具。它支持分库分表、读写分离、数据复制等功能,有效解决了传统集中式数据库系统的...
然而,在实际生产环境中,Mycat的使用往往会遇到一些常见问题。以下是对这些问题的详细解析,旨在帮助读者避免在技术选型和应用过程中陷入困境。 1. **数据不一致问题** Mycat在实现分库分表的过程中,可能由于...
【Mycat文档.zip】是一个包含了关于Mycat数据库中间件的重要资料的压缩包,其中包含了一份名为`Mycat.md`的Markdown格式文档、一个`MyCat.pdf`的PDF文件,以及一个名为`assets`的目录,可能包含了辅助图片、图表或者...