Mycat的使用 - 01.概念, 及安装
admin
2023-05-03 04:02:09
0

识Mycat


1. Mycat是什么

Mycat是一款数据库中间件, 其用于分库分表, 还实现了读写分离, 故障切换等功能.


2. Mycat的工作原理

用一个动词来概括就是"拦截", 它拦截了用户发送的SQL语句, 首先对其做了一些特定的分析: 如分片分析, 路由分析, 读写分离分析, 缓存分析等, 然后将其发往后端真实的数据库, 并将返回的结果做适当处理, 最终再返回给用户.



Mycat中的概念


1. 逻辑库(schema)

逻辑库是用户直接访问的地方, 它是由后端的一个或多个物理库组成, 而用户是不知道物理库的存在的.


2. 逻辑表(table)

其和逻辑库的概念类似, 后端是由一个或多个物理表组成的. 若是多个物理表, 该表就是分片表了, 由于数据量大, 需要切分到多个数据库的表中, 每个分片都有一部分数据, 所有分片构成完整的数据. 若是一个物理表, 就是非分片表.


由于分片, 就让join操作变得复杂, 据此, Mycat中提出了ER表和全局表的方式来优化join. ER表, 是通过E-R关系构成的表分组, 即子表的记录与所关联的父表的记录存放在同一个分片上. 全局表, 是类似于字典表这样的, 数据量较少, 且变更不频繁的表, 在每个分片上都有一份完整的数据拷贝.


3. 分片节点(dataNode)

数据切分后, 一个大表被分到不同的分片数据库上面, 每个表分片所在的数据库就是分片节点.


4. 节点主机(dataHost)

数据切分后, 每个分片节点不一定都会独占一台机器, 同一机器上面可以有多个分片数据库, 这样一个或多个分片节点所在的机器就是节点主机.


5. 分片规则(rule)

数据切分后, 一个大表被分成若干分片表, 就需要一定的规则, 这样按照某种业务规则把数据分到某个分片的方法就是分片规则.


6. 全局序列号(sequence)

数据切分后, 原有的关系数据库中的主键约束在分布式条件下将无法使用, 因此需要引入外部机制来保证数据的唯一性标识, 该保证数据全局唯一标识的机制就是全局序列号.



Mycat的安装


1. jdk下载, 及Java环境的设置

http://www.oracle.com/technetwork/java/javase/archive-139210.html


将其解压到目录/usr/local下.


# cat /etc/profile.d/java.sh

export JAVA_HOME=/usr/local/jdk1.7.0_80

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


# source /etc/profile.d/java.sh


# java -version

java version "1.7.0_80"

Java(TM) SE Runtime Environment (build 1.7.0_80-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)



2. Mycat下载, 及安装

https://github.com/MyCATApache/Mycat-download/blob/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz


将其解压到目录/usr/local下.


# cat /etc/profile.d/mycat.sh

export MYCAT_HOME=/usr/local/mycat


# source /etc/profile.d/mycat.sh


# echo $MYCAT_HOME

/usr/local/mycat


创建mycat用户

# useradd mycat


启动

# su - mycat


$ cd /usr/local/mycat/


$ bin/mycat restart

Stopping Mycat-server...

Mycat-server was not running.

Starting Mycat-server...


$ tail -f logs/wrapper.log

...

INFO   | jvm 1    | 2018/03/15 21:43:25 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org

INFO   | jvm 1    | 2018/03/15 21:43:25 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.

INFO   | jvm 1    | 2018/03/15 21:43:25 |

INFO   | jvm 1    | 2018/03/15 21:43:25 | log4j 2018-03-15 21:43:25 [./conf/log4j.xml] load completed.

INFO   | jvm 1    | 2018/03/15 21:44:25 | MyCAT Server startup successfully. see logs in logs/mycat.log


若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).

Mycat的使用 - 01.概念, 及安装

相关内容

热门资讯

凯特王妃将赴意大利,系病情缓解... 【环球网报道】据英国广播公司(BBC)、美联社等媒体报道,英国威尔士王妃凯特将于13日重返国际舞台,...
河南拟发行392.99亿元地方... 【大河财立方消息】 5月13日,河南省财政厅披露2026年河南省政府一般债券(六至七期)、专项债券(...
美军侦察机未经授权进入领空,奥... 【文/观察者网 熊超然】据“今日俄罗斯”(RT)当地时间5月13日报道,奥地利方面表示,该国已紧急出...
男子骑车闯红灯被罚,疑问“没车... 近日,一男子骑车时因闯红灯被处罚,后与交警产生对话,交警的回答被网友称赞为“教科书级别的科普”。司机...
他信,笑着出狱了 监狱大门打开的那一刻,泰国前总理他信微笑着张开双臂,拥抱小女儿佩通坦。佩通坦随后在社交媒体发布两人合...
冰箱漏电怎么测 1、可以用灯泡检查法来检测冰箱漏电,将36V灯泡的两根导线,一根接冰箱外壳(无漆处)另一根接大地,如...
电饭煲通电就跳闸怎么回事 如果之前电饭煲从未出现过跳闸现象,此现象为新出现的,有可能是插板或者是电饭煲发生故障导致的。首先可以...
空调外机有温度传感器损坏 最可能是温度传感器泄漏导致的这个原因。可以使用热毛巾加热温度检测管,将按钮设置为最低温度,并使用测试...
九阳铁釜电饭煲故障代码种类及解... 故障代码的种类很多,有E0表示电饭煲上盖热敏电阻故障,需要更换上盖的热门电阻;E1是热敏电阻故障,需...
九阳电饭锅的拆卸步骤 先拆锅底的四个小螺丝,然后将暴露出来的底拆开,然后拆卸电饭锅那儿的小盖板,用螺丝刀拆螺丝就行,然后将...