标签:数据库集群 top vim line 安装 不同 目录 alt 防火墙
Mycat是一款面向企业级应用的开源数据库中间件产品。
在数据库集群环境下,对多个数据源进行统一的协调、调度。
让我们程序员更加专注于业务的开发。
(1)下载Mycat,并上传到linux服务器(不限定那一台主机),下载地址:http://dl.mycat.io
(2)解压到/usr/local目录下
tar zxvf Mycat-server-1.6.5-release-20171228230037-linux.tar.gz -C /usr/local/
逻辑库:虚拟的数据库,用来对外配置dataSource;
逻辑表:虚拟的数据库表格,用来合并分散在各个数据库中的表格数据;
节 点:每个单独的数据库称为一个节点。
修改schema.xml文件,vi /mycat/conf/schema.xml
修改schema.xml文件,vi /mycat/conf/schema.xml
编辑server.xml文件,指定访问逻辑库的用户名密码
vi /mycat/conf/server.xml
执行命令 ./mycat/bin/mycat start,启动mycat
使用在server.xml中配置的用户连接,默认端口8066。(注意防火墙)
(1)在mycat中创建逻辑表;
(2)在db1、db2、db3中分别插入数据;
(3)在mycat中查询逻辑表,观察分散的数据是否合并显示。
[root@node8 logs]# vim /etc/hosts
说明:修改hosts文件,指定当前的主机名,映射到当前服务器的ip即可。
说明:Mycat默认情况下,关闭了读写分离。
开启方式:修改<dataHost>节点的balance属性,修改为3
注意:balance值的具体含义:
通过Mycat查询数据的时候,mycat会将分散在各个真实数据库中的数据合并,保证查询结果的安全性、准确性;那么,通过Mycat向数据库插入数据的时候,插入的数据到底保存在哪一个数据库中呢?
Mycat分片策略能解决这个问题。
在schema.xml中指定逻辑表时,逻辑表有type、rule这两个属性:
type指定表的类型:全局表|普通表(默认)
rule指定分片规则:插入的数据按照规则插入对应的数据库。
type属性默认为普通表,当指定type=”global”时:
(1)该表在所有的db上保存的数据一致,即新插入的数据会保存到所有的数据库中。
(2)rule规则失效。
逻辑表的rule属性,指定分片规则;分片规则定义在/conf/rule.xml中。
根据指定字段的范围分片。schema.xml
Rule.xml
/conf/autopartition-long.txt
说明:
(1)、0表示第一个db节点,依次类推;
(2)、根据id值的范围,存到对应的db节点上。
(3)、也可以根据其它的字段来分片。
枚举法:
根据指定字段的值,依次将数据保存到对应的db节点上。
/conf/rule.xml
/conf/partition-hash-int.txt
说明:
(1)0表示第一个db节点;
(2)指定字段的值为10000时,这条数据会插入到0这个节点上;
(3)适合将不同类别的数据,存储到不同的数据库中。
hash-int算法其它属性:type|defaultNode
适用场景:按某个字段的值做分类存储。
取余数法:
说明:
(1)id对节点数量取模,如:1%3=1, 2%3=2, 3%3=0;
(2)0表示第一个db节点,依次类推。
一致性hash算法
月份分片法:
标签:数据库集群 top vim line 安装 不同 目录 alt 防火墙
原文地址:https://www.cnblogs.com/yangweiyong/p/10859397.html