雄关漫道真如铁,而今迈步从头越。
全部博文(348)
分类: Mysql/postgreSQL
2016-02-12 22:57:15
玩MySQL的同学都知道,其风靡与互联网行业,集群架构琳琅满目,不像商业数据库那样架构选择不需要花费太多的精力。任何东西都具有两面性,MySQL架构的灵活性也带来了诸多烦恼,即当我们在面多如此之多的MySQL集群架构时,我们又该做如何选择?随之而来的另一个问题大多数MySQL集群Share Nothing的设计思路无法保证当主库挂掉时接管的数据库100%的保证数据不丢失。
由于公司的业务性质需求,我们公司要求在引入MySQL数据库时需要保证在发生灾难四整个数据库集群100%的不丢失数据,所以才有了本文的内容~同时也鉴于此,笔者设计了三个免费的不丢数据的方案,以飨格外读者,如有不到之处,请各位指点~~
方案一、多主同步复制PXC方案
PXC即Percona Xtradb Cluster,它采用Galera引擎,可以实现多个节点间的数据同步复制以及读写并且可保障数据库的服务高可用及数据一致性。架构如下图所示:
一、PXC的优点
1.数据同步复制
2.多个可同时读写节点,但需要事先进行分库分表,让各节点分别写不同的表或者库
3.可以保证数据严格一致性
4.适合读多写少的业务系统
二、PXC的缺点
1.不支持XA事务、只支持InnoDB引擎、所有表都要有主键、不允许大事务产生
2.集群吞吐量/性能取决于响应最慢的节点
3.不支持LOCK TABLE等显式的锁操作
4.存在写冲突,锁冲突、死锁问题较多,不能解决热点更新问题,可扩展性差
5.需要引入多个第三方插件,集成复杂度高
6.不支持夸数据中心多活
方案二、主从复制MHA改进方案
MHA是一个高可用管理工具,目的在于维持Master主库的高可用性及数据的一致性。其最大特点是可以修复多个Slave之间的差异日志,最终使所有Slave保持数据一致,然后从中选择一个Slave数据库作为新的Master,并将其它Slave指向它。其 架构如下:
一、MHA的优点
1.自动监控Master故障转移、故障后节点之间的数据同步
2.不会有性能损耗,适用于任何存储引擎
3.具备自动数据补偿能力,在主库异常崩溃时利用Binlog共享存储保证数据的一致性
4.可实现同城应用级双活
二、MHA的缺点
1.切换时间较长,整个切换时间大约需要5s至9s
方案三、高可用HA方案
利用传统IT技术解决数据库单点问题的思路使用共享存储来避免主库单点及数据不一致等问题。架构设计如下:
一、A架构的优点
1.配置管理简单、不需要第三方插件
2.保证了数据的一致性
二、HA架构的缺点
1.切换时间较长,在主库故障