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

[经验分享] MySQL主从严重延迟后迁移Transfer的注意事项

[复制链接]

尚未签到

发表于 2016-10-17 08:37:53 | 显示全部楼层 |阅读模式
MySQL-Transfer逐渐有一些其他公司的同学在使用,这里会持续更新运维上的注意事项。
      
背景
       正常情况下,若要从原来的主从切换成Transfer 模式,只需要作如下步骤:
1、slave相同机器上部署一个Transfer,并配置好各种remote_slave参数
2、slavestop slave
3、slave的表结构dumptransfer
4、slave中查看当前执行到master的位置
5、transfer执行change master xxxxx; start slave 即可。
 
状况描述
       线上某个项目主从延迟很多天(>7)。由于主库的binlog只保存一周,导致在要切换到Transfer的时候,从slaveshow slave status得到的master_log_file在主库已经不存在了。
       这样无法通过上述的步骤5来实现切换到原来的位置。
 
有同学要问,这样的情况下,原来的主从怎么保证最终一致性?
实际上从库上是有两个线程协同工作的,io_thread 已经把主库的更新命令都接收并保存在本地的relay-log了。 只是sql_thread处理速度太慢没有执行这些命令而已。
 
注意
需要特别注意:change master是会删除本地的relay log的。因此在上面的情况下,执行change master要谨慎,以防主库没有binlog的情况下删除备库的relaylog
 
解决方案
       从上面的说明看出,Slave上其实有足够的信息能够重放主库的命令(relaylog).因此在切换到transfer时需要换一个步骤:
1、 slave相同机器上部署一个Transfer,并配置好各种remote参数
2、slavestop slave
3、slave的表结构dumptransfer
(前面几个步骤不变)
4、slave上的master.info master.info mysqld-relay-bin.* (就是跟从库有关的数据) 都拷贝到transfer的对应目录下
5、transfer直接执行start slave (重申,不能change master)
 
由于transfer重新启动以后,读到的是从slave上拷贝过来的数据,因此以为是之前自己的io_thread已经读取的数据,start以后就“继续”读取relaylog来更新slave
 
情况还可能更糟
       如果这时候刚好主库出了点什么问题,导致连都连不了。那么上面改进步骤的第5点,就改成start slave sql_thread,这样tranfer不连主库,先把本地的relaylog都重放一遍。
      
     Btw一下,start slave sql_thread这么犀利的命令不属于transfer patch的代码,MySQL本身就支持了
 

运维网声明 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-287203-1-1.html 上篇帖子: mysql 的 find_in_set函数使用方法 下篇帖子: MySQL 文本文件的导入导出数据的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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