摘要
Mycat,让数据库读写分离变得轻松自如!它能帮你实现查询的读写分离和分库分表,让你的数据库更高效。构建Mycat环境前,先做好准备,安装运行也不难。让我们一起来享受这个神奇的工具吧!
正文
- 1、Mycat读写分离的配备
- 1.1、Mycat是什么
- 1.2、Mycat能做什么
- 1.2.1、数据库查询的读写分离
- 1.2.1.1、数据库查询读写分离详解
- 1.2.2、数据库查询分库分表
- 1.2.2.1、水准分拆(储备库)
- 1.2.2.2、竖直分拆(数据透析表)
- 1.2.1、数据库查询的读写分离
- 1.3、Mycat的构建
- 1.3.1、早期提前准备
- 1.3.2、构建自然环境
- 1.3.3、Mycat的安裝运行关掉
- 1.3.4、Mycat的环境变量
- 1.3.5、server.xml文件的配备
- 1.3.6、schema.xml文件的配备
- 1.3.6.1、schema配备
- 1.3.6.2、dataNode配备
- 1.3.6.3、dataHost配备
- 1.3.6.4、详细配备
- 1.4、读写分离检测
1、Mycat读写分离的配备
1.1、Mycat是什么
Mycat是一个开源数据库分布式数据库,是一个完成了MySQL协议书的的数据库查询分布式数据库网络服务器,我们可以把它当作是一个数据库查询代理商,用MySQL手机客户端专用工具和cmd浏览Mycat,而Mycat再应用用MySQL原生态(Native)协议书与好几个MySQL网络服务器通讯,还可以用JDBC协议书与大部分流行数据库查询网络服务器通讯,包含SQL Server、Oracle、DB2、PostgreSQL等流行数据库查询,也适用MongoDB这类新式NoSQL方法的储存,将来还会继续适用大量种类的储存。
1.2、Mycat能做什么
1.2.1、数据库查询的读写分离
1、根据Mycat能够 全自动完成写数据信息时实际操作主数据库查询,读取数据时实际操作从数据库查询,那样能合理地缓解数据库查询工作压力,也可以缓解IO工作压力。
2、完成读写分离,当主发生常见故障后,Mycat全自动转换到另一个主上,从而给予高可用性的数据库查询服务项目,自然大家必须 布署多主多从的方式
1.2.1.1、数据库查询读写分离详解
这儿是一主一从的详解
1.2.2、数据库查询分库分表
分库分表指的是对数据库查询数据信息的分拆,分成二种:水准分拆和竖直分拆
1.2.2.1、水准分拆(储备库)
依据表中数据的逻辑顺序,将同一个表格中的数据信息依照某类标准分拆到几台数据库查询网络服务器上边
1.2.2.2、竖直分拆(数据透析表)
依照不一样的表来分拆分到不一样的数据库查询网络服务器以上,依据表的种类不一样来分拆
1.3、Mycat的构建
1.3.1、早期提前准备
1、要将Mycat准备好能够 去官方网站下载 http://www.mycat.org.cn/
2、必须 两部或是两部之上的网络服务器或是vm虚拟机
3、确保每台网络服务器上早已安裝好啦mysql而且主从复制早已构建进行
主从复制构建能够 参照这儿:https://blog.csdn.net/qq_45334037/article/details/118708689
1.3.2、构建自然环境
主服务器ip:176.20.92.71
从服务器ip:176.20.92.73
Mycat版本号:1.6.7.1
MySQL版本号:5.7.18
Linux版本号:centos7
1.3.3、Mycat的安裝运行关掉
1、Mycat缓解压力即用
将Mycat缓解压力到/usr/local文件目录下
2、运行Mycat 必须 转换到Mycat中的bin文件目录下
./mycat start
3、登陆mycat 必须 进到mysql中的bin文件目录下
./mysql -umycat -p -P8066 -h127.0.0.1
4、Mycat的关掉
./mycat stop
1.3.4、Mycat的环境变量
- server.xml: 用以配备mycat所必须 的网络服务器信息内容。常见于配备:
1、配备编码序列生成方式
2、配备mycat逻辑性数据库查询
3、配备mycat的浏览帐户和登陆密码 - schema.xml: 用以配备的逻辑性数据库查询的投射、表、分块标准、数据信息节点及真正的数据库查询信息内容。常见于配备:
1、配备逻辑性库投射
2、配备竖直分割的表
3、配备真正的数据库查询
4、配备读写能力节点 - rule.xml: 用以界定分块标准
1.3.5、server.xml文件的配备
只需设定联接mycat时的登录名和登陆密码, 逻辑性库就可以,将默认设置的改动给你要想的
<user name="mycat" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">mycatdb</property>
</user>
1.3.6、schema.xml文件的配备
1.3.6.1、schema配备
由于只做读写分离,不做分库分表,Mycat仅仅帮大家分享一下要求,写分享到主库,读分享到从库,因此schema标签里边无需配备table
配备以下
<schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
1.3.6.2、dataNode配备
dataNode标识的功效
dataNode界定了Mycat中的数据信息连接点,也就是大家一般 说所的数据信息分块,一个dataNode标识便是一个单独的数据信息分块,简单了解,一个分块便是一个物理学数据库查询
配备以下
<dataNode name="dn1" dataHost="host1" database="testdb" />
name特性:定义数组连接点的名称,这一名称必须 是唯一的,这一名称在schema里边会应用到
dataHost特性:用以界定该分块归属于哪一个数据库实例的,特性值是引入dataHost标识上界定的name特性
database特性:用以相匹配真正的数据库查询名,务必是真正存有的
1.3.6.3、dataHost配备
dataHost标识的功效
界定实际的数据库实例、读写分离配备和心率句子
配备以下
<dataHost name="host1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="176.20.92.71:3306" user="root" password="123456">
<readHost host="hostS1" url="176.20.92.73:3306" user="root" password="123456" />
</writeHost>
</dataHost>
balance特性:web服务种类,现阶段的选值有4种
switchType特性:用以特定主网络服务器产生常见故障后的转换种类
heartbeat标识:用以和后面数据库查询开展心率查验的句子,检验MySQL数据库查询是不是一切正常运作
writeHost标识:将后端数据库查询的有关配备给mycat,用以创建对象后面数据库连接池,写案例
readHost标识:将后端数据库查询的有关配备给mycat,用以创建对象后面数据库连接池,读案例
在一个dataHost内能够 界定好几个writeHost和readHost。可是,假如writeHost特定的后面数据库查询服务器宕机,那麼这一writeHost关联的全部readHost都将不能用。另一方面,因为这一writeHost服务器宕机系统软件会全自动的检验到,并转换到预留的writeHost上来
1.3.6.4、详细配备
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<dataNode name="dn1" dataHost="host1" database="testdb" />
<dataHost name="host1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="176.20.92.71:3306" user="root" password="123456">
<readHost host="hostS1" url="176.20.92.73:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
在这里大家的mycat读写分离配备就所有完成了,重新启动mycat开展检测
1.4、读写分离检测
在mycat中的逻辑性数据库查询mycatdb的t_user表格中插进数据信息 能够 发觉主从关系数据库查询都被插入了数据信息
在mycat中查看t_user中的数据信息
到此mycat读写分离的构建和检测就所有完成了
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0