mysql proxy 分库分表_OneProxy实现MySQL分库分表

简介

Part1:写在最前

随着网站的壮大,MySQL数据库架构一般会经历一个过程:

37defde30a74c95a1abb89c55ea2e9d5.png

当我们数据量比较小的时候,一台单实例数据库足矣。等我们数据量增大的时候,我们会采用一主多从的数据库架构来降低我们的读写io。当我们某张业务表达到几百万上千万甚至上亿时,就应该去进行分表处理。本文演示OneProxy对数据库实现分表处理,对前端应用是透明的。

Part2:环境简介

HE1:192.168.1.248 Master1

HE3:192.168.1.250 Master2

HE4:192.168.1.251 Oneproxy

环境构建

Part1:安装Oneproxy

Oneproxy的安装不是本文讲述的重点,需要的可移步至

Part2:proxy.cnf

proxy.cnf文件是oneproxy的主要参数配置文件,新版的oneproxy对整个目录进行了重新的划分,配置文件都放在了conf目录里

Part3:part.txt

part.txt文件是分区策略配置文件,在本博文中,采取hash分区来进行简单演示

实战

Part1:启动OneProxy

Part2:监控页面

我这里是两台Master

0b66851fa31c81776b415e99bcc0bc97.png

Part3:创建相关表

登录oneproxy管理库创建表

Part4:插入数据

校验

Part1:校验oneproxy表内容

这里可以看到虚拟表helei中已经具有刚刚插入的内容;

Part2:校验Master1中的内容

Part3:校验Master2中的内容

注意

Warning:警告1

不支持预编译语句 PreparedStatement,不支持Bind、Execute调用接口。

Warning:警告2

不支持使用use命令来切换后端数据库,use命令可执行,但其含义是切换到不同的MySQL主备集群,OneProxy在支持分库分表功能后,就将一个主备集群视为一个数据库了,链接Oneproxy时如果指定了数据库名,则需替换成Server Group的名字。

Warning:警告3

禁止使用set命令,任何set命令都会直接返回成功,而不做任何处理。

Warning:警告4

默认禁止CALL、PREPARE、EXECUTE、DEALLOCATE命令,不支持存储过程和函数。

Warning:警告5

OneProxy支持master进行故障转移切换,但建议采用流行的高可用方案MHA实现。故障切换后,OneProxy可以自动识别哪台机器是master。另外,架构必须是一主带N从,不能是双主带N从。

——总结——

至此,OneProxy对MySQL的分库分表测试完成,对于前端应用而言,表名是透明的。无需变更代码。

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值