IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    基于Mycat开源数据库中间件 主从的部署读写分离

    RuM发表于 2015-11-18 06:16:39
    love 0

    mysql数据库主从读写分离配置详解与示例

    部署环境 CentOS 7

    mysql  5.6  mycat  1.4

    主db   172.16.8.211

    从db   172.16.8.212

    mycat  172.16.8.215

    一、MySQL主服配置这里就不写了

    检查下主从状态

      mysql>show slavestatus\G

    以下两个参数必须为yes:

      Slave_IO_Running: Yes

      Slave_SQL_Running: Yes

    新建一个测试库  ceshi

    二、安装JAVA环境

    下载解压 jdk1.7.0_45.tar

     配置java环境在profile 后面加

     vi /etc/profile

     ## java env

     exportJAVA_HOME=/opt/jdk1.7.0_45

     exportJRE_HOME=$JAVA_HOME/jre

     export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar

     exportPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

      

     source /etc/profile

    三、数据库中间件Mycat配置

     下载Mycat-server-1.4-release-2015101923003118-Linux.tar

         解压到/usr/local/

     Mycat 1.4支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,

    3.1 配置/usr/local/mycat/conf/server.xml

        修改一个mycat用户

     

    3.2 配置schema.xm l

    (备注解释)

    (1) 设置 balance="1"与writeType="0"

    Balance参数设置:

        1. balance=“0”, 所有读操作都发送到当前可用的writeHost上。

        2. balance=“1”,所有读操作都随机的发送到readHost。

        3. balance=“2”,所有读操作都随机的在writeHost、readhost上分发

    WriteType参数设置:

     1. writeType=“0”, 所有写操作都发送到可用的writeHost上。

     2. writeType=“1”,所有写操作都随机的发送到readHost。

     3. writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

    “readHost是从属于writeHost的,即意味着它从那个writeHost获取同步据,

    因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即

    “不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,

    目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且

    在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个

    writeHost并设置banlance=1。”

    (2) 设置switchType="2" 与slaveThreshold="100"   

    “Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新

    属性:switchType="2" 与slaveThreshold="100",此时意味着开启

    MySQL主从复制状态绑定的读写分离与切换机制。Mycat心跳机制通过检

    测 show slave status 中的 "Seconds_Behind_Master",

    "Slave_IO_Running","Slave_SQL_Running" 三个字段来确定当前主从同

    步的状态以及Seconds_Behind_Master主从复制时延。“

     

     

    3.3 配置log4j.xml

    3.4 配置编码 index_to_charset.properties   添加常用的utf-8字符集

    3.5 启动  测试

        调试就用控制

       

       然后进行操作进入控制台会发现没有mysql 客户端,所以先安装下mysql 在进行进入

       

        

       mysql -utest –p123456 –h127.0.0.1 –P8066  ##控制台

       mysql -utest –p123456 –h127.0.0.1 –P9066  ##监控控制台

       

       

        测试新建表-----》插入数据------》查看数据

        create tablecompany(id int not null primary key,name varchar(100));

        insert intocompany(id,name) values(1,'alibaba');

        select *from company;

        

        查看日志会发现写走的是211

        

        

     

        读走的是212这样读写分离就出来了,如果有多台主或者从就可以负载了

        

     

         版主博客 http://312461613.blog.51cto.com/



沪ICP备19023445号-2号
友情链接