数据库高可用技术选型

1、关于MySQL-HA,目前有多种解决方案,比如heartbeat、drbd、mmm、共享存储,但是它们各有优缺点。heartbeat、drbd配置较为复杂,需要自己写脚本才能实现MySQL自动切换;对于mmm,mmm 管理端需要单独运行一台服务器上,要是想实现高可用,就得对mmm管理端做HA,这样无疑又增加了硬件开支;

2、采用zookeeper 进行监控,需要对agent进行改造,不符合现有需求的应用场景

3、使用MySQL master-slave replication+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换。

4、采用keepalived 的优点:对现有框架不产生影响,主要工作集中在运维;行业内普遍采用方式;对于master-master replication 完美契合;工作量少,主要为配置权限,修改配置文件;通过配置文件可以任意更改数据库压力;不增加硬件成本,在安装mysql的机器上安装keepalived即可。缺点也很明显:增加了运维成本,需要更改配置文件;尽管在单个master宕机后,能够及时切换,但是由于mysql 采用异步更新的方式,不能保证数据百分之百一致。

5、针对现有需求,即为用户提供原生的mysql应用环境,且默认单一备份的数据库备份设计,采用keepalived来实现mysql HA 是很好的解决方案。

6、主要参考文章如下:

www.keepalived.org/pdf/UserGuide.pdf

利用keepalived构建高可用MySQL-HA_知识库_博客园

Linux下keepalived+mysql实现高可用 - 杜云龙 - 51CTO技术博客

综上所述,采用配置mysql master-slave replication方式,并通过添加插件的方式使用官方推荐的semi-synchronous replication 方式,牺牲响应时间,保证数据的一致性,利用keepalived 提供虚拟ip以及故障转移。

你可能感兴趣的:(数据库高可用技术选型)