>  기사  >  데이터 베이스  >  cobar实现mysql分片及分片集之内双节点之间的高可用

cobar实现mysql分片及分片集之内双节点之间的高可用

WBOY
WBOY원래의
2016-06-07 16:08:21920검색

首先看节点规划:IP:192.168.0.99Host:mgs02Role:cobar&..

    首先看节点规划:

        IP:192.168.0.99     Host:mgs02      Role:cobar

        IP:192.168.0.101    Host:mysql01    Role:mysql-master1

        IP:192.168.0.102    Host:mysql02    Role:mysql-slave1

        IP:192.168.0.103    Host:mysql03    Role:mysql-master2

        IP:192.168.0.104    Host:mysql04    Role:mysql-slave2

    数据库分片规划:

        lens_conf.*                 不分片,数据分布在101和102这个单片上

        lens_mobapp_trace.test表    分片,101、102为一个片,103、104为一个片

        lens_mobapp_data.emp表      分片,101、102为一个片,103、104为一个片

        lens_mobapp_data.loc表      分片,101、102为一个片,103、104为一个片


    1、cobar不支持HA下的读写分离,如果使用了HA,每个分片内的节点都可能要有数据写入,因此,应该配置双向同步,首先配置mysql-master1和mysql-slave1、mysql-master2和mysql-slave2的双向同步,这里不再详述,与单向同步的区别就是需要开启log_slave_updates参数,然后彼此设置对方为自己的主库。

    接着需要在后端的mysql要做分片的表所在库中创建一张心跳表,并插入10条数据(针对多个cobar节点,避免单条数据的锁争用;如果只有一个cobar节点的话可以只插入一条数据,这里插入10条)

## 需要在lens_conf、lens_mobapp_data、lens_mobapp_trace三个schema中执行下面语句,可以只在 ## 每个分片的某一个节点上执行,另一个节点就会同步执行。 create table xdual(id int not null,gmt datetime,primary key (id)); insert into xdual values(1,now()); insert into xdual values(2,now()); insert into xdual values(3,now()); insert into xdual values(4,now()); insert into xdual values(5,now()); insert into xdual values(6,now()); insert into xdual values(7,now()); insert into xdual values(8,now()); insert into xdual values(9,now()); insert into xdual values(10,now());


    2、安装cobar

## 解压 [root@mgs02 opt]# tar xf cobar-server-1.2.7.tar.gz -C /opt/ [root@mgs02 opt]# ls cobar-server-1.2.7/ bin  conf  lib  logs

    3、配置cobar

    首先配置schema.xml

[root@mgs02 opt]# vim  cobar-server-1.2.7/conf/schema.xml  nbsp;cobar:schema SYSTEM "schema.dtd">              
  
       
    
  
                    ds_master_shared01$0-2       ds_slave_shared01$0-2          256     update xdual set gmt=now() where id=${(1,10)}                  ds_master_shared02$0-1       ds_slave_shared02$0-1          256     update xdual set gmt=now() where id=${(1,10)}                     192.168.0.101:3306/lens_conf       192.168.0.101:3306/lens_mobapp_data       192.168.0.101:3306/lens_mobapp_trace          lens     123456     STRICT_TRANS_TABLES                  192.168.0.102:3306/lens_conf       192.168.0.102:3306/lens_mobapp_data       192.168.0.102:3306/lens_mobapp_trace          lens     123456     STRICT_TRANS_TABLES                  192.168.0.103:3306/lens_mobapp_data       192.168.0.103:3306/lens_mobapp_trace          lens     123456     STRICT_TRANS_TABLES                  192.168.0.104:3306/lens_mobapp_data       192.168.0.104:3306/lens_mobapp_trace          lens     123456     STRICT_TRANS_TABLES   
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.