Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Mycat【Mycat部署安装(核心配置及目录结构、安装以及管理命令详解)Mycat高级特性(读写分离概述、搭建读写分离、MySQL双主双从原理)】(三)-全面详解(学习总结---从入门到深化)

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 安全性

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
7天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
65 24
|
16天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
87 26
|
2天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
49 7
|
23天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
24天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
45 5
|
1月前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
184 0
|
3天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
12 3
|
3天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
16 3
|
3天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
21 2