MySQL主从复制

时间:2021-12-13 17:12:02

Mysql主从复制介绍

  MySQL支持单向、双向、链式级联、实时、异步复制。在复制过程中,一台服务器充当服务器(Master),而一个或多个其它的服务器充当从服务器(Slave)。

  复制可以是单向:M==>S,也可以是双向M<==>M,也可以多M环状同步等。

  如果设置了链式级联复制,那么,从(slave)服务器本身除了充当从服务器外,也会同时充当其下面从服务器的主服务器。

  链式级复制类似A--B--C-->D的复制形式。

1、单向主从同步逻辑图:

MySQL主从复制

2、双向主主同步逻辑图:

MySQL主从复制

3、线性级联单向双主同步逻辑图:

MySQL主从复制

4、环状级联单向多主同步逻辑图:

MySQL主从复制

5、环状级联单向多主多从同步逻辑图:

MySQL主从复制

MySQL主从复制的应用场景

  MySQL主从复制有利于数据库架构的健壮性、提升访问速度和易于维护管理。

1、主从服务器互为备份

  主从服务器架构的设置,可以大大的加强数据库架构的健壮性。例如:当主服务器出现问题时。我们可以人工或自动切换到从服务器继续提供服务。

2、主从服务器读写分离分担网站压力

  主从服务器架构可通过程序(php,java)或代理软件(mysql-proxy,amoeba)对用户(客户端)的请求实现读写分离,即通过在从服务器上仅仅处理用户的select查询请求,降低用户查询相应时间及读写同时在主服务器带来的压力。对于更新的数据(update,insert,delete)仍然交给主服务器处理,确保主服务器和从服务器保持实时同步。

  如果网站是以非更新(以浏览器为主)为主的业务,如blog,www首页展示等业务,查询请求比较多,这时从服务器的读写分离负载均衡策略就很有效了,这就是读写分离数据库结构。

  • 如何实现MySQl主从读写分离

  1、通过程序实现读写分离(性能,效率最佳,推荐)

  php和java程序都可以通过设置多个连接文件轻松的实现对数据库的读写分离,即当select时,就去连接读库的连接文件,当update,insert,delete时就连接写库的连接文件。

  2、通过软件实现读写分离

  MySQL-proxy,Amoeba等代理软件也可以实现读写分离功能,但最常用好用的还是程序实现读写分离。