一、MHA
1、工作原理
由管理端定时探测主从结构中的master,当master故障时,管理机会自动将拥有最新数据的从提升为主。至少有一主一从,MHA才能正常工作。
2、为什么会造成最后一次数据丢失
因为主从同步binlog日志是有一定时间间隔的,所以在主故障时,最后一次的binlog日志从可能没有同步上。而MHA会尝试将主的binlog日志进行保存,同步到从上面,此时如果主服务器硬件换了,导致无法ssh,这样最后一次的数据就丢失了。
3、特点
技术成熟稳定,30秒之内完成故障切换,并保证数据尽可能不丢失。
二、PXC
1、工作原理
任意节点收到sql请求,对于dml更新操作事物,在commit之前,由wsrep API调用galera库进行集群内部广播,验证当前事物是否能在所有节点中执行,验证通过后该事物真正提交到集群所有节点执行,反之roll back回滚。此验证机制是为了保证所有节点的数据一致性。
2、特点
数据强一致性,无同步延迟
没有主从切换操作,无需使用虚拟IP
支持节点自动加入,无需手动拷贝数据
三、PXC和MHA的区别
1、MHA由于有主从切换,故需要使用VIP以及故障切换脚本,而PXC不用
2、MHA只会对主进行监视,而不管从,而PXC每一台服务器都相当于是主,PXC可靠性更高。
3、MHA新节点加入时还须手动拷贝数据,而PXC支持自动加入