ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MyCat分库分表--实战09--按单月小时

2021-04-10 15:03:08  阅读:189  来源: 互联网

标签:分库 name database -- adddate 09 +----+--------+------------+ steven user07


项目环境:  

192.168.8.30  mycat

192.168.8.31  node1

192.168.8.32  node2

192.168.8.33  node3

三个节点MySQL均为单实例

一、创建测试库

node1

123456789101112create database testdb01;create database testdb02;create database testdb03;create database testdb04;create database testdb05;create database testdb06;create database testdb07;create database testdb08;create database testdb09;create database testdb10;create database testdb11;create database testdb12;

node2

123456789101112create database testdb13;create database testdb14;create database testdb15;create database testdb16;create database testdb17;create database testdb18;create database testdb19;create database testdb20;create database testdb21;create database testdb22;create database testdb23;create database testdb24;

node3

123456789101112create database testdb25;create database testdb26;create database testdb27;create database testdb28;create database testdb29;create database testdb30;create database testdb31;create database testdb32;create database testdb33;create database testdb34;create database testdb35;create database testdb36;

二、配置schema.xml

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="        <schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100"           <table name="user07" dataNode="dn$1-36" rule="sharding-by-hour-adddate"></table>        </schema>    <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"        /> -->        <dataNode name="dn1" dataHost="node1" database="testdb01" />        <dataNode name="dn2" dataHost="node1" database="testdb02" />        <dataNode name="dn3" dataHost="node1" database="testdb03" />        <dataNode name="dn4" dataHost="node1" database="testdb04" />        <dataNode name="dn5" dataHost="node1" database="testdb05" />        <dataNode name="dn6" dataHost="node1" database="testdb06" />        <dataNode name="dn7" dataHost="node1" database="testdb07" />        <dataNode name="dn8" dataHost="node1" database="testdb08" />        <dataNode name="dn9" dataHost="node1" database="testdb09" />        <dataNode name="dn10" dataHost="node1" database="testdb10" />        <dataNode name="dn11" dataHost="node1" database="testdb11" />        <dataNode name="dn12" dataHost="node1" database="testdb12" />        <dataNode name="dn13" dataHost="node2" database="testdb13" />        <dataNode name="dn14" dataHost="node2" database="testdb14" />        <dataNode name="dn15" dataHost="node2" database="testdb15" />        <dataNode name="dn16" dataHost="node2" database="testdb16" />        <dataNode name="dn17" dataHost="node2" database="testdb17" />        <dataNode name="dn18" dataHost="node2" database="testdb18" />        <dataNode name="dn19" dataHost="node2" database="testdb19" />        <dataNode name="dn20" dataHost="node2" database="testdb20" />        <dataNode name="dn21" dataHost="node2" database="testdb21" />        <dataNode name="dn22" dataHost="node2" database="testdb22" />        <dataNode name="dn23" dataHost="node2" database="testdb23" />        <dataNode name="dn24" dataHost="node2" database="testdb24" />        <dataNode name="dn25" dataHost="node3" database="testdb25" />        <dataNode name="dn26" dataHost="node3" database="testdb26" />        <dataNode name="dn27" dataHost="node3" database="testdb27" />        <dataNode name="dn28" dataHost="node3" database="testdb28" />        <dataNode name="dn29" dataHost="node3" database="testdb29" />        <dataNode name="dn30" dataHost="node3" database="testdb30" />        <dataNode name="dn31" dataHost="node3" database="testdb31" />        <dataNode name="dn32" dataHost="node3" database="testdb32" />        <dataNode name="dn33" dataHost="node3" database="testdb33" />        <dataNode name="dn34" dataHost="node3" database="testdb34" />        <dataNode name="dn35" dataHost="node3" database="testdb35" />        <dataNode name="dn36" dataHost="node3" database="testdb36" />        <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />     <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />    <dataNode    name="jdbc_dn2" dataHost="jdbchost" database="db2" />    <dataNode name="jdbc_dn3"  dataHost="jdbchost" database="db3" /> -->    <dataHost name="node1" maxCon="1000" minCon="10" balance="1"                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">                <heartbeat>select user()</heartbeat>                <!-- can have multi write hosts -->                <writeHost host="192.168.8.31" url="192.168.8.31:3306" user="root"  password="mysql"></writeHost>        </dataHost>        <dataHost name="node2" maxCon="1000" minCon="10" balance="1"                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">                <heartbeat>select user()</heartbeat>                <!-- can have multi write hosts -->                <writeHost host="192.168.8.32" url="192.168.8.32:3306" user="root"  password="mysql"></writeHost>        </dataHost>        <dataHost name="node3" maxCon="1000" minCon="10" balance="1"                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">                <heartbeat>select user()</heartbeat>                <!-- can have multi write hosts -->                <writeHost host="192.168.8.33" url="192.168.8.33:3306" user="root"  password="mysql"></writeHost>        </dataHost></mycat:schema>

三、配置rule.xml

123456789<tableRule name="sharding-by-hour-adddate">               <rule>                        <columns>adddate</columns>                        <algorithm>sharding-by-hour</algorithm>               </rule>        </tableRule>        <function name="sharding-by-hour" class="io.mycat.route.function.LatestMonthPartion">                <property name="splitOneDay">24</property>        </function>

<property name="splitOneDay">24</property>每天24份

四、启动mycat

1/usr/local/mycat/bin/mycat start

查看mycat日志

1234567STATUS | wrapper  | 2018/11/23 12:54:18 | --> Wrapper Started as DaemonSTATUS | wrapper  | 2018/11/23 12:54:19 | Launching a JVM...INFO   | jvm 1    | 2018/11/23 12:54:19 | OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=64M; support was removed in 8.0INFO   | jvm 1    | 2018/11/23 12:54:23 | Wrapper (Version 3.2.3) INFO   | jvm 1    | 2018/11/23 12:54:23 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.INFO   | jvm 1    | 2018/11/23 12:54:23 | INFO   | jvm 1    | 2018/11/23 12:54:28 | MyCAT Server startup successfully. see logs in logs/mycat.log

五、登录MySQL查看逻辑表

1mysql -uroot -pmysql -P8066 -h192.168.8.30
12345678910111213141516171819202122232425262728mysql> show databases;+----------+DATABASE |+----------+| mycatdb  |+----------+1 row in set (0.02 sec)mysql> use mycatdbReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+-------------------+| Tables in mycatdb |+-------------------+| user04            || user05            || user06            || user07            |+-------------------+rows in set (0.01 sec)mysql> drop table if exists user07;Query OK, 0 rows affected, 1 warning (0.38 sec)mysql> create table user07(    -> id int not null,    -> name varchar(64),    -> adddate varchar(10)    -> );

六、插入测试数据

123456789101112131415161718192021222324252627282930313233343536insert into user07(id,name,adddate) values(1,'steven','2018110100');insert into user07(id,name,adddate) values(1,'steven','2018110101');insert into user07(id,name,adddate) values(1,'steven','2018110102');insert into user07(id,name,adddate) values(1,'steven','2018110103');insert into user07(id,name,adddate) values(1,'steven','2018110104');insert into user07(id,name,adddate) values(1,'steven','2018110105');insert into user07(id,name,adddate) values(1,'steven','2018110106');insert into user07(id,name,adddate) values(1,'steven','2018110107');insert into user07(id,name,adddate) values(1,'steven','2018110108');insert into user07(id,name,adddate) values(1,'steven','2018110109');insert into user07(id,name,adddate) values(1,'steven','2018110110');insert into user07(id,name,adddate) values(1,'steven','2018110111');insert into user07(id,name,adddate) values(1,'steven','2018110112');insert into user07(id,name,adddate) values(1,'steven','2018110113');insert into user07(id,name,adddate) values(1,'steven','2018110114');insert into user07(id,name,adddate) values(1,'steven','2018110115');insert into user07(id,name,adddate) values(1,'steven','2018110116');insert into user07(id,name,adddate) values(1,'steven','2018110117');insert into user07(id,name,adddate) values(1,'steven','2018110118');insert into user07(id,name,adddate) values(1,'steven','2018110119');insert into user07(id,name,adddate) values(1,'steven','2018110120');insert into user07(id,name,adddate) values(1,'steven','2018110121');insert into user07(id,name,adddate) values(1,'steven','2018110122');insert into user07(id,name,adddate) values(1,'steven','2018110123');insert into user07(id,name,adddate) values(1,'steven','2018110200');insert into user07(id,name,adddate) values(1,'steven','2018110201');insert into user07(id,name,adddate) values(1,'steven','2018110202');insert into user07(id,name,adddate) values(1,'steven','2018110203');insert into user07(id,name,adddate) values(1,'steven','2018110204');insert into user07(id,name,adddate) values(1,'steven','2018110205');insert into user07(id,name,adddate) values(1,'steven','2018110206');insert into user07(id,name,adddate) values(1,'steven','2018110207');insert into user07(id,name,adddate) values(1,'steven','2018110208');insert into user07(id,name,adddate) values(1,'steven','2018110209');insert into user07(id,name,adddate) values(1,'steven','2018110210');insert into user07(id,name,adddate) values(1,'steven','2018110211');

执行两次,每条数据插入两份

七、验证数据

node1

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596mysql> select from testdb01.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110100 ||  1 | steven | 2018110100 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb02.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110101 ||  1 | steven | 2018110101 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb03.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110102 ||  1 | steven | 2018110102 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb04.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110103 ||  1 | steven | 2018110103 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb05.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110104 ||  1 | steven | 2018110104 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb06.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110105 ||  1 | steven | 2018110105 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb07.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110106 ||  1 | steven | 2018110106 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb08.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110107 ||  1 | steven | 2018110107 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb09.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110108 ||  1 | steven | 2018110108 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb10.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110109 ||  1 | steven | 2018110109 |+----+--------+------------+rows in set (0.01 sec)mysql> select from testdb11.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110110 ||  1 | steven | 2018110110 |+----+--------+------------+rows in set (0.02 sec)mysql> select from testdb12.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110111 ||  1 | steven | 2018110111 |+----+--------+------------+rows in set (0.01 sec)

node2

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596mysql> select from testdb13.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110112 ||  1 | steven | 2018110112 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb14.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110113 ||  1 | steven | 2018110113 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb15.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110114 ||  1 | steven | 2018110114 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb16.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110115 ||  1 | steven | 2018110115 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb17.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110116 ||  1 | steven | 2018110116 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb18.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110117 ||  1 | steven | 2018110117 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb19.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110118 ||  1 | steven | 2018110118 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb20.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110119 ||  1 | steven | 2018110119 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb21.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110120 ||  1 | steven | 2018110120 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb22.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110121 ||  1 | steven | 2018110121 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb23.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110122 ||  1 | steven | 2018110122 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb24.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110123 ||  1 | steven | 2018110123 |+----+--------+------------+rows in set (0.00 sec)

node3

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596mysql> select from testdb25.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110200 ||  1 | steven | 2018110200 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb26.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110201 ||  1 | steven | 2018110201 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb27.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110202 ||  1 | steven | 2018110202 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb28.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110203 ||  1 | steven | 2018110203 |+----+--------+------------+rows in set (0.02 sec)mysql> select from testdb29.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110204 ||  1 | steven | 2018110204 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb30.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110205 ||  1 | steven | 2018110205 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb31.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110206 ||  1 | steven | 2018110206 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb32.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110207 ||  1 | steven | 2018110207 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb33.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110208 ||  1 | steven | 2018110208 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb34.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110209 ||  1 | steven | 2018110209 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb35.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110210 ||  1 | steven | 2018110210 |+----+--------+------------+rows in set (0.00 sec)mysql> select from testdb36.user07;+----+--------+------------+| id | name   | adddate    |+----+--------+------------+|  1 | steven | 2018110211 ||  1 | steven | 2018110211 |+----+--------+------------+rows in set (0.00 sec)

72条记录,按照时间先后顺序分布在36个分片中,验证完毕。


标签:分库,name,database,--,adddate,09,+----+--------+------------+,steven,user07
来源: https://blog.51cto.com/u_12592884/2697496

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有