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

    Cobar介绍、安装及使用

    mckee发表于 2015-06-14 17:14:09
    love 0

    Cobar简介
    Cobar是阿里巴巴开源(官方github)的一个对应用保持透明的MySQL数据库分布式处理中间件。
    cobar.png
    Cobar功能

    • 将一张表拆分到不同的库。
    • 将不同的表放入不同的库。
    • 提供HA方案

    Cobar约束
    • 不支持跨库情况下的 join、分页、排序、子查询操作
    • SET 语句执行会被忽略,事务和字符集设置除外
    • 分库情况下,insert 语句必须包含拆分字段列名
    • 分库情况下,update 语句不能更新拆分字段的值
    • 不支持 SAVEPOINT 操作
    • 暂时只支持 MySQL 数据节点

    Cobar安装

    wget https://github.com/alibaba/cobar/releases/download/v1.2.7/cobar-server-1.2.7.tar.gz
    tar -zxvf cobar-server-1.2.7.tar.gz
    cd cobar-server-1.2.7

    Cobar配置主要目录如下:
    |--bin #包含Cobar的启动、重启、停止等脚本文件
    | |--startup.sh #Linux环境启动脚本
    | |--startup.bat #Windows环境启动脚本
    | |--restart.sh #Linux环境重启脚本
    | |--shutdown.sh #Linux环境停止脚本
    |--conf #包含Cobar所有配置文件
    | |--server.xml #Cobar系统、用户、集群等相关配置
    | |--schema.xml #schema,dataNode,dataSource相关配置
    | |--rule.xml #分布式规则定义
    | |--log4j.xml #日志相关配置
    |--lib #包含Cobar及其依赖的jar文件
    |--logs #包含Cobar所有日志文件

    Cobar配置实例:
    (1)数据准备
    1353053439_6762.jpg1) 系统对外提供的数据库名是dbtest,并且其中有两张表tb1和tb2。
    2) tb1表的数据被映射到物理数据库dbtest1的tb1上。
    3) tb2表的一部分数据被映射到物理数据库dbtest2的tb2上,另外一部分数据被映射到物理数据库dbtest3的tb2上。

    创建sql如下:
    #创建dbtest1
    drop database if exists dbtest1;
    create database dbtest1;
    use dbtest1;
    #在dbtest1上创建tb1
    create table tb1(
    id int not null,
    gmt datetime);
    #创建dbtest2
    drop database if exists dbtest2;
    create database dbtest2;
    use dbtest2;
    #在dbtest2上创建tb2
    create table tb2(
    id int not null,
    val varchar(256));
    #创建dbtest3
    drop database if exists dbtest3;
    create database dbtest3;
    use dbtest3;
    #在dbtest3上创建tb2
    create table tb2(
    id int not null,
    val varchar(256));

    (2)配置schema.xml(数据库结构schema、数据节点dataNode、以及数据源dataSource)

    
    
    
      
      
        
    dsTest[0] dsTest[1] dsTest[2] 192.168.15.130:3306/dbtest1 192.168.15.130:3306/dbtest2 192.168.15.130:3306/dbtest3 root 123456 STRICT_TRANS_TABLES

    (3)配置rule.xml(分库分表规则)

    
    
    
      
      
        
          id
          
        
      
    
      
      
        2
        512
      
    
    

    (4)配置server.xml(Cobar用户名、密码、端口、集群等)

    
    
    
      
      
    
      
      
        test
        dbtest
      
      
    
      
      
      
      
    
    

    (5)启动Cobar

    ./startup.sh

    可以查看启动成功日志,logs下stdout.log
    01:34:42,078 INFO  ===============================================
    01:34:42,078 INFO  Cobar is ready to startup ...
    01:34:42,079 INFO  Startup processors ...
    01:34:44,115 INFO  Startup connector ...
    01:34:44,118 INFO  Initialize dataNodes ...
    01:34:44,703 INFO  dnTest3:0 init success
    01:34:44,762 INFO  dnTest2:0 init success
    01:34:44,915 INFO  dnTest1:0 init success
    01:34:45,103 INFO  CobarManager is started and listening on 9066
    01:34:45,133 INFO  CobarServer is started and listening on 8066
    01:34:45,134 INFO  ===============================================
    01:37:28,706 INFO  [thread=Processor1-H0,class=ServerConnection,host=127.0.0.1,port=51797,schema=dbtest]'test' login success
    05:19:14,912 WARN  [thread=TimerExecutor3,class=ServerConnection,host=127.0.0.1,port=51797,schema=dbtest] idle timeout
    07:41:16,532 INFO  [thread=Processor2-H0,class=ServerConnection,host=127.0.0.1,port=51809,schema=dbtest]'test' login success

    (6)使用Cobar

    mysql -h127.0.0.1 -utest -ptest -P8066 -Ddbtest
    insert into tb1 values (1,now());



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