前提:

安装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. assembly x86(nasm)修改后的日常

    data segment ENG db 'SUNdayS Coming I Wanna Drive My Car,SUN,SUN$' ;9,3 sun1 db 'SUN' swcount db 0ah ...

  2. 51Nod 1134 最长递增子序列(动态规划O(nlogn))

    #include <iostream> #include <algorithm> #include <stdio.h> #define MAXN 50010 usi ...

  3. 【转】String hashCode 方法为什么选择数字31作为乘子

    某天,我在写代码的时候,无意中点开了 String hashCode 方法.然后大致看了一下 hashCode 的实现,发现并不是很复杂.但是我从源码中发现了一个奇怪的数字,也就是本文的主角31.这个 ...

  4. scrapy框架中选择器的用法

    scrapy框架中选择器的用法 Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分Xpath是专门在XML文件中 ...

  5. pip 的简单安装与基本使用

    pip 是 Python 著名的包管理工具,在 Python 开发中必不可少.本文只介绍各平台最新可用并且最简单的 pip 安装方式,以方便初学者和不会敲代码只需通过 pip 安装特定工具的小伙伴们. ...

  6. 关于在ARM MDK 中使用STM32F4xx 硬件浮点单元的话题

    http://mp.weixin.qq.com/s/CDyZ8v2kLiyuIBHf7iqEPA

  7. 关于 ie8不兼容的一些方法

    ie8 不兼容的方法 $(function(){ //添加数组IndexOf方法 if (!Array.prototype.indexOf){ Array.prototype.indexOf = fu ...

  8. RedHat Linux Shell常用命令(多数也适用于Unix和AIX)

    注:本文转载自疯狂的矩阵一文,http://www.cnblogs.com/520sojustdoit/p/4642568.html --------------------------------- ...

  9. dispaly:none 和visibility :hidden的区别

    display:none 通常被 JavaScript 用来在不删除元素的情况下隐藏或显示元素. 它和 visibility 属性不一样.把 display 设置成 none 元素不会占据它本来应该显 ...

  10. [转]Creating Mailing Labels in SQL Server Reporting Services (rdlc 数据1页 2竖排 显示)

    本文转自:http://blogs.wrox.com/article/creating-mailing-labels-in-sql-server-reporting-services/ Most wo ...