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

news2025/1/13 15:55:46

数据分片概述|部署MyCat服务|测试配置

  • 数据分片概述
    • 分库分表分割方式
      • 水平分割(横向切分)
      • 垂直分割(纵向切分)
    • 提供分库分表存储服务软件(中间件)MyCAT软件
    • 分片服务器的工作过程
  • 部署MyCat服务
    • 第一步 安装软件
    • 第二步 了解安装目录文件列表
    • 第三步 修改配置文件
    • 第四步 配置数据库服务器
    • 排错
    • 第六步 分片规则的使用
    • 第七步 添加新库新表

数据分片概述

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

分库分表分割方式

水平分割(横向切分)

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

垂直分割(纵向切分)

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

提供分库分表存储服务软件(中间件)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文件里 表名必须唯一 不可以重复
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1385692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于电源完整性的一些PCB设计建议

基于电源完整性的一些PCB设计建议 1. 尽量减少电源和地通路之间的环路电感&#xff0c;在相邻的层上分配电源和接地面时&#xff0c;使用尽可能薄的电介质&#xff1b; 2. 通过在平面之间使用尽可能高的介电常数来获得平面之间的最低阻抗&#xff0c;与尽可能薄的介电常数设计…

基于springboot的流浪动物救助管理系统

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一 、设计说明 1.1研究背景 随着…

Netty-初探

引言 最近开始学习网络编程这一块&#xff0c;特此总结 直接内存为什么比堆内内存要快&#xff1f; JVM在发送堆内数据给远程时&#xff0c;首先会把这部分数据复制到堆外的一块内存空间&#xff08;防止GC过程中文件引用地址发生变化带来的问题&#xff09;&#xff0c;然后…

陪诊小程序开发|陪诊软件定制|陪诊系统成品功能包含哪些?

陪诊小程序是一种便捷的工具&#xff0c;为用户提供一系列服务和功能&#xff0c;方便患者在就医过程中获得更好的体验和效果。接下来我们将介绍几个主要的陪诊小程序功能。 陪诊小程序开发功能&#xff1a; 一、预约挂号功能。陪诊小程序能够连接用户和医疗机构的系统&#x…

扩散模型微调方法/文献综述

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

SMD NTC Thermistor NTC热敏电阻产品基本参数定义

热敏电阻器&#xff08;Thermistor&#xff09;是一种电阻值对温度极为灵敏的半导体元件&#xff0c;温度系数可分为Positive Temperature Coefficient 正温度系数热敏电阻又称PTC热敏电阻和Negative Temperature Coefficient 负温度系数热敏电阻又称NTC热敏电阻. NTC热敏电…

基于YOLOv8深度学习的苹果叶片病害智能诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

外汇天眼:不仅骗钱还骗感情?小心这类骗子盯上你

什么是外汇“杀猪盘”骗局&#xff1f;通俗一点来说就是骗子利用社交平台或者网站&#xff0c;伪造虚假的人设和故事&#xff0c;然后诱导网友进入虚假的外汇平台进行投资交易。随着现代网络科技的发展&#xff0c;各种交友软件可以说是层出不穷&#xff0c;虽然给人们提供了更…

智慧公厕:引领城市卫生管理新时代

在智慧城市建设中&#xff0c;智慧公厕作为城市环境卫生信息化的重要组成部分&#xff0c;扮演着关键角色。它不仅可以提升城市管理水平&#xff0c;满足人民群众的需求&#xff0c;还能提高公厕使用体验和城市环境卫生水平。如广州中期科技有限公司自主研发的智慧公厕管理系统…

Type Script 安装 NPM 安装

使用终端命令 npm -v 这里需要使用到npm npm node.js安装包自带 去官网 Node.js — Download下载对应版本安装 1.npm config set registry https://registry.npmmirror.com 2.npm install -g typescript error: npm notice npm notice New minor version of npm availab…

SpringBoot+Vue实现对称加密和非对称加密

我们先来了解一下什么是对称加密和非对称加密&#xff0c;以及两者的优缺点 对称加密 使用同一个密钥对消息进行加密解密 优点&#xff1a;加密和解密的速度快&#xff0c;适合于数据量大的加解密 缺点&#xff1a;密钥在网络传输中可能被泄露&#xff0c;因此安全性相对较低…

arcgis javascript api4.x以basetilelayer方式加载天地图web墨卡托(wkid:3857)坐标系

需求&#xff1a; arcgis javascript api4.x以basetilelayer方式加载天地图web墨卡托&#xff08;wkid&#xff1a;3857&#xff09;坐标系 效果图&#xff1a; 代码&#xff1a; 提示&#xff1a; 2个文件放同一个文件夹下 MyCustomTileLayer.js define([exports, "…

手把手教你学会接口自动化系列十一-将用例写在json中,持久化管理起来下

上一篇我写了登录&#xff0c;我们发现json还是没有什么大问题&#xff0c;还蛮好用的&#xff0c;但是我们再写下一个&#xff0c;比如线索新建接口的时候&#xff0c;我们写着写着会发现问题&#xff1a; 我们写获取url的没有问题&#xff0c;代码如下&#xff1a; # !/usr…

uniapp中uview组件库丰富的ActionSheet 操作菜单使用方法

目录 #平台差异说明 #基本使用 #配置顶部的提示信息和底部取消按钮 #如何知道点了第几项 #API #Props #Event 本组件用于从底部弹出一个操作菜单&#xff0c;供用户选择并返回结果。 本组件功能类似于uni的uni.showActionSheetAPI&#xff0c;配置更加灵活&#xff0c;所…

vue:使用【3.0】:拖拽数据

1、参考链接&#xff1a;vue.draggable中文文档 - itxst.com 2、想要实现的效果图&#xff1a;红框内容可以拖拽 3、安装 yarn add vuedraggablenext npm i -S vuedraggablenext 4、代码 <template><draggable:list"columns"ghost-class"ghost&qu…

手把收来教大家win10电脑分辨率怎么调

win10系统操作界面和方式和win7系统有很大不同&#xff0c;有些用户想要设置屏幕的分辨率&#xff0c;但是却不知道应该怎么操作&#xff1f;屏幕分辨率会影响我们使用电脑的视觉效果&#xff0c;经常使用电脑的朋友通常都会设置一个合适的分辨率。下面小编来教大家win10电脑分…

webpack的性能优化(一)——分包优化

1.什么是分包&#xff1f;为什么要分包&#xff1f; 默认情况下&#xff0c;Webpack 会将所有代码构建成一个单独的包&#xff0c;这在小型项目通常不会有明显的性能问题&#xff0c;但伴随着项目的推进&#xff0c;包体积逐步增长可能会导致应用的响应耗时越来越长。归根结底这…

什么是google算法?

谷歌算法本身指的是谷歌针对搜索引擎做的规定 要想在别人的地盘玩&#xff0c;那肯定要了解这个地盘的规定&#xff0c;不然做了什么违反了规定&#xff0c;谷歌肯定不会让你继续玩下去 要想做谷歌&#xff0c;那肯定要了解谷歌的算法&#xff0c;然而谷歌的算法也不是一成不变…

代码随想录 Leetcode202. 快乐数

题目&#xff1a; 代码(首刷自解 2024年1月15日&#xff09;&#xff1a; class Solution { public:bool isHappy(int n) {unordered_set<int> hash;while(n ! 1) {int sum 0;while(n/10 ! 0) {sum (n % 10)*(n % 10);n/10;}sum n*n;if (hash.find(sum) ! hash.end()…

SQL备忘--集合运算

前言 本文讨论的是两个子查询结果的合并问题&#xff0c; 是行维度下的合并处理 例如子查询A查出5条记录、子查询B查出3条记录&#xff0c;那么将两个结果合并&#xff0c;则共返回8条记录 行维度上要能进行合并&#xff0c;前置要求是&#xff1a;子查询的列字段是相同的&…