MySQL学习笔记(五)扩展性设计之Replication

转载 2012年03月27日 10:58:28

MySQL学习笔记(五)扩展性设计之Replication

1.Replication的意义

首先,我们需要清楚一个数据库据系统的扩展性实际上是主要体现在两个方面,一个是横向扩展,另一个则是纵向扩展,也就是我们常说的Scale Out 和Scale Up。

Scale Out 就是指横向的扩展,向外扩展,也就是通过增加处理节点的方式来提高整体处理能力,说的更实际一点就是通过增加机器来增加整体的处理能力。
Scale Up 则是指纵向的扩展,向上扩展,也就是通过增加当前处理节点的处理能力来提高整体的处理能力,说白了就是通过升级现有服务器的配置,如增加内存,增加CPU,增加存储系统的硬件配置,或者是直接更换为处理能力更强的服务器和更为高端的存储系统。

Replication可以将一台MySQL中的数据完整的复制到多台MySQL主机上面去,而且这样的复制延时还不长,这样数据访问就分散到多台主机上面,这样访问集群中的任何一台机器就可以取到数据了。

2.Replication机制的实现原理

MySQL的Replication过程是一个异步过程,从一个MySQL的instance(Master)复制到另一个MySQL(Slave),实现整个复制过程需要通过三个线程来完成,其中两个是SQL线程和IO线程,在Slave端,另外一个是IO线程在Master端。

要实现Replication,必须打开Master端的Binary Log,因为整个复制过程就是Slave从Master端获取日志,然后根据日志信息,执行相应的操作。

MySQL的复制过程如下:

1.Slave上面的IO线程连接上Master,然后请求从指定日志位置读取日志;

2.Master端收到请求后,通过负责复制的IO线程读取指定的日志,返回给Slave端的IO线程;

3.Slave端IO线程接收的信息后,将日志内容写入reply log中

4.Slave端的SQL线程发现replay log发生变化后,解析log,然后执行sql

复制的实现级别包括:

1.Row Level:每一行数据发生修改,然后下slave进行相应的修改。(缺点是alter,update语句的执行)

2.Statement Level:每一条修改数据的Query都会被放到Binary Log中,Slave在复制的时候就会执行这些Query进行同步。(缺点,记录上下文信息,新功能加入)

3.Mix

3.常用架构

1.常规Master-Slave

2.Dua Master(Master-Master)

3.级联复制(Master - Slaves - Slaves)

4.Dual Master 与级联复制结合架构(Master - Master - Slaves)


新型领导设计模式—设计可扩展性的业务架构

新型领导设计模式—设计可扩展性的业务架构开闭原则是软件设计最重要的原则之一,设计具有良好可扩展性的业务架构极其依赖该原则。业务品种在增多,已有业务自身也在发展,需要设计一套统一,灵活,互相独立的业务架...
  • kimylrong
  • kimylrong
  • 2015年07月29日 11:41
  • 3123

Mysql学习笔记(一)(有点乱,但是知识点比较齐全)新手必看。

良好的理解sql语句: 列:理解可以运算的成变量 where: 理解成表达式,放在行中看是否成立 查出来的结果可以当成一张表理解,select 套用select综合查询; ...
  • leilei107
  • leilei107
  • 2013年11月19日 17:26
  • 2394

Mysql可扩展性

复制管理 监控 SHOW MASTER LOGS; 查看主库当前有哪些二级制日志,其logname是其他命令的入参, file_size是偏移量也是入参。 假设我们知道日志的偏移量(来源于...
  • three_man
  • three_man
  • 2015年08月26日 18:15
  • 50352

MySQL Replication(Master与Slave基本原理及配置)

MySQL主从复制
  • weiwei101117
  • weiwei101117
  • 2016年07月26日 18:15
  • 569

System Design——系统设计过程(四)系统的可扩展性设计

英文原文链接:https://www.hiredintech.com/classrooms/system-design/lesson/58         https://www.hiredinte...
  • WangQYoho
  • WangQYoho
  • 2017年10月23日 15:54
  • 509

MySQL学习笔记---基础概念和一些基础SQL语句(一)

MySQL学习笔记,以防遗忘 数据库基本概念 数据库:保存有组织的数据的容器(通常是一个文件或一组文件)。 表:某种特定类型数据的结构化清单,数据库中的表都有一个唯一的名字用来标识自己。 模式:关于数...
  • Jung_zhang
  • Jung_zhang
  • 2016年04月14日 20:11
  • 1707

可扩展性设计之数据切分

前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制,一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我们还是会面临到扩展瓶颈。这时候,我们就...
  • y87329396
  • y87329396
  • 2016年04月16日 15:45
  • 733

Mysql Group Replication 简介及单主模式组复制配置

 一 Mysql Group Replication简介    Mysql Group Replication(MGR)是一个全新的高可用和高扩张的MySQL集群服务。    高...
  • anzhen0429
  • anzhen0429
  • 2017年10月20日 15:03
  • 310

yii2基础(五)

Yii中的Gii与Url处理 代码自动生成 从1.1.2版本开始,Yii包含一个代码生成工具Gii。它取代了以前的yiic shell命令行。现在我们开始描述如何使用Gii和如何扩展G...
  • CareChere
  • CareChere
  • 2016年04月26日 10:11
  • 697

MySQL Group Replication 动态添加成员节点

前面文章已经介绍如何部署MySQL GR 的两种模式。在前面的部署里面,因为是预先知道需要部署的组节点规模,所以我们能够在my.cnf里面体现出组成员信息。但是,前面的部署并没有体现出动态添加组节点。...
  • d6619309
  • d6619309
  • 2017年01月05日 17:52
  • 1416
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL学习笔记(五)扩展性设计之Replication
举报原因:
原因补充:

(最多只允许输入30个字)