Mysql
123456基本用途基本原理搭建过程导致master和slave不同步的原因Mysqlreplicatio
的历程数据库不同步的一些解决方案
replicatio
report
Replicatio
的用途:的用途:
1数据分发scaleout,sacleup,垂直划分,水平划分2负载均衡loadbala
ce3备份,一般不会用作备份,一旦执行delete操作,replicatio
也不会保留4高可用5可以在不同的主从库上使用不同的存储引擎6测试mysql的升级常见replicatio
的架构
f常见的负载均衡架构
当使用的slavae过多时,减轻master压力的级联架构,master2打开logslaveupdates配置
f一台masterdow
时候的,冗余架构
Replicatio
不同的库到不同的主机
原理
1三个进程:三个进程:
Mysql的复制(replicatio
)是一个异步的复制,从一个Master复制到另一个Slave。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在Master(IO进程)上,可以分别在master如果replicatio
在进行的话可以通过运行showprocesslist查看,slave上可以直线showslavestatus进行查看,里面的Slave_IO_Ru
i
gNoSlave_SQL_Ru
i
gNo,是两个进程的状态是否在运行。Mysql40是两个进程,
f后有yahoo的一位工程师提出的3个进程,博客为httpjeremyzawod
ycommysql
文件和两个文件:2三个log文件和两个i
fo文件:
复制进行时,在master上执行的语句会记录到bi
log里面,日志的位置和数字,当有变化放生时,slave会通过一个io进程读取master的二进制log,发现有变化时候,会把新的变化副知道他的relaylog会记录行的位置和数字到一个新的文件叫masteri
fo,继续检查master的二进制log,当slave的sql进程发现在relaylog里有变化时候会执行,同时slave也会通过sql进程去对比master和slave的变化,如果对比发现不一致,复制进程会停止并把错误信息计入slave的errorlog如果结果能对的上,一个新的日子的位置和数字会记录到relaylogi
foslave会等另外一个变化到relaylog文件。
f复制的基本过程如下:3复制的基本过程如下:
简单的讲就是master记录其变化到bi
log,slave接收到变化后会记录到他的Relaylog,slave通过重放relaylog,然后就写进自己的log1、Slave上面的IO进程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容;2、Master接收到来自Slave的IO进程的请求后,通过负责复制的IO进程根据请求信息读取制定日志指定位置之后的日志信息,返回给Slave的IO进程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息已r