本人不是mysql砖家,只是普通的管理员,本着对事物的完美追求,最大限度地保障系统的安全和稳定,从数据完整和服务持续性考虑,和大家分享下,我目前采用的方案。


    mysqldump可以实现完全备份,但要锁表,mysqlbinlog可以实现某故障点之前的恢复。第三方工具xtrabackup可以实现完全备份和增量备份,是在线热备工具(innodb行锁不影响读写,myisam只读锁,影响写)。可以结合mysqlbinlog和xtrabackup实现灵活完善的备份方案。

    

    mysql高可用,采用lvs+mha实现,1主2从的架构;mha监控这三台数据库的主从和是否可用状态。当主数据库发生故障,mha会监控节点,自动切换到指定的从数据库;指定的从数据库变成主,主变成指定故障切换的从。故障切换过程中,mha会做一系列动作,避免复制和一致性问题,从而保证数据的完整性。此架构没有做读写分离,读写负担都在主数据库上面,从只是起到高可用和数据备份的作用。结合lvs的keepalive可以实现在访问ip不变的情况下,做无缝切换。对于用户来说,虽然主数据库已经发生故障,但访问的ip没变,在后台已经从主数据库,切换到指定从,整个过程只要3-7秒的时间。


    如果结合奇虎的atlas实现主从读写分离,1主写,多从读,将是一个支持高性能高并发高可用,数据完整的mysql经典架构。  


转载~~~~  http://lipengfei666666.blog.51cto.com/6384154/1613937