mysql多主多从架构与mysql-proxy读写分离

最近心血来潮想要部署几台mysql的服务器,实现一个多主多从的服务器架构,并且要在这个架构上利用mysql-proxy实现读写分离操作,之前只是搭建过一主多从的架构,原本以为多主多从的架构也会非常简单,但是过程中还是发现了一些比较有意思的地方,所以我决定还是写一篇博客来记录一下。

下面是我的mysql多主多从架构拓扑图:

主从结构以及IP地址已经很明显,接下来我说说我的配置,以及在我搭建过程中遇到的一些比较有意思的问题。

互为主从结构只不过是在master1于master2上互相设置主服务器为对方:

本机登录master1的数据库:

mysql > changemaster to \

-> master_host=’10.60.77.207’ ,\

->master_user=’slaveuser’, \

->master_password=’123456’, \

->master_log_file=’mysqld-bin.000001’, \

->masetr_log_pos=243;

此处有一个问题,每一条配置后面都要有一个英文逗号作为分隔,如果不写或者写成别的符号会报错。记得有一次在配置的过程中我就没写逗号,然后一直报错,后来反复检查发现这个逗号是必不可少的。

至于两台从服务器配置与我上述博客中的配置完全相同,配置完成后开启主从服务,正式开始测试阶段,就是在这个时候,开始出现问题,我的测试过程如下:

先在master1上创建一个新的数据库,然后,在slave1上和master上查看,此时数据是正常的。但是在slave2上查看的时候我发现slave2并没有将该数据库同步过来。发现这个问题之后,我就去master2上新建一个数据库,和我猜想的一样,除了slave1以外的主机都可以正常同步。

这个问题很值得思考,为什么会有这样的结果,后来经过思考、询问大牛等发现,这个机制其实就类似于某些路由选择协议中的放环机制,防止sql语句在各台设备中出现回环。

同时,在大牛的帮助下,找到了实现上述架构的配置选项。当你需要链式复制的时候,如A->B->C,你就必须在B主机上的mysql中添加一条配置:

log_slave_updates,此配置允许链式复制。

在本文的架构中,master1和master2的mysql配置文件中的[mysqld]部分中添加上述配置,然后重启两台服务器的mysql服务。这次再测试一下发现,所有的机器上都可以正常同步了。

上述问题是在搭建主从结构的时候遇到的一个问题,接下来,我在搭建mysql-proxy的时候无意中又发现了一个问题,注意,上述测试过程中,我第一次在master1和master2分别创建的测试数据库在slave2和slave1上是没有同步到的,也就是我在搭建mysql-proxy服务的时候,在slave1和slave2上数据库其实是不同的。

关于使用mysql-proxy搭建读写分离的实验可以参考我的博客http://www.voidcn.com/article/p-wwefoxvb-py.html,此次我发现的问题不在服务的配置上。

在我测试的过程中,我连接mysql-proxy读取数据,发现我此时查看到的数据库是slave1和slave2上的数据的和,也就是slave1和slave2上面所有的数据库我都能看到。这也就意味着,mysql-proxy在分配读写请求的时候并不是按照负载均衡的方式来分配读写的,而是请求会同时分配到两台主机上,两台主机同时响应该请求。

这个问题的发现使我对我这个小架构有了一个新的认识,原来我设计这个架构的初衷是为了提供一个负载均衡的效果,现在看来使用mysql-proxy并不能实现负载均衡,倒是可以提高系统的性能,因为这相当于两台机器合成成了一台服务器在提供服务嘛。

这篇博客可能技术含量不大,但是这些问题的确是我在工作中摸索出来的经验,所以我还是决定把这些记录下来,作为我给人的一个技术积累,欢迎各位看官给我留言,也请大神不要喷我。

我们都是手艺人,运维也是一种手艺,是一门艺术,我爱这一行,我爱我的工作。

mysql proxy 多主_mysql多主多从架构与mysql-proxy读写分离相关推荐

  1. mysql 双从性能_MySQL双主一致性架构优化

    转自:MySQL双主一致性架构优化 - osc_avwazwuz的个人空间 - OSCHINA​my.oschina.net 一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离 ...

  2. mysql双主数据一致性_MySQL双主一致性架构优化 | 架构师之路-阿里云开发者社区...

    一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分离的方式来扩充数据库的读性能,保证读库的高可用,但此时写库仍然是单点. 在一个MySQL数据库集群中可以设置两个主库,并设置双向 ...

  3. mysql双主数据一致性_mysql双主复制的主备数据一致性知多少

    展开全部 为提高MySQL服务器32313133353236313431303231363533e58685e5aeb931333337376331提供数据服务的可用性和可靠性,实际生产环境中,大量使 ...

  4. MySQL延时更改数据_mysql数据库备份设置延时备份方法(mysql主从配置)

    一 为什么需要延时备份 percona-xtrabackup是一个优秀的用于增量备份的工具.今天我们讲到的延时备份也是使用他们的产品. 以前在MySQL AB复制一文中提到了AB复制.我们首先回顾下M ...

  5. 企业常用mysql集群软件_mysql企业常用集群架构

    转自 https://blog.csdn.net/kingice1014/article/details/76020061 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般 ...

  6. mysql 4 基础教程_MySQL基础教程(四):MySQL 管理

    通过以下命令来检查 MySQL 服务器是否启动 ps-ef|grep mysql 例如在我的苹果电脑上运行如下 [root@localhost~]# ps -ef | grep mysqlmysql1 ...

  7. mysql c 中文字符串_MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法...

    开源数据库MySQL从来都是中小企业构建web应用的首选,特别是和PHP配合简直就是一 对黄金搭档,深受web开发人员的喜爱.但自从4.1以来MySQL加入了多字符集的支持,很多MySQL使用者发现中 ...

  8. mysql 事务 注意 优化_MySQL入门详解(二)---mysql事务、锁、以及优化

    MySQL 事务主要用于处理操作量大,复杂度高的数据.比如说,在一个商城系统中,用户执行购买操作,那么用户订单中应该加一条,库存要减一条,如果这两步由于意外只进行了其中一步那么就会发生很大的问题.而事 ...

  9. linux mysql多实例启动_Mysql实例Linux下启动多个mysql服务器例子

    <Mysql实例Linux下启动多个mysql服务器例子>要点: 本文介绍了Mysql实例Linux下启动多个mysql服务器例子,希望对您有用.如果有疑问,可以联系我们. MYSQL教程 ...

最新文章

  1. linux学习--shell重定向
  2. MNE-Python专辑 | MNE-Python详细安装与使用(更新)
  3. 2022-03-22
  4. 常用的渗透测试工具SQLMap
  5. Win32ASM学习[8]: 进制转换的库函数
  6. 数据库管理工具:如何使用 Navicat Premium 转储(导出)和运行(导入)*.sql 文件?
  7. 介绍一个Spring Cloud分布式微服务架构图
  8. 制作U盘启动的并可保持更改更新和设置的BT4最终版完全手册
  9. mysql连接教程_MySQL 连接
  10. paip.提升用户体验----gcc c++ JIT-debugging 技术
  11. vtkdelaunay3d的参数设置_VTK 渲染体数据并加方位标注
  12. 樽海鞘算法(Salp Swarm Algorithm: SSA)
  13. nuxt 低版本浏览器不兼容处理
  14. weight和weightSum的区别
  15. 怎么提供电子邮件副本_停止提供您的电话号码和电子邮件
  16. 我选择了IT,我会用最大的热诚进军IT大技术!
  17. Huffman树(哈夫曼树)
  18. java类型的数组初始化_java数组初始化详解
  19. C++线程编程-设计无锁的并发数据结构
  20. matplotlib中关于极坐标轴的控制

热门文章

  1. 【Python】【Python库】Python3.7.2 - 字符串str类 (1)
  2. 物体非等比缩放后的法线处理
  3. poi导出word时替换的段落内容会多出一个}和逗号_办公族必备11个Word文字处理技巧,太实用了!...
  4. 新电脑怎么分盘_电脑如何分盘及删除与合并04
  5. Markdown: Basics (快速入门)
  6. 工作于内存和文件之间的页缓存, Page Cache, the Affair Between Memory and Files
  7. 独立游戏[永夜仙境]4人团虚幻4开发经验
  8. Android NDK开发之旅25 NDK 模仿QQ变声特效
  9. 求到所有房子距离和最小的新房子
  10. 图(网)的存储结构(数组存储表示即邻接矩阵、邻接表)