前提:

安装JDK版本在7.0及其以上

1、下载:

下载地址在:http://dl.mycat.io/      选择1.6-release版本下载

2、安装:

直接解压即可:

tar -zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

3、配置:

配置JDK环境变量,mycat环境变量

vim /etc/profile

MYCAT_HOME=/usr/local/Mycat

vim /etc/hosts      配置集群对应IP

wrapper.conf:用来配置JVM虚拟机内存

wrapper.java.command=/lib/jvm/bin/java      #JAVA目录下JAVA命令所在

wrapper.working.dir=..

---------------------------JVM参数调优-------------------------------------

wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
wrapper.java.additional.5=-XX:MaxDirectMemorySize=2G
wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.10=-Xmx4G
wrapper.java.additional.11=-Xms1G
# Java Additional Parameters
#wrapper.java.additional.1=
wrapper.java.additional.1=-DMYCAT_HOME=.
wrapper.java.additional.2=-server
wrapper.java.additional.3=-XX:MaxPermSize=64M
wrapper.java.additional.4=-XX:+AggressiveOpts
#堆内存适度大小,直接映射内存尽可能大,两种一起占据服务器的1/2-2/3的内存
wrapper.java.additional.5=-XX:MaxDirectMemorySize=6G
wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
#无论扩展还是缩减新生代空间或老年代空间都需要进行Full GC,而Full GC会降低程序的吞吐量并导致更长的延迟。
wrapper.java.additional.10=-Xmx4G
wrapper.java.additional.11=-Xms4G

mycat配置主要有三个文件配置,都在conf目录下。分别是:server.xml     schema.xml      rule.xml

server.xml:主要用来配置连接mycat的用户与密码。

<user name="root">        #配置连接mycat的用户名
  <property name="password">123456</property>      #配置连接mycat的密码
    <property name="schemas">test,test1</property>    #配置数据库名,逻辑数据库,与下面schema.xml配置文件中的逻辑库对应,逻辑库是在mycat上存在的库

    <!-- 表级 DML 权限设置 -->
    <!--
    <privileges check="false">
      <schema name="test" dml="0110" >
        <table name="test" dml="0000"></table>
      </schema>

      <schema name="test1" dml="0110" >
        <table name="test" dml="0000"></table>
      </schema>
    </privileges>
    -->
</user>

schema.xml:主要用来配置数据库设置

<?xml version="1.0" ?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="test" checkSQLschema="false" sqlMaxLimit="100" >        #逻辑数据库名称,对应上面server.xml里的个数,有两个就写两个schema标签
      <table name="test" primaryKey="id" type="global" autoIncrement=“true” dataNode="dn1,dn2,dn3" rule="mod-long" ></table>    #这里实现分库分表的标签。dataNode对应不同的数据节点,name为表名,rule为分表规则,这里一般在企业里用的最多的时取模分表,可控性高。分表的数量要与rule.xml中的数量配置一致

      <table name="table" primaryKey="id" type="global" autoIncrement=“true” dataNode="dn1" rule="mod-long" ></table>
    </schema>

    <schema name="test1" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2">
      <!—配置需要分片的表-->
      <table name=“test” primaryKey="id" type="global" autoIncrement=“true” dataNode=”dn2”/>
    </schema>

#如果不需要分表,那么直接可以:注意我这里是两个逻辑库,所以有两个标签,dataNode对应到下面的<dataNode>标签,如果有第三个库,那么就增加一个schema标签同时dataNode设置为dn3,以此类推

<schema name="test" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>

<schema name="test1" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2"></schema>

#节点名,与schema或table中dataNode对应    dataHost:数据库实例名称,也可以是数据节点的IP别名   database:物理数据库中数据库名
<dataNode name="dn1" dataHost="192.168.88.129" database="test"/>
<dataNode name="dn2" dataHost="192.168.88.129" database="test1"/>

如果需要分表,那么dataNode标签应该这样定义:对应上面的table标签。注意这里是上面有table标签,下面才有的这三个dataNode。name对应上面table标签里的dataNode。
<dataNode name="dn1" dataHost="192.168.88.129" database="test"/>
<dataNode name="dn2" dataHost="192.168.88.129" database="test1"/>
<dataNode name="dn3" dataHost="192.168.88.129" database="test2"/>
 

#dataHost:物理数据库名,与dataNode中dataHost对应 balance:负载均衡方式,下面有说明 writeType:写入方式 dbType:数据库类型
<dataHost name="db1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
#心跳检查语句,后面有分号
<heartbeat>show slave status</heartbeat>
<writeHost host="hostM1" url="192.168.88.129:13306" user="root" password="123456">    #这里配置数据库账号和密码,读写节点
<readHost host="hostS2" url="192.168.88.133:13306" user="root" password="123456"/>
</writeHost>
</dataHost>
</
mycat:schema>

#在一主一从环境中,负载均衡与读写分离可以这样设置:
<dataHost name="db1" maxCon="1000" minCon="10" balance="1" writeType="0"
dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
#心跳检查语句,后面有分号
<heartbeat>show slave status;</heartbeat>
<writeHost host="hostM1" url="192.168.88.129:13306" user="root" password="123456"/>    #这里配置数据库账号和密码,读写节点
    <writeHost host="hostS1" url="192.168.88.133:13306" user="root" password="123456"/>      #这里将writeHost标签写在外面就代表了高可用的备机
    </dataHost>
</
mycat:schema>
 

balance:

负载均衡类型,目前的取值有 3 种:

1.balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的 write Host 上。

2.balance="1",写操作在主,读操作在从
3.balance="2",所有读操作都随机的在 write Host、readhost 上分发。 
4.balance="3",所有读请求随机的分发到 wiriter Host 对应的 readhost 执行,writer Host 不负担读压

关于分片表中dataNode和dataHost的理解:

  

  Mycat 目前没有出来跨分片的事务强一致性支持,目前单库内部可以保证事务的完整性,如果跨库事务, 在执行的时候任何分片出错,可以保证所有分片回滚,但是一旦应用发起 commit 指令,无法保证所有分片都成 功,考虑到某个分片挂的可能性不大所以称为弱 xa。           ----摘自mycat官方文档

  参考:https://blog.csdn.net/u013898617/article/details/80402956

 

mycat中间件安装与使用的更多相关文章

  1. mysql mycat 中间件安装与使用

    一,什么是mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...

  2. Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解

    一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...

  3. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  4. Mycat 中间件配置初探与入门操作

    Mycat中间件配置初探与入门操作 By:授客 QQ:1033553122 实践环境 Mycat-server-1.5.1-RELEASE-20161130213509-win.tar.gz 下载地址 ...

  5. mycat的安装及配置文件应用

    table:逻辑一 mycat的安装 1 基于jdk运行 2 获取安装包 3 解压 tar -xf Mycat***.tar.gz 4 测试运行 mycat的根目录中bin保存了mycat的核心命令文 ...

  6. MyCat中间件:读写分离(转)

    利用MyCat中间件实现读写分离 需要两步: 1.搭建MySQL主从复制环境 2.配置MyCat读写分离策略 一.搭建MySQL主从环境 参考上一篇博文:MySQL系列之七:主从复制 二.配置MyCa ...

  7. MyCat(1.2)Mycat的安装

    [0]基本环境 OS:CentOS7.5 Software envireonment:JDK1.7.0 Master Software:Mycat1.6.5 Linux Client:CRT 8.0 ...

  8. mycat的安装及使用 看这一篇就够了

    1.环境准备 ​ 本次使用的虚拟机环境是centos6.5 ​ 首先准备四台虚拟机,安装好mysql,方便后续做读写分离和主从复制. 192.168.85.111 node01 192.168.85. ...

  9. CentOS7安装MYCAT中间件

    MYCAT是一个被广泛使用的功能强大的开源的数据库中间件,当然他的理想不仅仅是做一个中间件.这篇文章主要记录MYCAT服务的搭建过程,下篇会继续更新MYCAT的使用配置. 本篇记录将使用CentOS7 ...

随机推荐

  1. cmd - 使用curl命令的注意点

    前言 最近在cmd中使用curl命令来测试rest api,发现有不少问题,这里记录一下. 在cmd中使用curl命令的注意事项 json不能由单引号包括起来 json数据里的双引号要用反斜杠\转义 ...

  2. socket模拟服务器,客户端下载东西(ftp)

    服务端(ftp_server.py) import hashlib,socket,os server = socket.socket() server.bind(("localhost&qu ...

  3. 《Python网络爬虫之三种数据解析方式》

    引入 回顾requests实现数据爬取的流程 指定url 基于requests模块发起请求 获取响应对象中的数据 进行持久化存储 其实,在上述流程中还需要较为重要的一步,就是在持久化存储之前需要进行指 ...

  4. mongodb-安装&配置&启动

    下载:https://www.mongodb.com/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.3.tgz/downloa ...

  5. 关于java中的不可变类(转)

    如何在Java中写出Immutable的类? 要写出这样的类,需要遵循以下几个原则: 1)immutable对象的状态在创建之后就不能发生改变,任何对它的改变都应该产生一个新的对象. 2)Immuta ...

  6. VMware下OSSIM 5.2.0的下载、安装和初步使用(图文详解)

    不多说,直接上干货! 入门阶段不建议选用最新的版本. 采用OSSIM 4.11 到 OSSIM5.0.3 之间任何版本做实验,sensor的状态都会是“V”.   建议,入门,采用OSSIM5.0.0 ...

  7. datagrid数据网格获取所有选中行的索引,插入某个列值为其他列的运算值

    获取所有选中行的索引,存入数组ary中: var data=$("#dg").datagrid("getSelections"); var ary=[]; fo ...

  8. Android Theme.Dialog 到光 AppCompatDialog

    我用在我的 style.xml 作为主要应用程序主题 <style name="AppTheme" parent="Theme.AppCompat.Light&qu ...

  9. UIView动画效果之----翻转.旋转.偏移.翻页.缩放.取反的动画效

    翻转的动画 //开始动画 [UIView beginAnimations:@"doflip" context:nil]; //设置时常 [UIView setAnimationDu ...

  10. 《Python基础教程》 读书笔记 第九章 魔法方法、属性和迭代器(上)

    构造方法 在Python中创建一个构造方法很容易.只要把init方法的名字从简单的init修改为魔法版本__init__即可: >>> class FooBar: ...     d ...