MyCAT 是一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代Mysql的加强版数据库 ? 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 ? 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server ? 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 ? 一个新颖的数据库中间件产品。
在这里,构造了两张表,熟悉Oracle的童鞋都知道,dept(部门表)和emp(员工表),其中dept中的deptno是emp表中dept_no的外键。 两表的建表语句如下: create table
MyCAT日志对于了解MyCAT的运行信息不可获取,譬如MyCAT是否采用读写分离,对于一个查询语句,MyCAT是怎样执行的,每个分片会分发到哪个节点上等等。默认是info级别,通过log4j.xml
MyCAT默认字符集是UTF8下面通过查看日志来验证不同的MySQL客户端字符集和服务器字符集对于MyCAT的影响。日志中与字符集有关的主要有三部分:1. 初始化MyCAT连接池2. 心跳检测3. 在
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国
在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式。 本地文件方式 原理:此方式MyCA
Dockerfile内容如下:FROM centosMAINTAINER Victor ivictor@foxmail.comWORKDIR /rootRUN rm -f /etc/yum.repos
借助MyCat来实现MySQL的分库分表落地,没有实现过的,或者没了解过的可以看看MyCat实现MySQL分库分表前言一、MyCat安装二、配置MyCat三、数据库信息准备前言在之前写过一篇关于mysql分库分表的文章,那篇文章只是给大家提供了一个思路,但是回复下面有很多说是细节问题没有提到。所以咔咔就在出了这篇文章。本文只是针对其中的一个细节而已,就是如何落地MySQL的分库分表,本文使用数据库中间件MyCat来实现。其中还有最多的回复是分库分表后的分页查询如何操作,这个问题也会在后文继续写.
1.开源数据库中间件-MyCat如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对
Mysql AB复制 ​ AB复制又称之为主从复制,用于实现数据同步,实现Mysql的AB复制时,数据库的版本尽量保持一致,如果不能保持一致,最起码从服务器的版本要高于主服务器,但是就无法实现双向复制
1. mycat的官网 http://www.mycat.org.cn/ 2. mycat书 http://www.mycat.org.cn/document/Mycat_V1.6.0.pdf 3. mycat主要功能 3.1 应用层可以象连接mysql一样的方式连接mycat 3.2 mycat实现分表分库,支持诸多sql和诸多nosql,并支持关系库和非关系库的关联查询。mysql,mongo
1. mycat的官网 http://www.mycat.org.cn/ 2. mycat书 http://www.mycat.org.cn/document/Mycat_V1.6.0.pdf 3. mycat主要功能 3.1 应用层可以象连接mysql一样的方式连接mycat 3.2 mycat实现分表分库,支持诸多sql和诸多nosql,并支持关系库和非关系库的关联查询。mysql,mongo
mycat监听两个端口,分别为8066和9066;mycat服务默认的数据端口是8066,而9066端口则是mycat管理端口,用于管理mycat的整个集群状态。监听的端口可以在server.xml配置文件中修改。 连接管理端口的方法和连接8066端口的方法基本一样。 [[email protected] conf]# mysql -uroot -P9066 -h127.0.0.1 -p1234
MyCat配置 1. server.xml配置 Server.xml保存了mycat需要的所有的系统配置信息,代码映射为SystemConfig类。 标签主要有三个: system,user,firewarll 1.1 user标签 1.1.1 property标签 <user name="test"> <!--用户名是test--> <property name="password">p
server.xml 几乎保存了所有 mycat 需要的系统配置信息。 1、system 标签:   该标签内嵌套的所有 property 标签都与系统配置有关。 charset 属性:   该属性用于字符集设置。 <system> <property name="charset">utf8</property> </system> defaultSqlParser 属性:   该属性
环境准备 JDK 下载 https://www.oracle.com/technetwork/java/javase/downloads/index.html 注:必须 JDK7 或更高版本(本次使用的是jdk-8u211-linux-x64.tar.gz)   注:如有任何不明白的地方,则下载  官方文档  即可   #本次测试使用3台机器   IP地址    主机名   192.168.1.2
1 mysql已经配置好了主从 2 linux 安装java环境 3 linux 安装mycat cd /usr/local # 下载mycat wget http://dl.mycat.io/1.6.6.1/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz # 解压 tar -zxvf Mycat-server-1.6.6.1-re
1.本文引用来自mycat官方文档,具体可以浏览mycat官网 2.linux系统下面的目录 MyCAT 有提供编译好的安装包,支持 windows、Linux、Mac、Solaris 等系统上安装与运行。 linux 下可以下载 Mycat-server-xxxxx.linux.tar.gz 解压在某个目录下,注意目录不能有空格,在 Linux(Unix)下,建议放在 usr/local/Myc
1、不支持native格式 2016-12-17 21:03:36,984 [WARN ][main] table conf : table [ TRAVELRECORD ] rule function [ murmur ] partition size : 2 < table datanode size : 3 , this cause some datanode to be redundant
永久链接: http://gaojingsong.iteye.com/blog/2345449 预览文章: Mycat链接SQLServer2005出现TDS 预登录响应不完整  解决方案如下:使用navcat连接SQLServer数据库,把SQLServer数据库当Mysql数据库处理即可,因为有了Mycat后端都是Mysql数据库了,对外屏蔽了数据库底层,你压根不知道后端使用的啥数据库    
1、下载系统安装包 选择相应的版本进行下载,地址:http://dl.mycat.io/ 。Mycat数据库分库分表中间件介绍 http://www.mycat.io/ 2、安装 安装mycat前需要保证系统已安装过jdk和mysql,将下载好的mycat安装包解压到某个目录下,然后进入mycat解压目录下的bin目录(打开cmd控制台确保是以管理员身份运行),执行安装命令: D:\develop
1、下载 从如下地址下载mycat的安装包: http://www.mycat.io/ eg:Mycat-server-1.6.6.1-release-20181031195535-win.tar.gz 2、解压 解压下载的安装包 3、安装 安装mycat前需要先安装jdk和mysql。mycat1.6版本建议使用的jdk是1.7以上版本,mysql建议使用5.6版本。 安装完jdk和mysql后
介绍《Java互联网架构-分布式架构Mycat的前世今生》开发教程,希望对您有用。
介绍《mycat结合MySQL双主实现读写分离》开发教程,希望对您有用。
介绍《Mysql必读mysql mycat 中间件安装与使用》开发教程,希望对您有用。
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/53385637 今天,给大家带来一篇数据库中间件——Mycat的文章,Schema.xml作为MyCat中重要的配置文件之一,管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource。弄懂这些配置,是正确使用MyCat的前提。这里就一层层对该文件进行解析。 <
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/53386338 server.xml几乎保存了所有mycat需要的系统配置信息。其在代码内直接的映射类为SystemConfig类。现在就对这个文件中的配置,一一介绍。 user标签 <user name="test"> <property name="password">test
转载请注明:http://blog.csdn.net/l1028386804/article/details/53402552 rule.xml里面就定义了我们对表进行拆分所涉及到的规则定义。我们可以灵活的对表使用不同的分片算法,或者对表使用相同的算法但具体的参数不同。这个文件里面主要有tableRule和function这两个标签。在具体使用过程中可以按照需求添加tableRule和functi
Mycat是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。 Mycat是一个开源的分布式数据库系统,用户可以将它看作是一个数据库代理,Mycat后端可以支持MYSQL、SQL SERVER、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种Nosql方式的存储,在最终用户看来,无论是那种存储方式,在Mycat...
系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。安装Mycat官网:http://www.mycat.io/可以了解下Mycat的背景和应用情况,这样使用起来比较有信心。Mycat下载地址:http://dl.mycat.io/官网有个文档,属于详细的介绍,初次入门,看起来比较花时间。下载:建议大家选择 1.6-RELEASE 版本,毕竟是比较稳定的版本。安装:根据不同的系统选择不同的版本。包括linux、windows、mac,作者考虑还是非常周全的,当然,也有源码版的。(ps:源码版的下载后,只要配置正确,就可以正常运行调试,这个赞一下。)Mycat的安装其实只要解压下载的目录就可以了,非常简单。安装完成后,目录如下:目录说明binmycat命令,启动、重启、停止等catletcatlet为Mycat的一个扩展功能confMycat 配置信息,重点关注libMycat引用的jar包,Mycat是java开发的logs日志文件,包括Mycat启动的日志和运行的日志。配置Mycat的配置文件都在conf目录里面,这里介绍几个常用的文件:文件说明server.xmlMycat的配置文件,设置账号、参数等schema.xmlMycat对应的物理数据库和数据库表的配置rule.xmlMycat分片(分库分表)规则Mycat的架构其实很好理解,Mycat是代理,Mycat后面就是物理数据库。和Web服务器的Nginx类似。对于使用者来说,访问的都是Mycat,不会接触到后端的数据库。我们现在做一个主从、读写分离,简单分表的示例。结构如下图:服务器IP说明Mycat192.168.0.2mycat服务器,连接数据库时,连接此服务器database1192.168.0.3物理数据库1,真正存储数据的数据库database2192.168.0.4物理数据库2,真正存储数据的数据库Mycat作为主数据库中间件,肯定是与代码弱关联的,所以代码是不用修改的,使用Mycat后,连接数据库是不变的,默认端口是8066。连接方式和普通数据库一样,如:jdbc:mysql://192.168.0.2:8066/server.xml示例<user name="test"><property name="password">test</property><property name="schemas">lunch</property><property name="readOnly">false</property><!-- 表级 DML 权限设置 --><!--<privileges check="false"><schema name="TESTDB" dml="0110" ><table name="tb01" dml="0000"></table><table name="tb02" dml="1111"></table></schema></privileges>--></user>  重点关注下面这段,其他默认即可。参数说明user用户配置节点--name登录的用户名,也就是连接Mycat的用户名--password登录的密码,也就是连接Mycat的密码--schemas数据库名,这里会和schema.xml中的配置关联,多个用逗号分开,例如需要这个用户需要管理两个数据库db1,db2,则配置db1,dbs--privileges配置用户针对表的增删改查的权限,具体见文档吧我这里配置了一个账号test 密码也是test,针对数据库lunch,读写权限都有,没有针对表做任何特殊的权限。schema.xmlschema.xml是最主要的配置项,首先看我的配置文件。<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><!-- 数据库配置,与server.xml中的数据库对应 --><schema name="lunch" checkSQLschema="false" sqlMaxLimit="100"><table name="lunchmenu" dataNode="dn1" /><table name="restaurant" dataNode="dn1" /><table name="userlunch" dataNode="dn1" /><table name="users" dataNode="dn1" /><table name="dictionary" primaryKey="id" autoIncrement="true" dataNode="dn1,dn2" rule="mod-long" /></schema><!-- 分片配置 --><dataNode name="dn1" dataHost="test1" database="lunch" /><dataNode name="dn2" dataHost="test2" database="lunch" /><!-- 物理数据库配置 --><dataHost name="test1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native"><heartbeat>select user();</heartbeat><writeHost host="hostM1" url="192.168.0.2:3306" user="root" password="123456"></writeHost></dataHost><dataHost name="test2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native"><heartbeat>select user();</heartbeat><writeHost host="hostS1" url="192.168.0.3:3306" user="root" password="123456"></writeHost></dataHost></mycat:schema>  参数说明schema数据库设置,此数据库为逻辑数据库,name与server.xml中schema对应dataNode分片信息,也就是分库相关配置dataHost物理数据库,真正存储数据的数据库每个节点的属性逐一说明:schema:属性说明name逻辑数据库名,与server.xml中的schema对应checkSQLschema数据库前缀相关设置,建议看文档,这里暂时设为folsesqlMaxLimitselect 时默认的limit,避免查询全表table:属性说明name表名,物理数据库中表名dataNode表存储到哪些节点,多个节点用逗号分隔。节点为下文dataNode设置的nameprimaryKey主键字段名,自动生成主键时需要设置autoIncrement是否自增rule分片规则名,具体规则下文rule详细介绍dataNode属性说明name节点名,与table中dataNode对应datahost物理数据库名,与datahost中name对应database物理数据库中数据库名dataHost属性说明name物理数据库名,与dataNode中dataHost对应balance均衡负载的方式writeType写入方式dbType数据库类型heartbeat心跳检测语句,注意语句结尾的分号要加。应用场景数据库分表分库配置如下:<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><!-- 数据库配置,与server.xml中的数据库对应 --><schema name="lunch" checkSQLschema="false" sqlMaxLimit="100"><table name="lunchmenu" dataNode="dn1" /><table name="restaurant" dataNode="dn1" /><table name="userlunch" dataNode="dn1" /><table name="users" dataNode="dn1" /><table name="dictionary" primaryKey="id" autoIncrement="true" dataNode="dn1,dn2" rule="mod-long" /></schema><!-- 分片配置 --><dataNode name="dn1" dataHost="test1" database="lunch" /><dataNode name="dn2" dataHost="test2" database="lunch" /><!-- 物理数据库配置 --><dataHost name="test1" maxCon="1000" minCon="10" balance=&
准备工作: 1、安装jdk1.7(因为MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用)点击下载jdk 也可以参考我之前的文章:     centos 安装jdk/tomcat 下载 tar.gz压缩包      解压到指定位置(你也可以解压到你喜欢的目录里):tar zxvf xxx.tar.gz  -C /usr/loca