A.普通的主从复制――――客户端通过master对数据库进行读/写操作,Slave端作为备机,可用来进行一些查询,备份等操作。
优点:部署简单,易于扩展,能提供一定的数据保护。
缺点:如果master主机硬件故障且无法恢复,则可能造成部分未传送到Slave端的数据丢失;如果master端需要进行某些维护操作,将slave临时作为master提供服务之后,又需要重新搭建主从环境,会对master造成一定的性能影响。
B.双主复制――――两个 mysql server互相将对方作为自己的master,自己作为对方的Slave来进行复制,一端提供写服务,另一端读服务或者仅仅作为备机不用提供任何服务,而且其还能够跟一个或者多个Slave专门提供读服务。
优点:最大的好处就是既可以避免主Master的写入操作不会受到Slave集群的复制所带来的影响,同时主Master需要切换的时候也基本上不会出现重搭Replication的情况。
缺点:这个架构也有一个弊端,那就是备用的Master有可能成为瓶颈,因为如果后面的Slave集群比较大的话,备用Master可能会因为过多的SlaveIO线程请求而成为瓶颈。
C.主从复制扩展:读写分离――――由一个master复制到一个或者多个Slave的架构模式,客户端通过master对数据库进行写操作,通过Slave端进行读操作,并可进行备份,master出现问题后,可以后动将应用切换到Slave端。该方案主要用于读压力比较大的应用系统中。
优点:结构灵活,数据库端廉价扩展,能够解决很多中小型网站的数据库压力瓶颈问题。