千家信息网

Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表

发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,部署 mycatmycat基于java运行,检查java版本[root@node119 ~]# java -versionopenjdk version "1.8.0_171"OpenJDK Runt
千家信息网最后更新 2024年09月23日Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表

部署 mycat

mycat基于java运行,检查java版本

[root@node119 ~]# java -versionopenjdk version "1.8.0_171"OpenJDK Runtime Environment (build 1.8.0_171-b10)OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)

配置java变量

[root@node119 ~]# vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-7.b10.el7.x86_64export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/bin

mycat下载地址

http://dl.mycat.io/cd /opttar zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz  

大致架构图

核心概念

  • schema:由多个数据库组成的逻辑数据库
  • datanode:将数据切分后,一个大表被分配到不同的分片数据库上,每个表分片所在的数据库就称为分片节点
  • datahost:一个或者多个分片节点所在的机器就是节点主机

分片节点与节点主机的概念稍微有点不好理解,举例来说,一张100W的表被分为两张表,前50W在A主机的数据库中,后50W在B主机的数据库中,表所在的数据库就称这张表的分片节点;一个主机中不可能只有一张表,会有许多的分片表放在该主机上,该主机就称为节点主机,即datanode=database@datahost

mycat原理的简单说明:

拦截--->分析--->转发--->结果处理--->返回给用户

mycat分析大致包括:分片分析,路由分析,读写分离分析,缓存分析等,在接下来的实验中会通过分析log来查看mycat如何工作。

需求说明

有一个库3张表

MySQL [mycat01]> show tables;+-------------------+| Tables in mycat01 |+-------------------+| t1                || t2                || t3                |+-------------------
  • 分库:

t1在mysql集群中
t2在percona集群中

  • 分表:

t3 id取模1024小于1024的在mysql集群中,大于1024则在percona集群中

  • 读写分离:

t1 writehost 为node115
stand by writehost 为node116
readhost 为node117
t2 writehost 为node126
readhost 为node123 node125

配置文件

#这里创建了两个mycat用户(注意:与后端mysql用户无关)root具有读写权限,user具有读权限[root@node119 ~]# vim /opt/mycat/conf/server.xml                123456                mycat01                                user                mycat01                true        

balance="0" 不开启读写分离,即所有读写操作都发送到writehost上

balance="1" 全部的readhost与stand by writehost都参与select语句的负载,也就是互为主从模式下

balance="2" 所有读写操作在readhost和writehost上随机分发

balance="3" 所有读请求都发送到与writehost对应的readhost上,减轻writehost压力

writeType="0" 所有的写操作发送到第一个writehost,当第一个writehots down后则切换到第二个,且不会回切

[root@node119 ~]# vim /opt/mycat/conf/schema.xml         #schema name就是映射出去的逻辑库名称,也就是访问mycat用户看到的名称                 #t1所在的分片节点为mysql,也就是说mycat只会从mysql集群中去找t1                
#通上
#mycat 会从两个分片节点去找t3 select user() select user()
[root@node119 ~]# vim /opt/mycat/conf/rule.xml                2                512
节点 主机 数据 数据库 分析 集群 所在 用户 也就是 配置 两个 名称 多个 就是 权限 概念 逻辑 实验 不同 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库中表与视图有什么区别 信威 软件开发 兄弟打印机可以连接数据库吗 最新网络安全知识宣传活动 海淀区网络营销软件开发供应 国开数据库应用技术综合应用题 网络安全本地区国产化工作 北京应用软件开发大概要多少钱 数据库属性建立表 自己在卧室搭建迷你服务器 40岁学软件开发有用吗 网络安全之网暴 微信数据库失败怎么回事 数据库软件是属于应用软件吗 锡山区计算机网络技术要多少钱 体育教师转行软件开发 网络安全审计设备图片 软件开发实习工资大连 如何清除一张表中的数据库 python怎么自带数据库 智能人脸软件开发聚顶科技解决好 国开数据库应用技术综合应用题 服务器虚拟化 多虚一 安软数据库包下载 海曙专业软件开发 邮政信息网络安全 fgo不同服务器 西安互联网公司宇世科技怎么样 和平精英主播服务器最低配置 计算机三级网络技术考编程吗
0