MyCat安装



部署结构图

 示例:

   

schema
TableA

Datanode 1

Datanode 2

TableB

Datanode 3

Datanode 4

MyCat
mysql-a
mysql-d
mysql-c
mysql-b
机器a
机器b
机器c
机器d

   

jdk安装

1 先卸载系统带的jdk

yum remove java

2 创建目录

mkdir -p /opt/appl/jdk

3 减压

tar -zxvf  jdk-8u102-linux-x64.gz  -C  /opt/appl/jdk

4 创建软连接

cd /opt/appl/jdk

ln -s /opt/appl/jdk/jdk1.8.0_102 java8

5 修改环境变量

vim /etc/profile

 

1
2
3
# jdk
export JAVA_HOME=/opt/appl/jdk/java8
export PATH=$PATH:$JAVA_HOME/bin

6 验证

source /etc/profile

验证: java -version

java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

则安装成功

 

MyCat安装

1、下载

官方下载地址

wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20171228230037-linux.tar.gz

建议放在/opt/appl/mycat目录下

groupadd mycat
useradd -r -g mycat mycat

chown -R mycat.mycat /opt/appl/mycat

ln -si /opt/appl/mycat/bin/mycat /usr/bin/mycat

然后可以使用

mycat start

mycat stop

mycat restart等命令启动或者停止了。

启动前,先修改配置文件,确保连接的数据库存在并且用户名密码正确。

配置文件件/opt/appl/mycat/mycat-1.6.5/conf/schema.xml。

读写分离配置

 写mysql实例 配置在 writeHost

 读mysql实例 配置在 <readHost />

读写依赖mysql自身的主从复制

注意:启动时 mysql 主从实例都需正常,否则启动后 发起查询sql 报错

 

MyCAT的读写分离机制如下:

 

  • 事务内的SQL,全部走写节点,除非某个select语句以注释/*balance*/开头
  • 自动提交的select语句会走读节点,并在所有可用读节点中间随机负载均衡
  • 当某个主节点宕机,则其全部读节点都不再被使用,因为此时,同步失败,数据已经不是最新的,MYCAT会采用另外一个主节点所对应的全部读节点来实现select负载均衡。
  • 当所有主节点都失败,则为了系统高可用性,自动提交的所有select语句仍将提交到全部存活的读节点上执行,此时系统的很多页面还是能出来数据,只是用户修改或提交会失败。


    dataHost的balance属性设置为:

    • 0,不开启读写分离机制
    • 1,全部的readHost与stand by writeHost参与select语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且M1与 M2互为主备),正常情况下,M2,S1,S2都参与select语句的负载均衡。
    • 2,所有的readHost与writeHost都参与select语句的负载均衡,也就是说,当系统的写操作压力不大的情况下,所有主机都可以承担负载均衡。

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

    MyCAT支持高可用性的企业级特性,根据您的应用特性,可以配置如下几种策略:

    • 后端数据库配置为一主多从,并开启读写分离机制。
    • 后端数据库配置为双主双从(多从),并开启读写分离机制
    • 后端数据库配置为多主多从,并开启读写分离机制

    后面两种配置,具有更高的系统可用性,当其中一个写节点(主节点)失败后,Mycat会侦测出来(心跳机制)并自动切换到下一个写节点,MyCAT在任何时候,只会往一个写节点写数据。

 

<!-- 定义MyCat的逻辑库 -->
<schema name="pcx_schema" checkSQLschema="false" sqlMaxLimit="10000" dataNode="pcxNode"></schema>

 

<!-- 定义MyCat的数据节点 -->
<dataNode name="pcxNode" dataHost="localhost1" database="pcx" />


 

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
 writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100" tempReadHostAvailable="1">
   <heartbeat>select user()</heartbeat>
   <!-- can have multi write hosts -->
 <writeHost host="hostM1" url="172.30.2.58:3306" user="root"
 password="root">
      <!-- can have multi read hosts -->
 <readHost host="hostS1" url="172.30.2.60:3306" user="root" password="root" />
   </writeHost>
   <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>

高可用配置

 lvs+keepalived

分库路由算法、分表规则选择

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值