主从复制解决方案:这是MySQL自身提供的一种高可用解决方案,数据同步方法采用的是MySQL replication技术。MySQL replication就是从服务器到主服务器拉取二进制日志文件,而后再将日志文件解析成相应的SQL在从服务器上从新执行一遍主服务器的操做,经过这种方式保证数据的一致性。为了达到更高的可用性,在实际的应用环境中,通常都是采用MySQL replication技术配合高可用集群软件keepalived来实现自动failover,这种方式能够实现95.000%的SLA。java
MMM/MHA高可用解决方案:MMM提供了MySQL主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件。在MMM高可用方案中,典型的应用是双主多从架构,经过MySQL replication技术能够实现两个服务器互为主从,且在任什么时候候只有一个节点能够被写入,避免了多点写入的数据冲突。同时,当可写的主节点故障时,MMM套件能够马上监控到,而后将服务自动切换到另外一个主节点,继续提供服务,从而实现MySQL的高可用。mysql
Heartbeat/SAN高可用解决方案:在这个方案中,处理failover的方式是高可用集群软件Heartbeat,它监控和管理各个节点间链接的网络,并监控集群服务,当节点出现故障或者服务不可用时,自动在其余节点启动集群服务。在数据共享方面,经过SAN(Storage Area Network)存储来共享数据,这种方案能够实现99.990%的SLA。sql
Heartbeat/DRBD高可用解决方案:此方案处理failover的方式上依旧采用Heartbeat,不一样的是,在数据共享方面,采用了基于块级别的数据同步软件DRBD来实现。DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。和SAN网络不一样,它并不共享存储,而是经过服务器之间的网络复制数据。数据库
NDB CLUSTER:国内用NDB集群的公司很是少,貌似有些银行有用。NDB集群不须要依赖第三方组件,所有都使用官方组件,能保证数据的一致性,某个数据节点挂掉,其余数据节点依然能够提供服务,管理节点须要作冗余以防挂掉。缺点是:管理和配置都很复杂,并且某些SQL语句例如join语句须要避免。服务器
使用第三方的Tungsten软件:使用java编写,不是MYSQL内置的,一样是MYSQL数据库复制,不过他不是用MYSQL内置的组件来作的,不但支持MYSQL数据库复制也支持异构数据库的复制,并且对异构数据库复制支持较好,例如MYSQL复制到ORACLE。网络