今天突然同学,来问我MySQL满足老大需求,从几个点来列出合适需求的方案。

嗯,今天是这样的想法,以后期待,思想能又更深一步的提升。



 15:12:28
游剑侠 2015/11/6 15:12:28

我们老大想提的需求是 我们两台MySQL服务器要对外一个VIP提供服务,内部分别为MySQL主从,主库写从库读 如果主库出问题或者宕机,从库自动能切换替换主库角色,不手动干预 考虑数据库数据丢失情况
用中方案比较好

游剑侠 2015/11/6 15:12:43

旭东给个建议
15:39:15
昨天,我做了一个梦 2015/11/6 15:39:15

首先,你们领导是个逗逼。OK,咱们给他方案。
1 首先对你们的产品架构,有个基础的认识。       (你们MySQL,是否基于是否,是否进行写 写 写,在提交.设计后端session问题,考虑现有架构,是否有负载设备。以及负载设备能提供的高可靠性!)
2 要实现对外VIP访问  2 高可用,宕机 从库提权  (这是两个需求,那么咱们用多实例,解决领导的愿望,嗯,是愿望,我们后面来说,它的风险,把风险值 列出来)

你应该先跟你们领导把MySQL 是什么讲一讲:官方解答:存储数据的容器! 数据库的数据是企业的重中之重,如果领导让你玩,数据库。
多外VIP 写 数据库:首先 数据的写入一致性。1 可以让它写入两次 : MHA MMM官方提供集群的方式 2 主主方式,另一个数据库会自动同步 这种方式遗留的问题是:id 差集。
现在流行的做法是是:Mycat    如果你能搞定,并要维护这款产品的高可用,高可靠,所以这条方案,我建议是pass的。
站在用户的角度 跟你们现有产品的角度上来看,写入的延迟性 会增大,如果数据量很大的话,是个可以考虑的解决方案。

你另一个需求是 发现主库宕机,从库自动切换:那么解决方案:任何产品也好 实现这个 发现宕机的问题,都不是太好,跨出数据库层考虑问题,如果监控设备延迟导致 未能发现主库存活,将导致一次切换。那么你 在站在全局思考,程序层有SQL在写入,那么这条SQL还是会中断。程序层 要增加一个重试 的功能!
#################################################################
所以不能站在有2台MySQL的角度,考虑这个问题。1 买机器 2 损耗用户的访问性能,以及数据库的可用性 解决这个需求
2选1!!!!!!!!!!!!!!
1 增加1台 机器,满足VIP 还要内部 主从。  双主+1从  双主keep+LVS 实现VIP。从库做备份 以及给开发查询语句。
2 每台机器做双实例。  2台物理主机:其中一台 A B实例  另一台C D实例  A C 主主  B D 分别为 A C的从库(交叉)。

接下来,你要考虑 这4个实例的配置,从库的性能给第一点,主库的性能给高一点,基于功能分配他们的buffer等等 占用CPU i/o 内存资源的参数。