mysql5.6 主从 延迟_mysql5.6,基于GTID的主从同步与延迟复制

GTID相关:

在mysql5.6之前,mysql主从复制是slave通过配置master的binlog位置实现的,且每一个slave自身的binlog却不同。而在mysql5.6版本后引入了GTID(全局事务标识符),这个值在master生成,slave只要在开启主从复制时指定master的用户,密码,就可获取master的GTID实现同步,而无需再每次去查看master的binlog位置,大大方便了主从同步的配置。GTID的唯一性强化了数据的主备一致性,故障恢复,以及容错能力。

延迟复制相关:

在之前的博客中介绍过mysql的延迟复制,当时是基于第三方工具percona-toolkit实现的。在mysql5.6版本后,mysql自带了延迟复制的功能,且配置十分简单。

实验环境:

主库:192.168.52.128:3306

从库:192.168.52.135:3306

配置GTID复制:

1:安装mysql(不赘述)

2:开启GTID模式,主从库都要:

在my.cnf配置文件中加入binlog以及gtid相关配置,并重启mysql。

主:[mysqld]

binlog-format=ROW

log-bin=master-bin-log

log-slave-updates=true

gtid-mode=on                ----开启gtid

enforce-gtid-consistency=true       ---强制GTID一致性

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2          ---设定从服务器的SQL线程数

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

server-id=1

从:[mysqld]

server-id = 2

log-bin=mysql-bin

binlog_format=row

log-slave-updates=true

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=4

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

重启mysql:service mysqld restart

查看主库及丛库的gtid是否开启:

spacer.gif1d3924b18ec30e80c7ba149d75abbd21.png

这时主库上会分配一个gtid号:

spacer.gif22ffb80e7d2d0b9d8d05778cefeef924.png

3:在主库上创建复制所需的账户:mysql>grant replication slave on *.* to repl@192.168.52.% identified by '123456';

mysql>flush privileges;

4:从库上配置同步。mysql>change master to master_host='192.168.52.128',master_user='repl',master_password='123456',master_auto_position=1;

mysql>slave start;

可以看到这里不用去主库查找binlog与相关的位置信息,直接使用master_auto_position=1,mysql会自动查找同步的位置

5:查看效果:

65bdc5cf8fb61fa70097dae63b885a60.png

可以看到同步已经正常进行中,同步位置为7。

进行一些操作,验证同步效果:

主:创建一个实例,并新建一张表,插入一些数据

spacer.gifcb68b9c639c66d0b03cbd73a4a7e5a3f.png

从:

461d64ac6376a120503541602004c8f7.png

同步正常,使用show slave stautus\G查看同步状态,可以看到同步位置执行到了10;

spacer.gifc66fbdfc319f75058897741f2bbe187d.png

复制延迟配置:mysql>stop slave;

mysql>CHANGE MASTER TO MASTER_DELAY = 100;         -------单位为秒

mysql>start slave;

mysql>show slave status \G;

e7ac088826634e870e621524f47a0e77.png

SQL_Delay:字段变为100,表示此时从库与主库的同步开始有了100秒的固定延迟。

SQL_Remaining_Delay:当主库有了新的操作,该字段会进入倒计时,从配置的延迟时间(这里为100)开始。正常情况下为NULL。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值