日期:2014-05-16 浏览次数:20728 次
MySQL-Transfer逐渐有一些其他公司的同学在使用,这里会持续更新运维上的注意事项。
??????
背景
?????? 正常情况下,若要从原来的主从切换成Transfer 模式,只需要作如下步骤:
1、在slave相同机器上部署一个Transfer,并配置好各种remote_slave参数
2、在slave上stop slave
3、把slave的表结构dump给transfer
4、从slave中查看当前执行到master的位置
5、在transfer执行change master xxxxx; start slave 即可。
?
状况描述
?????? 线上某个项目主从延迟很多天(>7)。由于主库的binlog只保存一周,导致在要切换到Transfer的时候,从slave上show slave status得到的master_log_file在主库已经不存在了。
?????? 这样无法通过上述的步骤5来实现切换到原来的位置。
?
有同学要问,这样的情况下,原来的主从怎么保证最终一致性?
实际上从库上是有两个线程协同工作的,io_thread 已经把主库的更新命令都接收并保存在本地的relay-log了。