mycat

Mycat系列教程-配置文件(一)、schema.xml之dataNode 标签(04)

江枫思渺然 提交于 2019-12-11 07:48:59
Schema.xml 作为 MyCat 中重要的配置文件之一,管理着 MyCat 的逻辑库、表、分片规则、DataNode 以 及 DataSource。弄懂这些配置,是正确使用 MyCat 的前提。这里就一层层对该文件进行解析。 dataNode 标签 <dataNode name="dn1" dataHost="lch3307" database="db1" ></dataNode> dataNode 标签定义了 MyCat 中的数据节点,也就是我们通常说所的数据分片。一个 dataNode 标签就是 一个独立的数据分片。 例子中所表述的意思为:使用名字为 lch3307 数据库实例上的 db1 物理数据库,这就组成一个数据分片,最 后,我们使用名字 dn1 标识这个分片。 dataNode 标签的相关属性: 属性名 值 数量限制 name String (1) dataHost String (1) database String (1) 1、name 属性 定义数据节点的名字,这个名字需要是唯一的,我们需要在 table 标签上应用这个名字,来建立表与分片对应的关系。 2、dataHost 属性 该属性用于定义该分片属于哪个数据库实例的,属性值是引用 dataHost 标签上定义的 name 属性。 3、database 属性

MyCat_sql的支持举例

一曲冷凌霜 提交于 2019-12-10 18:03:38
MyCat对sql的支持举例 异常的用法 SELECT distinct s.* FROM cust_info s 分片表:select id form table1 order by name,所有order 的字段必须都在select字段中 全局表多线程并发更新一条记录时死锁 ER分片表:分片表的parentId不是父表的分片规则字段时,无法再同一个事务中提交父表和字表 分片表:update语句中不允许更新分片字段 结果异常的用法 SELECT * FROM cust_info : 不加order by时不同查询次数返回结果数据不同(即没有order by时分页会出问题),order by中必须有不重复的字段 SELECT * FROM cust_info order by cust_typ : cust_typ重复查询结果会出问题 select tt.* from ( SELECT * FROM cust_info limit 0,2) tt : 查询出所有数据不只2条,如果数据足够会返回6条(每个库中两条) select tt.* from ( SELECT * FROM cust_info) tt limit 0,5 :查询出5条但每次查询结果不一样 SELECT distinct * FROM cust_info order by cust_id : 只能查询到一条数据

MyCat:取代Cobar数据库中间件

£可爱£侵袭症+ 提交于 2019-12-10 15:46:40
Cobar 是阿里巴巴开源的一个数据库中间件,为了解决类似proxy这类的问题。目前同类型的有奇虎360开源的Atlas。类似的有基本在线上用起来很不爽,问题多多的比如MySQL Proxy和SQL Relay,基本可以忽略。 Cobar 下载: https://github.com/alibaba/cobar Atlas 下载: https://github.com/Qihoo360/Atlas =============================================================== MyCat:取代Cobar数据库中间件 什么是MyCAT?简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代Mysql的加强版数据库 ? 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 ? 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server ? 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 ? 一个新颖的数据库中间件产品。 目标 低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。 关键特性 支持 SQL 92标准 支持Mysql集群,可以作为Proxy使用

通过Mycat实现数据库分库分表

ぃ、小莉子 提交于 2019-12-10 02:21:48
Mycat数据库中间件的安装与配置 通过Mycat实现数据库读写分离 分库 分库: 将不同的数据库放到不同的服务器上面 如何分库 分库不能随意分,首先我们要知道 不同服务器上的数据库时没办法实现多表联合查询 的,但多表联合查询又是数据库中经常要用到的操作 将不会涉及到联合查询,或者一些特殊类型的表分开 特殊类型:例如当用户登录后我们通常将登录信息存放到redis中,如果需要用登录信息去查其他表我们可以先从redis中将数据查出来,在利用该数据去和其他表联合查询 实例: #客户表 rows:20万 CREATE TABLE customer( id INT AUTO_INCREMENT, NAME VARCHAR(200), PRIMARY KEY(id) ); #订单表 rows:600万 CREATE TABLE orders( id INT AUTO_INCREMENT, order_type INT, customer_id INT, amount DECIMAL(10,2), PRIMARY KEY(id) ); 我们将客户表和订单表分开存储,分别放到Windows和linux下 配置mycat 修改schema.xml < mycat: schema xmlns: mycat = " http://io.mycat/ " > <!--逻辑库 name名称,

MySQL数据库搭建--(三)MYCAT安装及配置

谁说胖子不能爱 提交于 2019-12-09 19:09:10
1.下载 2.解压 tar -xvf Mycat-server-1.6.7.1-release-20190213150257-linux.tar.gz 3.修改配置文件 4.mycat插入表的sql语句 /*!mycat: sql=select 1 from runoob_tbl */create table ttt(id int); 5.查询sql语句 /*!mycat: sql=select 1 from runoob_tbl */SELECT * from ttt; 来源: CSDN 作者: 凯歌6 链接: https://blog.csdn.net/weixin_38763887/article/details/103330020

数据库中间件01-认识mycat

大憨熊 提交于 2019-12-07 08:35:51
简述 Mycat是国产的一套免费开源的分布式数据库中间件。想必做开发或者运维的朋友对中间件这个词应该是比较熟悉了,我们见到过java中间件,消息中间件等等,这里又来了一个数据库中间件。那么什么是中间件呢,很容易理解,就是处在中间的物件。处在谁中间呢,一定是处在客户端和服务端中间。那么数据库中间件就是处在数据库的客户端和数据库服务端中间的那个东西。 原来我们在连接数据库的时候,我们通过客户端直接来连接我们的服务端。那么现在为什么要通过一个中间件呢,这不是多此一举吗?对于我们简单的数据库结构来讲,这确实是多此一举,但是对于庞大的数据库集群来讲,中间件的作用可就大了。 我们知道为了提高数据库的吞吐量,可以对数据库进行切分,可以采用读写分离。 为了提高数据库的可用性,可以对数据库进行高可用集群。 现在我们的客户端面临的不再是单台数据库节点,而是多台节点所组成的庞大的数据库集群。以读写分离为例,可能有一个主节点,多个从节点,主节点负责数据的写操作,从节点负责数据的读操作,从节点做了负载均衡。那么这个时候其实客户端面临就是两台机器,在客户端中就要配置两个数据源,在进行数据库操作的时候就需要我们的客户端来进行判断,到底是选择哪一台机器来进行操作。两个节点还比较好选择,如果机器多的话,比如数据库节点有5万台,那么这个时候你还能再让客户端来进行选择吗?这个时候数据库中间件就派上用场了

Mycat多租户/分布数据库/集群数据库以及SAAS研究进度报告

时间秒杀一切 提交于 2019-12-06 21:53:08
1、mycat操作 (1)垂直切分配置 (2)水平切分配置 (3)mycat修改schema.xml之后热重启 (4)mycat注解的实现 (5)mycat高可用(搭配HAproxy等一起做集群,多个mycat节点) 2、mycat可以配置多schema、多用户、多数据库节点进行数据水平、垂直切分 (1)java的程序demo测试通过,并可以用jdbc或jpa来进行数据操作,但是demo只针对一个schema、一个用户进行连接,跟以前一个库的情况差不多 (2)多数据库用mycat进行切分的话,join表的情况只支持子父两级表的join,多于两个表的关联有难度,建议用程序解决,届时开发要注意 3、mycat热启动 用mysql连接的mycat终端,进行reload configuration可以做到在运行中的mycat热重启,重新加载修改过配置文件的配置 4、mycat注解注入schema来进行分数据库执行语句 这是多租户(一个租户一个数据库)的关键,但是试了好多次不行,也找不到对应的解决的帖子,因为各个帖子都是抄攻略的,偏偏攻略一句带过。。。 5、mycat-eye:可以对mycat的情况进行监控,配置mycat节点、物理数据库节点可以进行监测,还能有统计信息,数据库优化的一些统计。是一个web程序 SAAS的数据库部署方案 mycat连接多个数据库,一个租户一个数据库

SQL中间件MYCAT 安装->配置

柔情痞子 提交于 2019-12-06 16:07:42
Mycat安装与使用 以下安装信息来自官网 http://www.mycat.org.cn/ 安装JDK yum -y install java-1.8* 下载: https://github.com/MyCATApache/Mycat-download 具体下载哪个版本以发布为准,我的是1.4. 安装: 下载的文件直接解压即可。 运行: linux: 我的服务器是 rehat 6.5 //解压 tar -xvf Mycat-server-1.4-release-20151019230038-linux.tar.gz cd /usr/mycat/bin ./mycat start 启动 ./mycat stop 停止 ./mycat console 前台运行 ./mycat install 添加到系统自动启动(暂未实现) ./mycat remove 取消随系统自动启动(暂未实现) ./mycat restart 重启服务 ./mycat pause 暂停 ./mycat status 查看启动状态 win: 直接运行startup_nowrap.bat,如果出现闪退,在cmd 命令行运行,查看出错原因。 内存配置: 配置文件,修改前先备份 配置文件,修改前先备份 配置文件,修改前先备份 启动前,一般需要修改JVM配置参数,打开conf/wrapper.conf文件

存储-海量数据-(mycat核心概念以及进阶)

青春壹個敷衍的年華 提交于 2019-12-06 12:58:05
目标 Ø 掌握数据库的大数据处理方案和HA Ø 掌握为什么需要数据库中间件,何为数据库中间件 Ø 掌握不同场景所需的数据库中间件特性 Ø 掌握数据库中间件设计要点 核心概念理解和工作原理 回顾 应对大数据和高并发的处理,在分库分表之后,如何解决对DAO层数据访问的影响 对数据库中间件的能力要求很高 Ø 1 要能解析SQL Ø 2 能支持读写分离 Ø 3 能支持从库读的负载均衡 Ø 4 支持分库操作 Ø 5 支持分表操作 Ø 6 支持跨库关联查询 Ø 7 对事务处理的支持 Ø 8 主键ID生成 Ø 9 数据源管理 Mycat版本说明 Ø Mycat-mini-monitor项目开源了,又一款Mycat监控! Ø Mycat-mini-monitor-1.0.0 版本发布 Ø Mycat-server-1.6.6-release 版本发布 Ø Mycat-server-1.6.6-test 版本发布 Ø Mycat-server-1.6-release 版本发布 Ø Mycat-server-1.5-release 版本发布 Ø Mycat-server-1.4-release 版本发布 Ø Mycat-server-1.3-release 版本发布 Ø Mycat-web(eye) 版本发布 Mycat工作原理 Mycat 的原理: ‚拦截‛,它拦截了用户发送过来的SQL 语句