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)


相关文章推荐

MySQL学习笔记(六)扩展性设计之Memcached

MySQL学习笔记(六)扩展性设计之Memcached 1.作为系统性能提升的工具 首先,我们给出使用Memchched作为Cache服务层的简图如下所示: 从图中可以看出,...

mysql replication 学习笔记

Mysql的

redis replication 学习笔记

redis replication 学习笔记Q & A Master 在向 Slave传 rdb文件的过程,收到客户端发来的写请求。Master是怎么处理呢? 在代码中,作者有提及这过程。在同步完...
  • fookbar
  • fookbar
  • 2015年03月18日 20:32
  • 186

mysql的扩展性设计之主辅架构

原创文章,转载请注明http://www.usewo.com 或者 http://blog.csdn.net/cnpdn引言由于mysql的master/slave架构各方面优良的特性,使得在各种互联...
  • cnpdn
  • cnpdn
  • 2011年04月12日 10:42
  • 1149

MySQL学习笔记20151007数据类型主键外键多对多设计思想

1.varchar特点,当数据超过225个字符时需要用两个字节表示长度,整条记录需要一个额外字节用于保存当前null值,所以create table s_5(a varchar(65533) not ...

MySQL学习笔记_5_SQL语言的设计与编写(上)

SQL语言的设计与编写(上) 一、SQL语句分类 数据定义语言(DDL): 用于定义和管理数据对象,包括数据库、数据表、视图、索引等。例如:CREATE、DROP、ALT...

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

系列文章并非本人原创。 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4059514.h...

MySQL学习笔记_6_SQL语言的设计与编写(下)

SQL语言的设计与编写(下) --SELECT查询精讲 概要: SELECT[ALL | DISTINCT] #distinct 明显的,清楚的,有区别的 {*|table.*|...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL学习笔记(五)扩展性设计之Replication
举报原因:
原因补充:

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