1.数据复制的作用
通过数据库的复制策略,可以将一个Mysql数据库服务器中的数据复制到其他Mysql数据库服务器中上,当各台数据库服务器上的数据都相同时,就可以将前端的请求分配到mysql集群中任意一台数据库服务器中,都可以读取到相同的数据,这样每台Mysql服务器需要承担的负载就会大大降低,从而提高整个系统的承载能力,达到系统扩展的目的。
2.Mysql数据复制的机制
(1)开启Master服务器的binary log
(2)数据复制的过程就是Slave从Master获取biary log,然后再在本地镜像的执行日志中记录的过程。复制过程是异步的,Master和Slave之间的数据有可能存在延迟的现象,但是可以保证最终一致性。
(3)Master用于写入数据,数据的更新通过binary log同步到slave中。Slave负责处理数据的读取请求,分担了数据的读的压力。同时读写分离可以保证数据的最终一致性。
3.Master-Slave的问题及Mater-Mater架构
(1)Master-Slave的问题在于一旦发生Master的单点故障,Mater宕机或停机时,系统将无法写入数据,直到Master恢复,这是无法接收的。
(2)Mater-Master架构,即两台Mysql服务器互相将对方做为自己的Master,自己做为对方的Slave。这样当任意一方数据发生变化时,都会通过数据复制同步到另外一台服务器上。通常情况下,为了避免数据不一致现象我们只会开启一台Master的写入,另一台Master仅仅做为Stand By,或者做为读库开放,这样避免写入的冲突,防止数据不一致现象的发生。