配置:

--bin 启动目录

--conf 配置文件存放配置文件:

--server.xml:是Mycat服务器参数调整和用户授权的配置文件。

--schema.xml:是逻辑库定义和表以及分片定义的配置文件。

--rule.xml: 是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改需要重启MyCAT。

--log4j.xml: 日志存放在logs/log中,每天一个文件,日志的配置是在conf/log4j.xml中,根据自己的需要可以调整输出级别为debug debug级别下,会输出更多的信息,方便排查问题。

--autopartition-long.txt,partition-hash-int.txt,sequence_conf.properties, sequence_db_conf.properties 分片相关的id分片规则配置文件

--lib MyCAT自身的jar包或依赖的jar包的存放目录。

--logs MyCAT日志的存放目录。日志存放在logs/log中,每天一个文件
下面图片描述了Mycat最重要的3大配置文件:

逻辑库配置:

配置server.xml

添加两个mycat逻辑库:user,pay: system 参数是所有的mycat参数配置,比如添加解析器:defaultSqlParser,其他类推 user 是用户参数。

<system>

<property name="defaultSqlParser">druidparser</property>

</system>

<user name="mycat">

<property name="password">mycat</property>

<property name="schemas">user,pay</property>

</user>

编辑schema.xml

修改dataHost和schema对应的连接信息,user,pay 垂直切分后的配置如下所示:

schema 是实际逻辑库的配置,user,pay分别对应两个逻辑库,多个schema代表多个逻辑库。

dataNode是逻辑库对应的分片,如果配置多个分片只需要多个dataNode即可。

dataHost是实际的物理库配置地址,可以配置多主主从等其他配置,多个dataHost代表分片对应的物理库地址,下面的writeHost、readHost代表该分片是否配置多写,主从,读写分离等高级特性。

以下例子配置了两个writeHost为主从。

<schema name="user" checkSQLschema="false" sqlMaxLimit="100" dataNode="user" />
<schema name="pay" checkSQLschema="false" sqlMaxLimit="100" dataNode="pay" >
<table name="order" dataNode="pay1,pay2" rule="rule1"/>
</schema>

<dataNode name="user" dataHost="host" database="user" />
<dataNode name="pay1" dataHost="host" database="pay1" />
<dataNode name="pay2" dataHost="host" database="pay2" />

<dataHost name="host" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select 1</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.0.2:3306" user="root" password="root" />
<writeHost host="hostM2" url="192.168.0.3:3306" user="root" password="root" />
</dataHost>

编辑MYCAT_HOME/conf/schema.xml文件,增加对物理数据表映射信息:

一、schema节点中各属性说明:
name:制定逻辑库名称;
checkSQLschema:如果为true,执行select * from TESTDB.travelrecord,则会修改为select * from travelrecord;即把表示schema的字段去掉;
sqlMaxLimit:当设置该值时,每条查询SQL语句,如果没有加上limit语句,MyCat也会自动的加上。例如值为100,则加上limit 100;

二、table节点中各属性说明:
name:指定物理表名称;
primaryKey:指定物理表主键名称;例如:分片的规则是使用非主键进行分片的,那么在使用主键查询的时候,就会发送查询语句到所有的配置的DN上,如果使用该属性配置真实表的主键。那么MyCat会缓存主键与具体DN的信息,那么再次使用非主键进行查询的时候就不会进行广播式查询,就会直接发送语句给具体的DN,但是尽管配置该属性,如果缓存并没有命中的话,还是会发送语句给具体的DN,来获取数据。
autoIncrement:指定主键是否采用自增长策略,如果不需要自增长可不用配置;
dataNode:指定表所在的逻辑数据节点,如果有多个节点可使用逗号分隔,也可使用表 达式dn$0-99 指定在0-99这100个节点上都使用(如果是一个节点上有多个库可使用db1$0-99);
rule:指定路由规则;
ruleRequired:该属性用于指定表是否绑定分片规则,如果为true,但是没有配置rule的话,程序会报错
type:定义逻辑表的类型,目前只有“全局表”和“普通表”两种类型。
全剧表:global/普通表:不指定该值
needAddLimit:指定表是否需要自动的在每条语句加上limit 100限制,如果语句中有limit则不会在次添加,默认true

三、childTable节点中各属性说明:
name:定义子表的表名
joinKey:插入子表的时候会使用这个列的值查找父表存储的数据节点
parentKey:属性指定的值一般为与父亲建立关系的列名。程序首先会获取joinKey的值,再通过parentKey属性指定的列名产生查询语句,通过执行该语句得到父表存储在哪个分片上,从而确定子表存储的位置。
primaryKey:同table标签一样
needAddLimit:同table标签一样

逻辑数据节点与物理主机配置:

四、dataNode节点中各属性说明:
name:指定逻辑数据节点名称;
dataHost:指定逻辑数据节点物理主机节点名称;
database:指定物理主机数据库。如果一个节点上有多个库,可使用表达式db$0-99,表示指定0-99这100个数据库;

五、dataHost 节点中各属性说明:
定义了具体的数据库实例额、读写分离配置和心跳语句。

name:物理主机节点名称;
maxCon:指定物理主机服务最大支持1000个连接;指定每个读写实例都会使用这个属性来实例化出连接池的最大连接。
minCon:指定物理主机服务最小保持10个连接;指定每个读写实例连接池的最小连接,初始化连接池的大小
writeType:指定写入类型;
l 0,所有写操作发送到配置的第一个writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties
l 1,所有写操作都随机的发送到配置的writeHost,1.5后废除不推荐
dbType:指定数据库类型;
dbDriver:指定数据库驱动;目前可选的值有native和JDBC。
balance:指定物理主机服务的负载模式。负载均衡类型,目前取值有3种:
l 0,不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。
l 1,全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡;
l 2,所有的readHost与writeHost都参与select语句的负载均衡,也就是说,当系统的写操作压力不大的情况下,所有主机都可以承担负载均衡;
l 3,所有读请求随机的分发到writeHost对应的readhost执行,writerHost不负担读压力,注意balance=3只在1.4及其以后版本有,1.3没有。
switchType:
-1 表示不自动切换
1 默认值,自动切换
2 基于MySQL主从同步的状态决定是否切换
心跳语句为 show slave status
3 基于MySQL galary cluster的切换机制(适合集群)(1.4.1)
心跳语句为show status like ‘sweep%'
tempReadHostAvailable:
如果配置了这个属性 writeHost下面的readHost仍旧可用,默认0,可配置(0、1)

一个dataHost元素,表明进行了数据同步的一组数据库,DBA需要保证这一组数据库服务器是进行了数据同步复制的。writeHost相当于Master DB Server,而其下的readHost则是与从数据库同步的Slave DB Server。当dataHost配置了多个writeHost的时候,任何一个writeHost宕机,Mycat 都会自动检测出来,并尝试切换到下一个可用的writeHost;

MyCAT支持高可用性的企业级特性,根据您的应用特性,可以配置如下几种策略:
l 后端数据库配置为一主多从,并开启读写分离机制;
l 后端数据库配置为双主双从(多从),并开启读写分离机制;
l 后端数据库配置为多主多从,并开启读写分离机制;
后面两种配置,具有更高的系统可用性,当其中一个写节点(主节点)失败后,Mycat会侦测出来(心跳机制)并自动切换到下一个写节点,MyCAT在任何时候,只会往一个写节点写数据;

下面是典型的双主双从的Mysql集群配置:

六、heartbeat标签
这个标签指明用于和后端数据库进行心跳检查的语句。
Mysql可以使用 select user()
Oracle select 1 from dual
主从切换必须是:show slave status

七、writeHost标签、readHost标签
如何writeHost指定的后端数据库宕机,那么该下面的所有readHost都不可用。

host:标识不同的实例。一般writeHost用*M1,readjust用*S1
url:实例连接地址
user :用户名
password:密码
weight:权重配置在readhost中作为读节点的权重(1.4以后)
usingDecrypt:是否对密码加密默认0 否,开启 1

Mycat配置入门的更多相关文章

  1. MyCat 入门:漫谈 MyCat 配置系统

    文章首发于[博客园-陈树义],点击跳转到原文<MyCat 入门:漫谈 MyCat 配置系统> 上篇文章<MyCat 启蒙:分布式系统的数据库架构演变>中,我们通过一个项目从零到 ...

  2. MyCAT简单入门配置

    MyCAT简单入门配置 安装jdk 建议1.7以上 安装mysql 安装MyCAT Mycat 源码:https://github.com/MyCATApache/Mycat-Server Mycat ...

  3. MyCAT简易入门

    MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之.于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显.这篇文章主要是MyCAT的入门部署. ...

  4. MyCAT简易入门 (Linux)

    MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之.于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显.这篇文章主要是MyCAT的入门部署. ...

  5. Mycat快速入门

    1.Mycat介绍 Mycat 是一个开源的分布式数据库系统,是一个实现了 MySQL 协议的的Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客户端工具和命令行访问,而其后端可以 ...

  6. nginx配置入门

    谢谢作者的分享精神,原文地址:http://www.nginx.cn/591.html nginx配置入门 之前的nginx配置是对nginx配置文件的具体含义进行讲解,不过对于nginx的新手可能一 ...

  7. echart图表控件配置入门(二)常用图表数据动态绑定

    上一节 <echart图表控件配置入门(一)>介绍了echarts图表控件的入门配置,使开发人员可以快速搭建出一个静态的图表.但是在实际开发过程这还是不够的,不可能所有的图表控件都是静态数 ...

  8. echart图表控件配置入门(一)

    现在主流的web图表控件主要有hightchart.fusionchart.echart: echart作为百度前端部门近期推出的一个基于html5的免费图表控件,以其丰富图表类型和良好的兼容性速度得 ...

  9. spring的Java配置入门(Spring Boot学习笔记之一)

    spring的Java配置 1.创建maven项目 使用idea创建maven项目,这里顺便提一下,idea真的比eclipse好用,早点熟悉吧.然后就是maven是java项目管理最主流的工具,自己 ...

随机推荐

  1. uva10905

    /* 很好的字符串 比较方法 很多个字符串 组成的 数字 需要最大 然后 比较 a和b 是 比较a+b 和b+a 的大小 */ #include<cstdio> #include<s ...

  2. 论文笔记:语音情感识别(四)语音特征之声谱图,log梅尔谱,MFCC,deltas

    一:原始信号 从音频文件中读取出来的原始语音信号通常称为raw waveform,是一个一维数组,长度是由音频长度和采样率决定,比如采样率Fs为16KHz,表示一秒钟内采样16000个点,这个时候如果 ...

  3. json-lib基础

    一.json-lib所需的jar包: json-lib.jar,commons-beanutils.jar,commons-collections.jar,commons-lang.jar,commo ...

  4. 安全测试===sqlmap(壹)转载

    六.优化 这些参数可以优化Sqlmap的性能. 1.一键优化 参数:-o 添加此参数相当于同时添加下列三个优化参数: --keep-alive --null-connection --threads= ...

  5. 数据仓库基础(十一)Informatica小技巧(2)

    本文转载自:http://www.cnblogs.com/evencao/p/3152384.html 1.User shortcuts:shortcuts能实现快捷方式的复用.快捷方式可以根据源的变 ...

  6. python堆排序

    堆是完全二叉树 子树是不相交的 度 节点拥有子树的个数 满二叉树: 每个节点上都有子节点(除了叶子节点) 完全二叉树: 叶子结点在倒数第一层和第二层,最下层的叶子结点集中在树的左部 ,在右边的话,左子 ...

  7. Linux基础命令---fsck

    fsck 检查或者修复指定的文件系统,可以是设备名.挂载点,还可以是一个ext2的label,或者是一个UUID.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.ope ...

  8. kafka生产者和消费者

    在使用kafka时,有时候为验证应用程序,需要手动读取消息或者手动生成消息.这个时候可以借助kafka-console-consumer.sh和kafka-console-producer.sh 这两 ...

  9. P3008 [USACO11JAN]道路和飞机Roads and Planes

    P3008 [USACO11JAN]道路和飞机Roads and Planes Dijkstra+Tarjan 因为题目有特殊限制所以不用担心负权的问题 但是朴素的Dijkstra就算用堆优化,也显然 ...

  10. Python3基础 while 循环示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...