MyCAT2(数据库中间件)
v1.14 官方版- 软件大小:1.98 MB
- 更新日期:2021-02-26 08:55
- 软件语言:简体中文
- 软件类别:数据库类
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
MyCAT2是一款数据库软件,可以通过这款软件帮助用户更好处理数据,如果你需要开发新的数据库软件就可以借助这款中间件配置数据库功能,让用户可以快速配置数据库数据传输方案,配置SQL查询方案,软件兼容MySQL通信协议,满足用户维护数据库需求,对于需要创建数据库管理软件的朋友很有帮助;MyCAT2功能丰富,可以在很多数据管理场景使用,新版修复SET
SQL_SELECT_LIMIT = DEFAULT,添加eq gt ge
LocalDateTime,新增两条jpa的更新的测试用例,初步解决Grafana模板拉取大量数据的问题,如果你需要这款软件就下载吧!
功能特色
分布式数据库中间件Mycat2
Mycat2是Mycat社区开发的一款分布式关系型数据库(中间件)。它支持分布式SQL查询,兼容MySQL通信协议,以Java生态支持多种后端数据库,通过数据分片提高数据查询处理能力。
1.代码开源
学习中间件技术,数据库技术,代码是必须有的。
2.兼容MySQL语法的分布式查询引擎
兼容MySQL语法。
兼容MySQL值类型。
使用基于规则优化与代价的优化器。
独立的物理执行引擎。
3.自定义功能算法开发
分片算法,序列号算法,负载均衡算法等都可自定义加载。
查询引擎可脱离网络框架运行。
4.自定义处理过程
自研DSL操纵物理查询计划。
支持SQL转发,缓存结果集。
面向DBA/运维的产品功能
1、实例操作
区分不可更新配置/可热更新配置
数据库/逻辑表动态创建,重建,删除语句来更改配置
支持文件配置,中间件管理配置
一定程度上兼容常见的建表,删除表的DDL语句,支持分片表建表语句
支持全局表,普通表,分片表,不支持ER表,把ER表配置成分片表即可,优化器会分析表之间的表关系.特别地,如果在单库分表情况下,需要使用全局表的join下推,还是需要把普通表配置成全局表的.
1.15开始支持MySQL XA事务,原理与PolarDB-X 云原生分布式数据库一致,事务日志表会在Mycat2启动时候在存储节点上建立mycat.xa_log表,它记录已经进入commit节点事务,在此表有记录的分布式事务都是要提交的,而不在此表的XA PREPARE阶段事务是要回滚的.
暂时没有数据迁移/扩容组件(待整合)
2、数据管理
配置上自定义规则允许任意分库,分表,分库分表
读写分离
3、监控管理
Grafana 监控模板以及监控端
面向开发的产品功能
1、分布式查询引擎
SQL参数化并支持简单的查询计划缓存
EXPLAIN输出查询计划
基于规则的优化下推逻辑算子
基于代价的优化选择物理算子
支持UDF并兼容多数MySQL中的SQL函数
兼容MySQL的类型转换系统
支持多语句
不支持不能消除关联的关联子查询
平台兼容性问题,如Java与C之间有难以工程兼顾的问题,比如少数MySQL函数不支持
不支持CEP
自动加载MySQL系统表免配置
支持自定义数据操作的自定义表
2、简单SQL引擎(用于insert,delete,update)
支持参数化的批量插入
支持全局序列号
3、计算执行引擎
基于代码生成执行的表达式运行时
基于解释器模型的表达式运行时(待开发)
实现对应查询引擎的MySQL中的SQL函数
并行拉取数据源
纯JDBC模式完整支持多语句,Proxy能自动检测多语句冲突报错
4、MySQL协议网络层
仅支持mysql_native_password 原生网络协议
后端支持jdbc或者mysql_native_password 原生网络协议
Proxy模式可任意透传响应文本结果集并响应多语句
不支持加密协议
不支持压缩协议
不支持透传预处理语句(涉及预处理句柄管理待完善或者说意义不大)
5、事务框架
支持单个本地事务和多个本地事务
支持基于Proxy的事务
理论上基于JDBC的事务框架的多线程事务框架容易支持
JTA方案的分布式事务方案由于性能太差被移除
没有准备支持分布式事务,请通过架构层面解决这个问题
Mycat2走上了自研事务框架的道路
6、高可用与集群
基于轮训心跳的集群管理
集群管理可被禁用
策略模式的心跳类
产品架构
一般来说,Mycat2使用数据库(接收sql的服务器)作为存储节点进行读写,当然未来也支持直接以自定义接口读写数据。特别地,暂时Mycat2没有实现系统表,所以查询系统表的sql需要转发到特殊的节点处理后返回到客户端。
多实例Mycat架构
官方教程
[客户端]连接测试
Mycat连接测试
客户端连接mycat
测试mycat与测试mysql完全一致,mysql怎么连接,mycat就怎么连接。
在mysqld下面设置
default_authentication_plugin = mysql_native_password
客户端登录参数
--default-auth-password=mysql_native_password
--default-auth=mysql_native_password
或者建立专用账户
推荐先采用命令行测试:
mysql8客户端要加上-A参数禁用预读功能
客户端登录记录
LINUX平台客户端
WINDOWS平台客户端
支持select current_user()
客户端要求
关闭SSL
启用客户端预处理,关闭服务器预处理
mysql_native_password授权
开启自动重连
开启闲置连接检查,心跳
关闭允许多语句
jdbc客户端设置useLocalSessionState解决
Mycat连接MySql
Mycat连接不上Mysql的问题
ip配置错误,无法连通,例如本地ip
0.0.0.0
localhost
127.0.0.1
没有权限可能出现连接不上的现象
连接状态问题
数据源的initSqls属性可以设置连接初始化的变量
如果mysql的编码是utf8mb4,那么请写上
set names utf8mb4;
如果要初始化默认库,请写上
use db1;
jdbc的连接属性建议使用连接字符串设置
如果使用图形化客户端出现no database selected 等提示,请在JDBC连接字符串上写上默认库
mysql服务器设置参考
MariaDB 10.3
Mysql-8.0.19
注解
注解使用SQL注释方式表达,可以用于动态更新Mycat配置并且把配置持久化,它的设计目标是为了动态的更新mycat的配置.但是由于配置的属性复杂,它不会自动的更改真实数据库的schema.
通过注解配置不会自动创建物理库物理表(与直接使用自动化建表语句不同,它会自动建物理库物理表),所以要保证物理库物理表的在真实数据库上是与配置对应的.一般来说,原型库(prototype)上必须存在与逻辑库逻辑表完全一致得物理库物理表,以便mycat读取表和字段信息.
如果搞不懂配置,可以尝试使用自动化建表语句创建测试的物理库物理表,它会自动生成配置文件,然后通过查看本地的配置文件,观察它的属性,就可以知道什么回事.因为自动化建表语句过于简单,可能不适合公司的业务,此时需要更改配置文件的属性来调整.这种自己更改调整的属性值不属于mycat的开发测试范畴之内,也不能受mycat为自动化建表的测试保证.
重置配置
创建用户
删除用户
显示用户
修改表序列号为雪花算法
创建数据源
删除数据源
显示数据源
创建集群
删除集群
显示集群
创建Schema
确保原型库上,存在test_add_Schema物理库,以下注解才能正常运行.
创建单表(用于读写分离,映射物理表)
当目标是集群的时候,自动进行读写分离,根据集群配置把查询sql根据事务状态发送到从或主数据源,如果目标是数据源,就直接发送sql到这个数据源.在Mycat2中,是否使用Mycat的集群配置应该是整体的架构选项,只能选其一.当全体目标都是数据源,要么全体目标都是集群.前者一般在数据库集群前再部署一个SLB服务,Mycat访问这个SLB服务,这个SLB服务实现读写分离和高可用.后者则是Mycat直接访问数据库,Mycat负责读写分离和集群高可用.当配置中出现集群和数据源的情况,尽量配置成他们的表的存储节点在一个物理库的实例中没有交集,这样可以避免因为多使用连接导致事务一致性和隔离级别破坏产生的问题.
创建全局表
创建范围分表
显示session引用的IO缓冲块计数
/*+ mycat:showBufferUsage{}*/
显示用户
/*+ mycat:showUsers{}*/
显示schema
/*+ mycat:showSchemas{}*/
显示调度器
/*+ mycat:showSchedules{}*/
显示心跳配置
/*+ mycat:showHeartbeats{}*/
显示心跳状态
/*+ mycat:showHeartbeatStatus{}*/
显示实例状态
/*+ mycat:showInstances{}*/
显示Reactor状态
/*+ mycat:showReactors{}*/
显示线程池状态
/*+ mycat:showThreadPools{}*/
显示表
/*+ mycat:showTables{"schemaName":"mysql"}*/
显示mycat连接
/*+ mycat:showConnections{}*/
显示存储节点
应用场景
理论上Mycat2与单机数据库差别不大,但是由于其涉及多个存储节点以及定位是事务型数据库,并不是所有应用场景都会特显优势,以下是常见的用法。
目标场景
1、管理多数据库实例
比如管理全国城市数据库
2、点查/范围查询分片数据
业务访问呈现点查/范围规律而且可以根据分片键分散访问压力
3、二阶段聚合汇总
比如统计求和,MySQL计算一部分和值,Mycat再对结果汇总
4、二阶段数据源汇总
比如利用子查询查询物理库数据,而Mycat再对结果汇总
单表访问读写分离
5、多租户场景
非目标场景(兼容)
只用于使用读写场景(支持,但是不推荐,纯粹读写分离使用客户端分离更好)
人气软件
-
PL/SQL Developer(PL/SQL数据库管理软件) 130.1 MB
/简体中文 -
Oracle SQL Developer(oracle数据库开发工具) 382 MB
/简体中文 -
PowerDesigner16.6 32/64位 2939 MB
/简体中文 -
Navicat for MySQL 15中文 72.1 MB
/简体中文 -
Navicat Data Modeler 3中文 101 MB
/简体中文 -
SPSS 22.0中文 774 MB
/多国语言 -
db文件查看器(SQLiteSpy) 1.67 MB
/英文 -
Navicat Premium V9.0.10 简体中文绿色版 13.00 MB
/简体中文 -
Navicat 15 for MongoDB中文 78.1 MB
/简体中文 -
sql prompt 9 12.67 MB
/简体中文