数据库水平切分(Mycat)

下载mycat,解压后操作

http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

启动mycat 执行bin目录下指令

./bin/mycat start

 查看有哪些命令可以执行

 ../bin/mycat --help

Usage: ../bin/mycat { console | start | stop | restart | status | dump }

连接mycat

mysql -uroot -123456 -h192.168.225.129 -P8066

查看docker ip

docker inspect master1 |grep IPAddress

Mysql命令 查看数据库

mysql> show databases;

Mysql命令查看数据库库表

mysql> use TESTDB;

mysql> show tables;

Mycat的端口

8066 类似于mysql 3306端口(客户端端口)

9066 Mycat 管理端口

 

Schema.xml文件

是Mycat最重要的配置文件之一。主要管理Mycat逻辑库、逻辑表、表、分片规则、Datasource。

 

Schema标签 

指定Mycat的逻辑库(mycat的Schema,可以指定多个schema)

checkSQLschema

 False 过滤schema定义。
 select * from testdb.company => select * from company;
 True  不过滤schema定义。有可能报错。

sqlMaxLimit

Limit 自动加入limit,会影响最后返回条数。例如:select * from company。

 

table标签   

制定Mycat中的逻辑表。最后要做数据分片的表。

mycat中的表,可以和实体有具体映射关系,也可以没有具体映射关系(如果没有映射关系会报错)。

2d87f976f0100fd43ae8cf0f15604872fcc.jpg

dataNode

把相应的表存到对应的DB中。

rule

分片规则。对应rule.xml中的规则。

ruleRequired 

 指定该属性的表是否需要分片规则。
 True 必须制定。如果没有制定,就会报错。

primaryKey 

如果使用非主键进行分片,那么Mycat会缓存主键和具体dataNode的信息,如果下次再使用非主键进行查询的时候,就不用广播所有dn。

autoIncrement

  Mycat根据last_insert_id()返回结果。这个需要mysql主键设置配合。

type

逻辑表的类型。普通表和全局表。

needAddLimit

是否自动在每一条SQL语句后面加上limit限制。

 

dataHost标签   

主要定义和Mysql集群有关的信息,数据实例、读写分离配置和心跳检测语句。

balance 负载均衡配置

  0 代表不开启读写分离,所有的读操作都发送到writeHost上。

  1 writeHost和readHost都要参与select语句的负载均衡。

     双主双从模式 M1->S1,  M2->S2, M1和M2互为主备。M2/S1/S2都要参与select语句的负载均衡。

  2 所有读操作都随机分配给writeHost/readHost

  3 所有的读操作随机分发到writeHost下面的readHost上执行。

writeType 

 0 所有的写操作都分发到第一个writeHost。如果第二个挂了,分发到第二个。

 1 所有的写操作都要随机分发到所有配置的writeHost上。1.5以后不推荐。

dbType

支持多种db类型。

switchType

  -1 代表不自动切换

  1 默认值,自动切换。

  2 基于Mysql主从同步的状态决定是否切换

     show slave status;

  3 基于MySQL Galera Cluster切换机制。

      show status like ‘wsrep%’;

 

Server.xml文件

主要用于管理Mycat的用户名,权限,黑白名单等等设置。这个文件主要和Mycat Server运行环境有关。

System标签

属性

说明

备注

useSqlStat

开启实时统计

1为开启,0为关闭

useGlobleTableCheck

全局表一致性检测

1为开启,0为关闭

sequnceHandlerType

Mycat全局ID类型

0本地文件方式
1数据库方式
2时间戳序列方式
3分布式ZK ID生成器
4 ZK递增ID生成

useCompression

mysql压缩协议

1为开启,0为不开启

fakeMySQLVersion

伪装的MySQL版本号

 

processorBufferChunk

每次分配Socket Direct Buffer大小

默认4096字节

processors

系统可用线程数

默认Runtime.getRuntime().availableProcessors()返回值

processorExecutor

NIOProcessor共享businessExecutor线程池大小

 

processorBufferPoolType

每次分配Socket Direct Buffer大小

默认是4096个字节

maxStringLiteralLength

sql解析时最大文本长度

默认是65535(即64K)

backSocketNoDelay

TCP连接相关属性

默认值1

frontSocketNoDelay

TCP连接相关属性

默认值1

serverPort

指定服务端口

默认8066

managerPort

制定管理端口

默认9066

idleTimeout

连接空闲时间

默认30分钟,单位毫秒

bindIp

Mycat服务监听的IP地址

 

frontWriteQueueSize

前端连接写队列长度

为了让用户知道是否队列过长(SQL结果集返回太多)。当超过指定阀值后,会产生一个告警日志

handleDistributedTransactions

分布式事务开关

0不过滤分布式事务
1过滤分布式事务
2不过滤分布式事务但记录分布式事务日志

useOffHeapForMerge

是否让Mycat开启非堆内存

1 开启,0关闭

memoryPageSize

内存分页大小

 

useStreamOutput

是否使用流输出

 

systemReserveMemorySize

系统保留内存大小

 

useZKSwitch

是否采用zookeeper协调切换

true/false

Privileges标签

  控制DML:insert update select delete

  单独给select权限:0010

  单独给insert权限:1000

Firewall标签

  定义访问控制策略:如白名单/黑名单

User标签

  定义可访问mycat的用户名称/密码/是否只读

 

rule.xml文件

定义分片规则策略文件。

tableRule标签

  定义table分片策略

rule标签

  策略定义标签

columns

  对应的分片字段

algorithm标签

  tableRule分片策略对应的function名称

function标签

  定义分片函数

 

 

转载于:https://my.oschina.net/u/3728166/blog/1925994

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值