寻找适合你的MySQL高可用解决方案


    需要MySQL高可用吗?

    问题似乎很明显,但是有时却忽略了。实际上这是一个投入和产出的问题,投入越大,你获得数据安全性就越高,所以这个问题可以归结为”你的服务器宕机成本是多少?“,如果你的宕机成本小于$10/hour,那基本上你不需要高可用方案了,So,不用浪费时间看下文了。

    如何确定哪种高可用方案对你最好?

    当前,MySQL高可用有下面几种,从简单到非常复杂,我们排列一下MySQL replication with manual failoverMaster-Master with MMM managerHeartbeat/SANHeartbeat/DRBDNDB Cluster

    就目前为止,可能不是上面的某一个方案就能完全适合你,大部分情况下是多种方案联合起来。要选择上面哪种方案,其实还是取决于你的对宕机时间的容忍,越复杂的方案,宕机时间越短,但是成本也就越高,需要仔细计算你的预算。

    1.你需要哪个级别的HA?

    所有的技术都不能保证100%的系统有效,同样,不同的技术提供的系统有效级别也不同。因此第一个重要的考虑因素便是有效级别,下面有一个对各种解决方案提供的有效级别评估表

 有效级别宕机时间( per year)
Simple replication98 to 99%3天15小时 ~ 7天
Master-Master with MMM manager99%3天15小时
Heartbeat/SAN (depends on SAN)99.5% to 99.9%43.8小时 ~ 8.8小时
Heartbeat/DRBD99.9%8.8小时
NDB Cluster99.999%5分钟

    根据上表,如果你的要求是99.99%,那么你可能只能选择NDB Cluster了,但是你只是要求99%,那选择范围就宽了很多。实际上,评估使用哪个有效级别还是很难的,需要仔细思辩。

    2.能承受数据丢失吗?

    显然,相对有效级别而言,可能你更关心数据的安全,你很可能使用innoDB存储引擎,因为MyISAM缺乏事务交易,而且不同步数据到磁盘。同样的,MySQL replication 采取异步处理,尽管它在master和slave之间传输数据非常快,但是仍然有丢失数据的机会。如果你能承受数据丢失,那么,你可以考虑“MySQL replication” 和“Master-Master with MMM manager”,否则,你就只能考虑别的方案了。

    

 数据100%安全
MySQL replication
Master-Master with MMM manager
Heartbeat/SAN (depends on SAN)
Heartbeat/DRBD
NDB Cluster

    3.你的应用程序仅用到了MyISAM特性吗?

    包括全文索引,GIS索引在内的特性仅被MyISAM支持。“MySQL replication”和”Master-Master with MMM manager”解决方案对MyISAM支持的非常好。取决于你的应用程序,MyISAM全文索引可以被另外的搜索引擎替代,比如Sphinx替代,这样可以打破只能使用MyISAM存储引擎的限制。对于GIS索引,目前还没有替代的方案。

    

 HA 解决方案

    

需要MyISAM全文索引或GIS索引“MySQL replication” 和 “Master-Master with MMM manager”
不使用任何MyISAM特性所有
可以用Sphinx替换MyISAM的全文索引所有

    4.什么是写负载

    上述的HA解决方案在写负载方面并不相同。因为复制(replication)实现的原因,slave上仅有一个线程能处理写操作。如果复制主机(master)是多核CPU,而且有使用多线程的写操作,那么slave就可能无法和master保持一致。如果使用Linux下的共享存储模拟DRBD,大致能较低30%的写负载(严重依赖硬件条件),在写能力方面,你可以参考下面的表格

    

 写能力
MySQL replication正常
Master-Master with MMM manager正常
Heartbeat/SAN (depends on SAN)优秀
Heartbeat/DRBD
NDB Cluster优秀

    5.为什么样的增长度做计划

    因为NDB Cluster是一个集成的共享环境(将数据库分隔到多台服务器上),如果你需要这个功能,你可以认真考虑这个方案,否则,除去写能力外,其他方案大致相等。

    6.职员或者技术支持公司水平如何

    有效级别和解决方案的复杂度有着直接的正比关系。为了达到期望的有效级别,内部或者外部维护HA配置的职员,就必须具备同等的能力和经验,参考下表:

    

 专业级别
MySQL replication一般 MySQL DBA 水平,加上一些系统管理能力
Master-Master with MMM manager较好的MySQL DBA 水平,加上较好的系统管理能力
Heartbeat/SAN (depends on SAN)较高的MySQL DBA 水平,较强的系统管理能力
Heartbeat/DRBD较高的MySQL DBA 水平,较强的系统管理能力
NDB Cluster对NDB知识非常了解,很高的MySQL以及系统管理技能

    7.你有多少米米

    最有一个需要考虑的问题便是预算了,复杂意味着昂贵。我们考虑项目的两个阶段。第一个是基本测试,也就是方案论证,包括硬件测试,数据导入,基本测试和文档化。另外一个阶段就是迁移到生产线,包括多方面测试,消防预演,完整的文档,监控,报警,备份,迁移,迁移后监控等。当然,这是迁移HA解决方案到产品线最安全的做法。下表是基于行业一般水平制的两个阶段需要的时间,考虑到一些非预计问题,所有时间都留有余地

    

 概念认证迁移到生产线
MySQL replication4小时12小时
Master-Master with MMM manager8小时24小时
Heartbeat/SAN (depends on SAN)32小时120小时
Heartbeat/DRBD40小时120小时
NDB Cluster40小时120+ 小时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值