mysql分区表mycat_MySQL 中间件之Mycat垂直分表配置

垂直分表就是将一个库下的多个表拆分到多个MySQL实例,实现库压力分流。

通过GTID模式复制,db01与db02之间不进行任何连接与复制

当前环境:

mycat --> db01与db02

db01 --> db03

db02 --> db04

当前垂直分表架构:

359201486ff04b6a0ccdedcad63642ee.png

后端数据库创建表:

在数据节点 1 创建 temp_1表 ,在数据节点 2 创建 temp_2表

[root@db01 ~]# mysql -uroot -p -e "create table course.temp_1(id int,name varchar(64));"

Enter password:

[root@db02 ~]# mysql -uroot -p -e "create table course.temp_2(id int,name varchar(64));"

Enter password:

Mycat配置分表:

[root@db-mycat conf]# cat schema.xml

# 在schema标签下定义table标签,指定 temp_1表在 dn1数据节点中 # 在schema标签下定义table标签,指定 temp_2表在 dn2数据节点中

# 定义 dn1数据节点

# 定义 dn2数据节点

# 定义 node1数据组主机

select user()

# 定义 node2数据组主机

select user()

重启Mycat服务:

mycat restart

查看数据节点状态:

db01与db03是一组数据库实例,db02与db04是一组数据库实例

[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P9066 -e "show @@datasource;"

Enter password:

+----------+------+-------+-------------+------+------+--------+------+------+---------+-----------+------------+

| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |

+----------+------+-------+-------------+------+------+--------+------+------+---------+-----------+------------+

| dn1 | db01 | mysql | 172.18.1.76 | 3306 | W | 0 | 10 | 1000 | 85 | 0 | 0 |

| dn1 | db03 | mysql | 172.18.1.78 | 3306 | R | 0 | 7 | 1000 | 86 | 5 | 0 |

| dn2 | db02 | mysql | 172.18.1.77 | 3306 | W | 0 | 10 | 1000 | 85 | 0 | 0 |

| dn2 | db04 | mysql | 172.18.1.79 | 3306 | R | 0 | 7 | 1000 | 82 | 1 | 0 |

+----------+------+-------+-------------+------+------+--------+------+------+---------+-----------+------------+

查看Mycat中间件所有表:

可以看到 Mycat中间件可以在 course库下看到 两张表

已经实现 垂直分表效果

[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "use course; show tables;"

Enter password:

+------------------+

| Tables_in_course |

+------------------+

| temp_1 |

| temp_2 |

+------------------+

# 通过 Mycat中间件插入两条数据到 temp_1 temp_2 表内

[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "insert into course.temp_1 values(1,'aa');"

Enter password:

[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "insert into course.temp_2 values(2,'bb');"

Enter password:

# 通过 Mycat中间件查看被垂直分表的

[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "use course; select * from temp_1;"

Enter password:

+------+------+

| id | name |

+------+------+

| 1 | aa |

+------+------+

[root@db-mycat conf]# mysql -uroot -p -h172.18.1.100 -P8066 -e "use course; select * from temp_2;"

Enter password:

+------+------+

| id | name |

+------+------+

| 2 | bb |

+------+------+

查看后端真实数据库表:

可以看到每个数据库实例组 course库下只有一张表。

同时通过 Mycat插入的数据也被分别分流到了两个数据节点 dn1 、 dn2

# dn1 数据节点

[root@db01 ~]# mysql -uroot -p -e "use course; show tables;"

Enter password:

+------------------+

| Tables_in_course |

+------------------+

| temp_1 |

+------------------+

[root@db01 ~]# mysql -uroot -p -e "use course; select * from temp_1;"

Enter password:

+------+------+

| id | name |

+------+------+

| 1 | aa |

+------+------+

# dn2 数据节点

[root@db02 ~]# mysql -uroot -p -e "use course; show tables;"

Enter password:

+------------------+

| Tables_in_course |

+------------------+

| temp_2 |

+------------------+

[root@db02 ~]# mysql -uroot -p -e "use course; select * from temp_2;"

Enter password:

+------+------+

| id | name |

+------+------+

| 2 | bb |

+------+------+

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

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

相关文章

Oracle Stream配置详细步骤

Oracle Stream配置详细步骤 作者: 杨宝秋,  出处:IT168 1 引言 Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。Oracle Stream利用高级队列技术,通过解析归档日志,将归档日…

字符设备驱动高级篇2——注册字符设备驱动的函数代码分析

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、旧接口register_chrdev()函数 上文说到,旧接口register_chrdev()函数内部同时完成了设备号的分配与驱动的注册,现在我们来分析是否真的如此。 1、函数的调用层次关系 …

LR学习视频

0 性能测试常见用语http://www.boobooke.com/v/bbk15771 lr目录分析http://www.boobooke.com/v/bbk15742.1 lr界面分析http://www.boobooke.com/v/bbk17352.2 lr界面分析http://www.boobooke.com/v/bbk17362.3 lr界面分析http://www.boobooke.com/v/bbk17373 lr常用术语http://…

深入浅出mysql gtid_深入理解MySQL GTID

GTID的概念何为GITDGTID(global transaction identifier)是全局事务标识符,在MySQL5.6版本中作为一个超级特性被推出。事务标识不仅对于Master(起源)的服务器来说是惟一的,而且在整个复制拓扑架构来说,也是全局唯一的。1.GTID的格式GTID sou…

winform 64位系统中使用

WINFOR编译成X86的 转载于:https://blog.51cto.com/agilitygod/1419939

字符设备驱动高级篇3——自动创建设备文件

以下内容源于朱有鹏嵌入式课程学习与整理,如有侵权请告知删除。 问题引入 之前在应用层测试驱动源程序时,需要先安装驱动模块,安装驱动模块后会得到一个主设备号,然后在命令行利用mknod命令“mknod /dev/xxx c 主设备号 次设备号”…

long 转为string_面试必问 Redis数据结构底层原理String、List篇

点击关注上方“Java大厂面试官”,第一时间送达技术干货。阅读文本大概需要 8 分钟。前言今天来整理学习下Redis有哪些常用数据结构,都是怎么使用的呢?首先看下全局存储结构。全局存储结构基础你们肯定都知道,redis支持的基础数据结…

wpf 3D学习

最近在看一些关于wpf 3d的效果,研究了一些代码特效,现在和广大博友共享一下. 首先用到的是MeshGeometry3D,msdn上介绍:用于生成三维形状的三角形基元。主要有4个依赖属性:NormalsProperty,PositionsPropert…

字符设备驱动高级篇4——自动创建设备文件的函数代码分析

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、概述 设备文件的创建,主要涉及class_create()函数、device_create()函数。 class_create()函数用于自动创建 /sys/class/目录下的xxx目录。 device_create()函数用于自动创建 /dev/…

unicode字符、python乱码问题

http://www.cnblogs.com/BeginMan/archive/2013/08/08/3246619.html#a1 Python常见常用知识点http://blog.csdn.net/tingsking18/article/details/4033645 Unicode和Python的中文处理如何让Python的Unicode字符串支持中文?要想利用Python的Unicode机制处理字符串&…

win10下如何安装vb6.0sp6_Mac如何安装win10系统?Parallels Desktop 15 Mac安装win10系统教程...

Parallels Desktop 15 mac版是mac上非常强大也非常好用的虚拟机软件,最新版本的parallels desktop mac 15针对最新的Windows 10更新和macOS Catalina(10.15)进行了优化。今天分享的内容就是Parallels Desktop 15 mac版如何安装win10系统。PD虚…

android面试题精选

1.android dvm 的进程和Linux的进程,应用程序的进程是否为同一个概念: 答:dvm是dalivk虚拟机。每一个android应用程序都在自己的进程中运行,都拥有一个dalivk虚拟机实例。而每一个dvm都是在linux的一个进程。所以说可以认为是同一…

字符设备驱动高级篇5——静态映射表的建立过程,动态映射结构体方式操作寄存器

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 补充内容:字符设备驱动基础5——驱动如何操控硬件_天糊土的博客-CSDN博客 一、静态映射表的建立过程 关于“静态映射表的建立”这部分内容,有以下三个关键: &…

python 分布图_python数据分布型图表柱形分布图系列带误差线的柱形图

柱形分布图系列柱形分布图系列使用柱形图的方式展示数据的分布规律;可以借助误差线或散点图;带误差线的柱形图就是使用每个类别的均值作为柱形的高度;再根据每个类别的标准差绘制误差线;缺点:无法显示数据的分布情况&a…

[汇编] 002基础知识-CPU和寄存器

CPU是什么 当然这里的内存不仅仅指电脑上的内存,例如:我的金士顿8G内存,七彩虹1G独显,在这里来说,显卡也是有内存的(寄存器) CPU如何控制其它部件的? 问题:CPU是如何和电脑主机中其它芯片有条不…

Asp.net中页面传值几种方式

页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值、存储对象传值、ajax、类、model、表单等。但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer。  …

字符设备驱动高级篇6——内核提供的读写寄存器接口

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 1、访问寄存器的方式 之前对寄存器的操作,都是先定义指向寄存器的指针,然后再解引用来对寄存器进行操作。这是因为ARM体系中,内存和IO是统一编址的。但是其他体系…

java台球游戏设计原理_Java实现简单台球游戏

Java实现简单台球桌问题,供大家参考,具体内容如下需求:使小球可以在桌面上移动,移动到桌面边缘将被弹回,显示小区的移动素材:小球照片桌球照片程序源代码:package 桌球游戏;import java.awt.*;i…

wordpress教程:默认http头信息X-Pingback的隐藏与修改

利用站长工具的http状态查询工具查询可以看到类似如下的一段http HEAD信息 X-Pingback: http://www.kristain.com/wordpress真实路径/xmlrpc.php 其实这样就已经暴露了wordpress网站的真实路径了,那么如何来隐藏wordpress默认http HEAD信息中的X-Pingback信息呢&…

关于java assertion

大部分转载自参考资料:http://www.ibm.com/developerworks/cn/java/l-javaassertion/index.html assertion(断言)在软件开发中是一种常用的调试方式,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序…