当前位置:Gxlcms > 数据库问题 > mysql5.6,基于GTID的主从同步与延迟复制

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

时间:2021-07-01 10:21:17 帮助过:29人阅读



实验环境:

    主库: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是否开启:

技术分享技术分享

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

技术分享技术分享


  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:查看效果:

技术分享

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

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


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

技术分享技术分享

  从:

技术分享

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

技术分享技术分享



复制延迟配置:

mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_DELAY = 100;         -------单位为秒
mysql>start slave;
mysql>show slave status \G;

技术分享

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

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




本文出自 “扮演上帝的小丑” 博客,转载请与作者联系!

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

标签:mysql   gtid   复制延迟   

人气教程排行