mysql双活实现方法思路是什么?

如题,既然要做双活,数据必须要保持一致性,那可以不可以理解为一主一从?跟着我的理解走,对外提供VIP地址的话,用户读写可不可以做个读写分离?实现分流?出现故障vip能及时飘到slave上面,那么slave的一些配置要发生改变,读写分离也就无法正常运行,全部负载都到slave上,无人值守的情况下怎么实现?

参与14

3同行回答

冯帅冯帅数据库管理员贝壳金服
mysql双活跟你说的有点区别就是,你说可能是单个数据中心的模式,如果做双活,肯定是多个数据中心的,还有就是,至于流量的切换可以在应用层这边做分流,至于你说的无人值守,其实在双活的理论上是不需要的,一个数据中心全都出问题,所有的流量走另外的数据中心...显示全部

mysql双活跟你说的有点区别就是,你说可能是单个数据中心的模式,如果做双活,肯定是多个数据中心的,还有就是,至于流量的切换可以在应用层这边做分流,至于你说的无人值守,其实在双活的理论上是不需要的,一个数据中心全都出问题,所有的流量走另外的数据中心

收起
融资租赁 · 2017-10-20
浏览3936
杰杰杰 邀答
baizhaoxianbaizhaoxian联盟成员容灾备份管理工程师
双主结构配合keepalived解决MySQL主从结构中主库的单点故障;同时通过具体的查询语句提供更细粒度、更为真实的关于主库可用性的判断。基本思路:    将DB1和DB2做成主动被动模式的双主结构:DB1主动、DB2被动,通过keepalived的VIP对外,将VIP设置成原DB1的IP,保证改造过程对代...显示全部

双主结构配合keepalived解决MySQL主从结构中主库的单点故障;同时通过具体的查询语句提供更细粒度、更为真实的关于主库可用性的判断。
基本思路:
    将DB1和DB2做成主动被动模式的双主结构:DB1主动、DB2被动,通过keepalived的VIP对外,将VIP设置成原DB1的IP,保证改造过程对代码透明
关于“数据一致性”和“切换时间”:
连续两次失败以后,通过对主MySQL设置read_only属性,同时kill掉用户线程来保证在DB2接管服务之前,DB1上已经没有写操作,避免主从数据不一致。并且切换时间基本上是可确定的:
 30s(两次检测间隔)+2s(等待kill命令时间)+约1s(keepalived 切换VIP),总时间不会超过35s
希望有帮助,谢谢

收起
互联网服务 · 2017-10-20
浏览3830
杰杰杰 邀答
iamkuboyiamkuboy数据库运维工程师北京
我觉得你的问题有些混乱,题目是双活,实际问的是读写分离。读写分离这个主题的其他文章由比较详细的阐述,不过多赘述。对于实现,我提供一个思路:是用中间件透明的进行读写分离,比如开源的MyCAT。它的功能就是实现SQL语句的按规则路由,并且在配置中可以定义备用写节点,当MyCAT判断...显示全部

我觉得你的问题有些混乱,题目是双活,实际问的是读写分离。
读写分离这个主题的其他文章由比较详细的阐述,不过多赘述。
对于实现,我提供一个思路:是用中间件透明的进行读写分离,比如开源的MyCAT。
它的功能就是实现SQL语句的按规则路由,并且在配置中可以定义备用写节点,当MyCAT判断主库挂掉的时候,自动把DML路由到备用写节点。
不过这种情景下,MyCAT只是路由DML,不能切换主从身份。切换主从身份还是需要mha或者手动的方式实现。

收起
零售/批发 · 2017-10-20
浏览3891

提问者

杰杰杰
系统运维工程师XX网
擅长领域: 虚拟化数据库

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-10-20
  • 关注会员:4 人
  • 问题浏览:7315
  • 最近回答:2017-10-20
  • X社区推广