设为首页 收藏本站
查看: 558|回复: 0

[经验分享] mysql5.6,基于GTID的主从同步与延迟复制

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-14 12:47:08 | 显示全部楼层 |阅读模式
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。
主:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[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



从:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[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:
1
service mysqld restart



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

spacer.jpg wKiom1cN5qnBa2xWAAAgtbc8uz0380.jpg
  这时主库上会分配一个gtid号:
spacer.jpg wKiom1cN5tKAQ_VCAAAeXSHo19E117.jpg

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




  4:从库上配置同步。
1
2
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:查看效果:
wKioL1cN6MbBP_9VAADkmHeVkP0969.jpg
  可以看到同步已经正常进行中,同步位置为7。
  进行一些操作,验证同步效果:

  主:创建一个实例,并新建一张表,插入一些数据
spacer.jpg wKiom1cN6EnDGc5HAABwdlwDOQQ615.jpg
  从:
wKioL1cN6RbCPDz8AABE98w9nXQ186.jpg
  同步正常,使用show slave stautus\G查看同步状态,可以看到同步位置执行到了10;
spacer.jpg wKioL1cN6TGzupCsAAAb2RZ-TPM510.jpg


复制延迟配置:
1
2
3
4
mysql>stop slave;
mysql>CHANGE MASTER TO MASTER_DELAY = 100;         -------单位为秒
mysql>start slave;
mysql>show slave status \G;



wKioL1cN6X6CAgx2AAAJPvTrJ00223.jpg
  SQL_Delay:字段变为100,表示此时从库与主库的同步开始有了100秒的固定延迟。
  SQL_Remaining_Delay:当主库有了新的操作,该字段会进入倒计时,从配置的延迟时间(这里为100)开始。正常情况下为NULL。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-203987-1-1.html 上篇帖子: HA专题: Corosync+Pacemaker+drbd实现MySQL高可用 下篇帖子: 解决MYSQL UTF编码文件无法恢复数据的问题:让Mysql支持Emoji表情
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表