Mysql主从复制介绍

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

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

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

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

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

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

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

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

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

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等代理软件也可以实现读写分离功能,但最常用好用的还是程序实现读写分离。

 

MySQL主从复制的更多相关文章

  1. MySQL主从复制(Master-Slave)实践

    MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展.多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能. 下图就描述了一个多个数 ...

  2. 2.快速部署MySQL主从复制

      1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...

  3. MySQL 主从复制与读写分离概念及架构分析

    1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的33 ...

  4. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  5. mysql主从复制实现数据库同步

    mysql主从复制相信已经用得很多了,但是由于工作原因一直没怎么用过.趁着这段时间相对空闲,也就自己实现一遍.尽管互联网上已有大把类似的文章,但是自身实现的仍然值得记录. 环境: 主服务器:cento ...

  6. mysql主从复制配置

    使用mysql主从复制的好处有: 1.采用主从服务器这种架构,稳定性得以提升.如果主服务器发生故障,我们可以使用从服务器来提供服务. 2.在主从服务器上分开处理用户的请求,可以提升数据处理效率. 3. ...

  7. 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构

    一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...

  8. Mysql主从复制,读写分离(mysql-proxy),双主结构完整构建过程

    下面介绍MySQL主从复制,读写分离,双主结构完整构建过程,不涉及过多理论,只有实验和配置的过程. Mysql主从复制(转载请注明出处,博文地址:) 原理是master将改变记录到二进制日志(bina ...

  9. MySQL主从复制中常见的3个错误及填坑方案

    一.问题描述 主从复制错误一直是MySQL DBA一直填不完的坑,如鲠在喉,也有人说mysql主从复制不稳定云云,其实MySQL复制比我们想象中要坚强得多,而绝大部分DBA却认为只要跳过错误继续复制就 ...

随机推荐

  1. .Net环境下的缓存技术介绍 (转)

    .Net环境下的缓存技术介绍 (转) 摘要:介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页) 1         概念 ...

  2. Java GC系列

    一个国外站点的Java JVM调优系列 下面是国内站点翻译的 http://www.importnew.com/1993.html

  3. [LeetCode] Implement Queue using Stacks 用栈来实现队列

    Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...

  4. tensorflow学习笔记二:入门基础

    TensorFlow用张量这种数据结构来表示所有的数据.用一阶张量来表示向量,如:v = [1.2, 2.3, 3.5] ,如二阶张量表示矩阵,如:m = [[1, 2, 3], [4, 5, 6], ...

  5. IT培训行业揭秘(四)

    IT培训班的老师前面已经说过,很多都是从一线程序员岗位转过来的,因为培训行业的收入整体上来看还是比作普通程序员要高一些,这是市场的普遍行情.还有一部分老师从培训班学习过并且留到培训班任教的.一般这种老 ...

  6. UISearchController 的用法[点击搜索框,自动到顶部]

    //在ViewDidLoad里面如下代码 self.searchViewController = [[UISearchController alloc]initWithSearchResultsCon ...

  7. javascript随机打乱数组

    var arr=[]; ;i<;i++){ arr[i]=i; } arr.sort(function(){ return 0.5 - Math.random() }) var str=arr. ...

  8. jQuery—常用操作

    一.jquery各版本变化 1.3:增加live(),为当前和将来增加的元素绑定事件 1.4:增加delegate().undelegate(),替代live(),可以遍历绑定 1.6:2个破坏性变更 ...

  9. 基于Dubbo框架构建分布式服务(二)

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> ...

  10. 以最简单方式学习Linux

    有很多关于Linux的书籍,博客.大多数都会比较"粗暴"的将一大堆的命令塞给读者,从而使很多.NET程序员望而却步.未入其门就路过了. 所以我设想用一种更为平滑的学习方式, 就是在 ...