maycat数据分片

1 案例1:部署MyCAT服务
1.1 问题

数据库服务器192.168.4.53 使用db1库存储数据
数据库服务器192.168.4.54 使用db2库存储数据
数据库服务器192.168.4.55 使用db3库存储数据
主机 192.168.4.56 运行mycat服务,逻辑库名称TESTDB,连接用户名为adminplj,密码123qqq…A
客户端192.168.4.50访问mycat服务测试配置
1.2 方案

准备5台虚拟主机;其中主机192.168.4.56作为mycat服务器,192.168.4.53、192.168.4.54、192.168.4.55运行数据库服务,192.168.4.50作为客户端。具体如图-1所示:

图-1
1.3 步骤

实现此案例需要按照如下步骤进行。
步骤一:配置分片服务器(192.168.4.56)

1)部署MyCat 运行环境
]# yum -y install java-1.8.0-openjdk //安装JDK
已安装:
java-1.8.0-openjdk.x86_64 1:1.8.0.161-2.b14.el7
作为依赖被安装:
alsa-lib.x86_64 0:1.1.4.1-2.el7
copy-jdk-configs.noarch 0:3.3-2.el7
giflib.x86_64 0:4.1.6-9.el7
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.161-2.b14.el7
javapackages-tools.noarch 0:3.4.1-11.el7
libXtst.x86_64 0:1.2.3-1.el7
libxslt.x86_64 0:1.1.28-5.el7
lksctp-tools.x86_64 0:1.0.17-2.el7
python-javapackages.noarch 0:3.4.1-11.el7
python-lxml.x86_64 0:3.2.1-4.el7
tzdata-java.noarch 0:2018c-1.el7
完毕!
[root@mycat56 ~]# which java //查看命令
/usr/bin/java
[root@mycat56 ~]# java –version //显示版本
openjdk version “1.8.0_161”
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
2)安装提供服务的软件包
[root@mycat56 ~]# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz //解压源码
mycat/bin/wrapper-linux-ppc-64
……
……
mycat/version.txt
mycat/conf/log4j2.xml
mycat/bin/init_zk_data.sh
mycat/bin/startup_nowrap.sh
mycat/bin/dataMigrate.sh
mycat/bin/rehash.sh
mycat/logs/
mycat/catlet/
[root@mycat56 ~]#
[root@mycat56 ~]# mv mycat /usr/local/ //移动目录(非必须操作)
[root@mycat56 ~]# ls /usr/local/mycat/ //查看文件列表
bin catlet conf lib logs version.txt
[root@mycat56 ~]#
3)设置连账号
]# vim /usr/local/mycat/conf/server.xml
//连接mycat服务时使用的用户名
123456 //用户连接mycat用户时使用的密码
TESTDB //逻辑库名


user
TESTDB
true //只读权限,连接mycat服务后只有读记录的权限,不写这一行则是可读可写

:wq
4)配置数据分片
使用sed删除不需要的配置行(可选操作)
[root@mycat56 conf]# wc -l schema.xml //删除前查看总行数
77 /root/schema.xml
[root@mycat56 conf]# sed -i ‘56,77d’ schema.xml //删除无关的配置行
[root@mycat56 conf]# sed -i ‘39,42d’ schema.xml
[root@mycat56 conf]# sed -i ‘16,18d’ schema.xml
[root@mycat56 conf]# wc -l schema.xml //删除后查看总行数
48 schema.xml
[root@mycat56 conf]# vim /usr/local/mycat/conf/schema.xml

<?xml version="1.0"?>

<mycat:schema xmlns:mycat=“http://io.mycat/”>

   <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">//对TESTDB库下的表做分片存储
            <!-- auto sharding by id (long) -->
              
            <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />  //对travelrecord表做分片存储
            <!-- global table is auto cloned to all defined data nodes ,so can join
                    with any table whose sharding node is in the same data node -->
            <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />  //对company表做分片存储
            <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />  
            <!-- random sharding using mod sharind rule -->
            <table name="hotnews"  dataNode="dn1,dn2,dn3"
                       rule="mod-long" /> 
            <table name="employee" primaryKey="ID" dataNode="dn1,dn2,dn3"
                       rule="sharding-by-intfile" /> 
            <table name="customer" primaryKey="ID" dataNode="dn1,dn2,dn3"
                       rule="sharding-by-intfile"> 
                    <childTable name="orders" primaryKey="ID" joinKey="customer_id"
                                            parentKey="id">
                            <childTable name="order_items" joinKey="order_id"
                                                    parentKey="id" />
                    </childTable>
                    <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"
                                            parentKey="id" />
            </table>
            <!-- <table name="oc_call" primaryKey="ID" dat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值