MySQL分布式数据库服务中间件--Cobar研究二(一)

2015-07-24 07:25:04 · 作者: · 浏览: 0

?

场景:

系统对外提供的数据库名是UserCenter,并且其中有一张表u_user

该表的一部分数据被映射到物理数据库alicobar_test_master的u_user上,另外一部分数据被映射到物理数据库alicobar_test_shard的u_user上。

一.环境准备

OS:CentOS6.4 64位

DB:MySQL5.6.22

JDK:1.7

Cobar:1.2.7

MySQL-master 192.168.89.4 端口3306 用户名:alicobar 密码:alicobarpwd123

MySQL-backup 192.168.89.5 端口3306 用户名:alicobar 密码:alicobarpwd123

cobar-server 192.168.66.89

schema:alicobar_test_master、alicobar_test_shard,table:u_user 脚本如下:

?

CREATE DATABASE /*!32312 IF NOT EXISTS*/`alicobar_test_master` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `alicobar_test_master`;

/*Table structure for table `u_user` */

CREATE TABLE `u_user` (
  `code` bigint(19) NOT NULL,
  `mobile` varchar(32) DEFAULT NULL,
  `email` varchar(64) DEFAULT NULL,
  `nickname` varchar(64) DEFAULT NULL,
  `password` varchar(32) NOT NULL,
  `create_time` datetime NOT NULL,
  `modify_time` datetime DEFAULT NULL,
  `status` int(10) NOT NULL COMMENT '用户状态:1 = 启用;2 = 禁用;... ...',
  PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='--用户信息'

?

CREATE DATABASE /*!32312 IF NOT EXISTS*/`alicobar_test_shard` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `alicobar_test_shard`;

/*Table structure for table `u_user` */

CREATE TABLE `u_user` (
  `code` bigint(19) NOT NULL,
  `mobile` varchar(32) DEFAULT NULL,
  `email` varchar(64) DEFAULT NULL,
  `nickname` varchar(64) DEFAULT NULL,
  `password` varchar(32) NOT NULL,
  `create_time` datetime NOT NULL,
  `modify_time` datetime DEFAULT NULL,
  `status` int(10) NOT NULL COMMENT '用户状态:1 = 启用;2 = 禁用;... ...',
  PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='--用户信息';

?

二.部署和配置

MySQL主主同步就不再这里详细说明了,可以参考官网手册

1.安装JDK配置JAVA环境变量JAVA_HOME

下载JDK1.7 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

安装过程就不说了,下面简单说下安装后配置

vi /etc/profile 在文本末尾添加

export JAVA_HOME=/usr/java/jdk1.7.0_75
export JRE_HOME=/usr/java/jdk1.7.0_75/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

添加java_home环境变量后,使profile立即生效

source /etc/profile

2.安装cobar

下载地址:https://github.com/alibaba/cobar/wiki

下载Cobar压缩文件并解压,进入conf目录可以看到schema.xml, rule.xml, server.xml等相关的配置文件

schema.xml配置如下(注意:schema.xml包含MySQL的IP、端口、用户名、密码等配置,您需要按照注释替换为您的MySQL信息。)

[root@localhost conf]# more schema.xml





  
  
    
    
      source-master[0]
      source-backup[0]
    
    
    256
    
    
    
    select user()
  
  
    
      source-master[1]
      source-backup[1]
    

    
    256

    
    
    select user()

  
    
      192.168.89.4:3306/alicobar_test_master 
      192.168.89.4:3306/alicobar_test_shard
    
    alicobar 
    alicobarpwd123 
    STRICT_TRANS_TABLES
  
    
      192.168.89.5:3306/alicobar_test_master
      192.168.89.5:3306/alicobar_test_shard
    
    alicobar
    alicobarpwd123
    STRICT_TRANS_TABLES
  

?

rule.xml配置如下(本文以数字类型的code字段作为拆分字段,将数据拆分到两个库中。)

more rule.xml





  
  
    
      code
      
    
  

  
  
    2
    512
  

server.xml配置如下

more server.xml




  
  
  

  
  
    test
    UserCenter
  
  

  
  
   
  
  

三.启动和使用Cobar

1.启动Cobar,进入bin目录可以看到Cobar的启动、停止与重启脚本

\

报没有log目录,我们新建一个,再次启动

\

查看logs目录下stdout.log