Mycat部署安装_核心配置文件及目录结构
目录结构
说明:
bin:可执行命令
conf:配置文件
lib:存放jar包
logs:日志信息
tmlogs:临时日志
version.txt:版本信息
三个配置文件
schema.xml:定义逻辑库,表、分片节点等内容
rule.xml:定义分片规则
server.xml:定义用户以及系统相关变量,如端口等
实时学习反馈
1.Mycat目录用户名密码在______配置文件中修改。
A rule.xml
B server.xml
C schema.xml
D wrapper.conf
2.Mycat目录中读写分离分库分表技术在_______文件中进行配置。
A rule.xml
B server.xml
C schema.xml
D partition-hash-int.conf
Mycat部署安装_Mycat安装以及管理命令详解
下载解压Mycat安装包
MyCAT 有提供编译好的安装包,支持 windows、Linux、Mac、 Solaris 等系统上安装与运行。
tar -zxvf Mycat-server-1.6.7.1-release-20190627191042-linux.tar -C /usr/loc
将MyCat配置到环境变量中
vim /etc/profile #增加如下配置 export MYCAT_HOME=/usr/local/mycat export PATH=$PATH:$MYCAT_HOME/bin
MyCat常用操作命令
mycat start #启动MyCat mycat stop #停止MyCat mycat console #前台运行MyCat带控制台输出 mycat restart #重启MyCat mycat pause #暂停MyCat mycat status #查看启动状态
使用MySQL命令进行MyCat的连接
Mycat 提供类似数据库的管理监控方式,可以通过MySQL命令行登录管理端口(9066)执行相应的SQL语句进行管理,也可以通过 JDBC方式进行远程连接管理。
管理端口
9066用于查看MyCat的运行状态
mysql -uroot -p123456 -h 192.168.1.125 -P9066 -DTESTDB
参数:
-h:后面是主机。 即当前Mycat安装的主机IP地址。
-u:Mycat server.xml中配置逻辑库的用户。
-p:Mycat server.xml中配置逻辑库的密码。
-P:后面是管理端口号。注意P是大写。
-d:Mycat server.xml中配置逻辑库。
数据端口
8066用于进行数据的CRUD操作
mysql -uroot -p123456 -h 192.168.1.125 -P8066 -DTESTDB
MyCat的连接用户名相关信息在配置文件 /usr/local/mycat/conf/server.xml 中查看编辑
<user name="root"> <property name="password">123456</property> <property name="schemas">TESTDB</property> </user>
Show命令
-- 查看所有的可用命令
show @@help;
-- 查看所有的逻辑数据库
show @@database;
-- 查看所有的数据节点
show @@datanode;
-- 查看所有的数据源
show @@datasource;
实时学习反馈
1.Mycat技术中使用___命令重启服务。
A start
B stop
C restart
D console
2. Mycat技术中如何查看所有的逻辑数据库____。
A show @@help
B show @@database
C show @@datanode
D show @@datasource
Mycat高级特性_读写分离概述
什么是读写分离
读写分离,基本的原理是让主数据库处理事务性增、改、删操作, 而从数据库处理查询操作。
为什么使用读写分离
从集中到分布,最基本的一个需求不是数据存储的瓶颈,而是在于计算的瓶颈,即 SQL 查询的瓶颈,我们知道,正常情况下,Insert SQL 就是几十个毫秒的时间内写入完成,而系 统中的大多数 Select SQL 则要几秒到几分钟才能有结果,很多复杂的 SQL,其消耗服器 CPU 的能力超强,不亚于死循环的威力。
读写分离方案
MyCat的读写分离是建立在MySQL主从复制基础之上实现的,所以必须先搭建MySQL的主从复制。数据库读写分离对于⼤型系统或者 访问量很⾼的互联网应用来说,是必不可少的⼀个重要功能。
注意: Mycat实现的读写分离和自动切换机制,需要MySQL的主从复制机制配合。
Mysql 主从复制的常用拓扑结构
一主一从
注意: 最基础的复制结构,用来分担之前单台数据库服务器的压力, 可以进行读写分离。
一主多从
注意: 一台 Slave 承受不住读请求压力时,可以添加多台,进行负载均衡,分散读压力。
双主复制
注意: 双主结构就是用来解决这个问题的,互相将对方作为自己的 Master,自己作为对方的 Slave 来进行复制,但对外来讲,还是一个主和一个从。
级联复制
注意: 级联结构就是通过减少直接从属于 Master 的 Slave 数量,减轻 Master 的压力,分散复制请求,从而提高整体的复制效率。
双主级联
注意: Mysql 的复制结构有很多种方式,复制的最大问题是数据延时,选择复制结构时需要根据自己的具体情况,并评估好目标结构的延时对系统的影响。
实时学习反馈
1.Mycat读写分离主要解决_____问题。
A 兼容性
B 安全性
C 高性能
D 高可用
2. Mycat读写分离技术基于____技术实现。
A MySQL分库分表
B MySQL高可用
C MySQL主从复制
D MySQL高性能
Mycat高级特性_搭建读写分离
修改配置文件schema.xml
<schema name="TESTDB" checkSQLschema="false" dataNode="db_node" sqlMaxLimit="100"> </schema>
参数:
schema:逻辑库 name :逻辑库名称
sqlMaxLimit:一次取多少条数据
table:逻辑表
dataNode:数据节点 对应 datanode标签
rule:分片规则 对应 rule.xml
primaryKey: 分片主键 可缓存
分片配置
<dataNode name="db_node" dataHost="db_host" database="db_test" />
参数:
name:分片名字
dataHost:分片主机
database:分片数据库
配置读写分离
<dataHost name="host1" maxCon="1000" minCon="10" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <writeHost host="" url="" user="" password=""></writeHost> </dataHost>
参数:
dataHost:数据主机(节点主机)
dbType:数据库驱动native:MySQL JDBC: oracle SQLServer
switchType: 是否主动读 1
Balance参数设置:
1、 balance=“0”, 所有读操作都发送到当前可⽤的writeHost上。
2、 balance=“1”,所有读操作都随机的发送到readHost。
3、 balance=“2”,所有读操作都随机的在writeHost、readhost上分发
WriteType参数设置:
1、 writeType=“0”, 所有写操作都发送到可⽤的writeHost上。
2、 writeType=“1”,所有写操作都随机的发送到readHost。
3、 writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。
witchType参数设置:
1、 switchType="1", 主从自动切换
2、 switchType="2",从机延时超过slaveThreshold值时切换为主读
启动Mycat
mycat restart
配置文件
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <!-- 数据库配置 与server.xml 中的数据库对应 --> <schema name="db_test" checkSQLschema="false" dataNode="db_node" sqlMaxLimit="100" </schema> <!-- 分片配置 --> <dataNode name="db_node" dataHost="db_host" database="db_test" /> <!-- 物理数据库配置 --> <dataHost name="db_host" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="192.168.66.101:3339" user="root" password="123456"> <readHost host="hostS2" url="192.168.66.101:3340" user="root" password="123456" /> </writeHost> </dataHost> </mycat:schema>
验证读写分离
在写主机插入
insert into dog values(1,@@hostname);
注意: @@代表系统变量。
在mycat查询
select * from dog;
Mycat高级特性_MySQL双主双从原理
一主一从
注意: 是最基础的复制结构,用来分担之前单台数据库服务器的压力,可以进行读写分离。
一主多从
问题: 一台 Slave 承受不住读请求压力时,可以添加多台,进行负载均衡,分散读压力。
如何解决
介绍: 互相将对方作为自己的 Master,自己作为对方的 Slave 来进行复制,但对外来讲,还是一个主和一个从。
实时学习反馈
1.MySQL一主一从架构会出现___问题。
A 性能性
B 超时性
C 兼容性
D 安全性
2.MySQL双主双从架构解决___问题。
A 服务性能
B 单点故障问题
C 兼容性
D 安全性