1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > mysql分区表mycat_MySQL 中间件之Mycat垂直分表配置

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

时间:2024-07-24 08:25:28

相关推荐

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

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

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

当前环境:

mycat --> db01与db02

db01 --> db03

db02 --> db04

当前垂直分表架构:

后端数据库创建表:

在数据节点 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 |

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。