MySQL -分表分库 -运维

本文详细介绍了MySQL分库分表的策略,包括垂直和水平拆分,并重点讲解了MyCat的配置与使用,涵盖schema.xml、rule.xml、server.xml的配置,以及MyCat分片规则和管理监控,包括Zookeeper和Mycat-web的安装与配置。
摘要由CSDN通过智能技术生成

一介绍

1、问题分析

2、拆分策略

2.1 垂直拆分:

①垂直分库:以表为依据,根据业务将不同的表拆分到不同库中

②垂直分表:以字段为依据,根据字段属性将不同字段拆分到不同表中

2.2 水平拆分:

①水平分库以字段为依据,按照一定的策略,将一个库的数据拆分到多个表中。

②水平分表:以字段为依据,按照一定策略,将一个表的数据拆分到多个表中。

3、实现技术

二、MyCat概述

1、介绍

将lib中的mysql-connector-java-xxx.jar更换为对应的版本如:mysql-connector-java-8.0.22.jar

2、概念

三、MyCat入门

                         schema.xml

                                                 server.xml

启动

 mysql -h 192.168.200.101 -P 8066 -u root -pXXX

四、MyCat配置

1、schema.xml

①schema标签

②dataNode标签

③dateHost标签

2、rule.xml

 3、server.xml

属性取值含义
charsetutf8设置Mycat的字符集, 字符集需要与MySQL的字符集保持一致
nonePasswordLogin0,10为需要密码登陆、1为不需要密码登陆 ,默认为0,设置为1则需要指定默认账户
useHandshakeV100,1使用该选项主要的目的是为了能够兼容高版本的jdbc驱动, 是否采用HandshakeV10Packet来与client进行通信, 1:是, 0:否
useSqlStat0,1开启SQL实时统计, 1 为开启 , 0 为关闭 ; 开启之后, MyCat会自动统计SQL语句的执行情况 ; mysql -h 127.0.0.1 -P 9066 -u root -p 查看MyCat执行的SQL, 执行效率比较低的SQL , SQL的整体执行情况、读写比例等 ; show @@sql ; show @@sql.slow ; show @@sql.sum ;
useGlobleTableCheck0,1是否开启全局表的一致性检测。1为开启 ,0为关闭 。
sqlExecuteTimeout1000SQL语句执行的超时时间 , 单位为 s ;
sequnceHandlerType0,1,2用来指定Mycat全局序列类型,0 为本地文件,1 为数据库方式,2 为时间戳列方式,默认使用本地文件方式,文件方式主要用于测试
sequnceHandlerPattern正则表达式必须带有MYCATSEQ或者 mycatseq进入序列匹配流程 注意MYCATSEQ_有空格的情况
subqueryRelationshipChecktrue,false子查询中存在关联查询的情况下,检查关联字段中是否有分片字段 .默认 false
useCompression0,1开启mysql压缩协议 , 0 : 关闭, 1 : 开启
fakeMySQLVersion5.5,5.6设置模拟的MySQL版本号
defaultSqlParser由于MyCat的最初版本使用了FoundationDB的SQL解析器, 在MyCat1.3后增加了Druid解析器, 所以要设置defaultSqlParser属性来指定默认的解析器; 解析器有两个 : druidparser 和 fdbparser, 在MyCat1.4之后,默认是druidparser, fdbparser已经废除了
processors1,2....指定系统可用的线程数量, 默认值为CPU核心 x 每个核心运行线程数量; processors 会影响processorBufferPool, processorBufferLocalPercent, processorExecutor属性, 所有, 在性能调优时, 可以适当地修改processors值
processorBufferChunk指定每次分配Socket Direct Buffer默认值为4096字节, 也会影响BufferPool长度, 如果一次性获取字节过多而导致buffer不够用, 则会出现警告, 可以调大该值
processorExecutor指定NIOProcessor上共享 businessExecutor固定线程池的大小; MyCat把异步任务交给 businessExecutor线程池中, 在新版本的MyCat中这个连接池使用频次不高, 可以适当地把该值调小
packetHeaderSize指定MySQL协议中的报文头长度, 默认4个字节
maxPacketSize指定MySQL协议可以携带的数据最大大小, 默认值为16M
idleTimeout30指定连接的空闲时间的超时长度;如果超时,将关闭资源并回收, 默认30分钟
txIsolation1,2,3,4初始化前端连接的事务隔离级别,默认为 REPEATED_READ , 对应数字为3 READ_UNCOMMITED=1; READ_COMMITTED=2; REPEATED_READ=3; SERIALIZABLE=4;
sqlExecuteTimeout300执行SQL的超时时间, 如果SQL语句执行超时,将关闭连接; 默认300秒;
serverPort8066定义MyCat的使用端口, 默认8066
managerPort9066

定义MyCat的管理端口, 默认9066

 

增改查删

五、MyCat分片

1、垂直拆分

1.1 全局表配置

2、水平拆分

 

3、分片规则

① 范围

②取模

③一致性hash

④枚举

⑤应用指定

⑥固定分片hash算法

⑦字符串hash解析

⑧按(天)日期分片

⑨自然月

六、MyCat管理及监控

1、MyCat原理

2、MyCat管理

3、MyCat-eye

 

3.1安装Zookeeper

A. 上传安装包

zookeeper-3.4.6.tar.gz

B. 解压

tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/

C. 创建数据存放目录

cd /usr/local/zookeeper-3.4.6/

mkdir data

D. 修改配置文件名称并配置

cd conf

mv zoo_sample.cfg zoo.cfg

E. 配置数据存放目录

dataDir=/usr/local/zookeeper-3.4.6/data

 

F. 启动Zookeeper

bin/zkServer.sh start

bin/zkServer.sh status

3.2 安装Mycat-web

A. 上传安装包

Mycat-web.tar.gz

B. 解压

tar -zxvf Mycat-web.tar.gz -C /usr/local/

C. 目录介绍

etc ----> jetty配置文件

lib ----> 依赖jar包

mycat-web ----> mycat-web项目

readme.txt

start.jar ----> 启动jar

start.sh ----> linux启动脚本

D. 启动

sh start.sh

E. 访问

192.168.200.101:8082/mycat/

备注:

如果Zookeeper与Mycat-web不在同一台服务器上 , 需要设置Zookeeper的地址 ; 在/usr/local/mycat-web/mycat-web/WEB-INF/classes/mycat.properties文件中配置 :

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值