9 - 数据分片概述|部署MyCat服务

数据库系列文章

1 - 数据库服务概述 | 构建MySQL服务 | 数据库基本管理 | MySQL基本类型
2 - 表结构 | MySQL键值
3 - 字段约束|MySQL索引|MySQL用户管理
4 - 基础查询进阶|连接查询
5 - 视图|存储过程
6 - 数据备份与恢复|innobackupex
7 - MySQL主从同步|主从同步模式
8 - MySQL数据读写分离|MySQL多实例
9 - 数据分片概述|部署MyCat服务
10 - MHA集群概述|部署MHA集群
11 - PXC集群|MySQL存储引擎

数据分片概述

将存放在一台数据库服务器中的数据,按照特定的方式进行拆分,分散存放到多台数据库服务器中,以达到分散单台服务器的负载的效果

分库分表分割方式

水平分割(横向切分)

按照表中指定的字段的分片规则,将表记录按行切分,分散存储到多个数据库中

垂直分割(纵向切分)

单个库的多个表按业务类型分类,分散存储到不同的数据库
在这里插入图片描述

提供分库分表存储服务软件(中间件)MyCAT软件

基于java的分布式数据库系统中间件,为高并发环境的分布式存储提供解决方案

  • 适合大量写入的存储需求
  • 支持Mysql、Oracle
  • 提供数据读写分离服务
  • 提供数据分片服务
    分片规则
    在这里插入图片描述

分片服务器的工作过程

在这里插入图片描述
在这里插入图片描述

部署MyCat服务

重新创建3台数据库服务器 ip地址 53、54、55
56主机不需要运行数据库服务。使用50主机做客户端
在这里插入图片描述

第一步 安装软件

# JDK一定要和mycat版本一致
yum -y install java-1.8.0-openjdk.x86_64
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710.. # 免安装 解压即可使用
mv mycat /usr/local/
ls /usr/local/mycat/
	bin catlet conf lib logs version.txt

第二步 了解安装目录文件列表

  • bin mycat命令
  • catlet 扩展功能
  • conf 配置文件 .txt 和 …properties 结尾的是分片规则配置文件 .xml结尾的是mycat服务配置文件
  • lib mycat使用的jar包
  • logs mycat启动日志和运行日志
  • version.txt mycat软件

第三步 修改配置文件

xml 扩展标记语言 的特点 : 标签要成对出现 要有开始和结束(分为单标签和双标签)
注释符号:

# 首先定义客户端连接mycat 使用的用户名、密码机虚拟库名
vim /usr/local/mycat/conf/server.xml	

在这里插入图片描述

# 定义分片存储数据的表
sed -i '56,77d' /usr/local/mycat/conf/schema.xml # 删掉注释的行
sed -i '39,42d' /usr/local/mycat/conf/schema.xml # 删掉注释的行
vim /usr/local/mycat/conf/schema.xml
<mycat:schema>
	# 定义库下表名
	<schema>
		<table /># 定义表名 单标签
		<table>
		</table> # 双标签
	</schema>
	# 指定数据库服务器主机名
	<dataNode .../> # 有几个服务器写几个
 	# 指定服务器的ip地址
 	<dataHost>...</dataHost>
</mycat:schema>

在这里插入图片描述
节点 dataNode 加上第三台服务器 dn3
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制两个 搞三个
用户名 密码都得改一下
在这里插入图片描述

第四步 配置数据库服务器

在这里插入图片描述

第五步 启动mycat服务,并查看服务状态
把56主机的物理内存调大到1G以上
给mycat服务器定义主机名 (hostname mycat56)不要用localhost
测试数据库服务器的授权用户
启动mycat服务

/usr/local/mycat/bin/mycat start

在这里插入图片描述

排错

方法 :查看mycat服务的日志文件

]# ls /usr/local/mycat/logs/
mycat.log  记录连接mysql服务信息文件
mycat.pid 保存mycat服务进程的pid号
wrapper.log 记录服务的启动信息(排错的日志内容)

# 在第一个终端动态查看日志内容 tail -f /usr/local/mycat/logs/wrapper.log # 动态显示启动信息

第六步 分片规则的使用

第一个是 枚举分片规则的使用 sharding-by-intfile
工作过程 字段值 必须在列举范围内选择
在这里插入图片描述

在这里插入图片描述

第二个是 求莫法分片规则的使用 mod-long
工作过程:根据字段值与设定的数值求模结果存储数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

建表存储数据的步骤
连接mycat服务器

host50 ~]# mysql -h192.168.4.56 -P8066 -uroot -p123456
mysql> show dababase;

在这里插入图片描述
都是假表 需要自己建表
在这里插入图片描述

创建表:根据表使用的分片规则建表
在这里插入图片描述

第七步 添加新库新表

在56主机添加新库 GAMEDB 新表名 user和salary
在schema.xml文件里 表名必须唯一 不可以重复
在这里插入图片描述

在这里插入图片描述

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值