mysql 整理之mysql 复制

7.1 请简述复制的原理和流程

 MySQL的复制原理:Master上面事务提交时会将该事务的binlog event写入binlogfile,然后master将binlogevent传到slave上面,slave应用该binlog event实现逻辑复制。

Mysql 的复制流程:

 MySQL的复制是基于如下3个线程的交互(多线程复制里面应该是4类线程):

a. Master上面的binlogdump线程,该线程负责将master的binlogevent传到slave;

b. Slave上面的IO线程,该线程负责接收Master传过来的binlog,并写入relay log;

c. Slave上面的SQL线程,该线程负责读取relay log并执行;

d. 如果是多线程复制,无论是5.6库级别的假多线程还是MariaDB或者5.7的真正的多线程复制,SQL线程只做coordinator,只负责把relay log中的binlog读出来然后交给worker线程,woker线程负责具体binlog event的执行;

 

7.2 如何确保复制的一致性

 

7.2     Seconds_Behind_Master值的含义

Doc里边是这样说的:

This field isan indication of how “late” the slave is:
• When the slave is actively processing updates,this field shows the difference between the current timestamp on the slave andthe original timestamp logged on the master for the most event currently beingprocessed on the slave.

• When no event is currently being processed onthe slave, this value is 0.

意思是说

1)当slave正在处理更新,该字段表示当前slave的时间戳与最近在slave上执行的事件(master上记录的,也就是slaverelay-log中的事件)的时间戳的差值。
2)当slave没有事件处理(relay-log),显示的值为0

 

7.3     口述复制的搭建步骤?

1> .主库授权:grant replication slave on *.* to 'xx'@'xxx' identified by 'xx';  

2>.配置N的my.cnf:  

  修改server_id  

3>mysqldump -uxx -pxx -AER --single-transaction --master-data > mas.sql  

4>.slave导入mas.sql,如果没有master-data,则需要手动change master  

5>.开启start slave;  

6>.检查同步状态show slave status; 

7.4如何校验复制的一致性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值