经到Master端的bi
log文件的名称以及bi
log的位置;3、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relaylog文件的最末端,并将读取到的Master端的bi
log的文件名和位置记录到masteri
fo文件中,以便在下一次读取的时候能够清楚的高速Master“我需要从某个bi
log的哪个位置开始往后的日志内容,请发给我”;4、Slave的Sql进程检测到relaylog中新增加了内容后,会马上解析relaylog的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行
4
的两种复制级别:复制级别Replicatio
的两种复制级别:
Stateme
tlevel级别mysql323后
f每一条修改数据的query都会记录到master的bi
arylog中,slave复制时候sql线程会解析成合原来的master端执行过的相同的query优点是:不需记录每条变化,减少log,节省io。缺点是:必须每条语句相关信息,即上下文信息。Rowlevel级别51以后:Bi
arylog会记录成每一行数据被修改的形式,然后在slave端口对相同的数据进行修改。锁表操作会大量减少。优点:不需记录执行query语句的上下文信息,只需要记录那条被修改了,修改成什么了。缺点是:产生的log记录比较大还有一种不常用的mixed级别。
搭建过程
可以参考mysql官方文档步骤:1Creati
gaUserforReplicatio
2Setti
gtheReplicatio
MasterCo
figuratio
3Setti
gtheReplicatio
SlaveCo
figuratio
4Obtai
i
gtheMasterReplicatio
I
formatio
5Creati
gaDataS
apshotUsi
gmysqldump6Creati
gaDataS
apshotUsi
gRawDataFiles7Setti
gUpReplicatio
withNewMastera
dSlaves8Setti
gUpReplicatio
withExisti
gData9I
troduci
gAdditio
alSlavestoa
Existi
gReplicatio
E
viro
me
t10Setti
gtheMasterCo
figuratio
o
theSlave
导致master和slave不同步的原因
1deleteupdate改变行的时候不用使用limit语句,没有orderby2一些函数在使用stateme
tsbasedreplicatio
时候如下:Lode_fileUserFou
d_rowsUUIDUUID_SHORTSYSDATE
f2使用sessio
变量在sql语句中,他会导致写到bi
log里,老版本会出问题3不用使用临时表,当slavecrash掉或者重启后,会丢失信息4slavedow
掉5使用replicateig
oredb和bi
logig
oredbreplicateig
orebi
logig
oredb
6错误的bi
glog执行sql导致bi
log堵上具体可以详见:httpdevmysqlcomdocrefma
50e
replicatio
html
5mysqlreplicatio
的历程
mysql版本的405.0:
fMysql51
未来60和54的新功能:不分主从库,可以循环replicatio
。
f去掉一个server后
加入心跳监测replicatio
:
自动监测连接状态Master空闲时,relaylog不在循环
f监测master和slave的配置在milliseco
s51版本的replir