UDN-企业互联网技术人气社区

板块导航

浏览  : 942
回复  : 2

[资源分享] FAQ系列 | 从MySQL 5.6到5.7复制错误解决

[复制链接]
瞌睡虫的头像 楼主
发表于 2016-7-4 09:40:44 | 显示全部楼层 |阅读模式
  0、导读

  在MySQL5.7下采用多源复制方式,从5.6复制数据过来,会有问题吗?

  1、问题描述

  Q群里有位朋友想尝鲜5.7的多源复制,于是用MySQL5.7版本作为slave,把MySQL5.6作为master,想要将数据进行汇总,发现此路不通。

  他在my.cnf中设置了2个选项,开启并发复制:

  slave_parallel_type=LOGICAL_CLOCK

  slave_parallel_workers=4

  启动复制线程后,结果在错误日志中不断有类似下面的信息:

  Transactionistaggedwithinconsistentlogicaltimestamps:sequence_number(823267087)<=last_committed(1301275374434324336)

  执行SHOWSLAVESTATUS\G查看状态:

  ***************************1.row***************************

  Slave_IO_State:Waitingformastertosendevent

  ...

  Last_Errno:1756

  Last_Error:...Theslavecoordinatorandworkerthreadsarestopped,possiblyleavingdataininconsistentstate.Arestartshouldrestoreconsistencyautomatically,althoughusingnon-transactionalstoragefordataorinfotablesorDDLqueriescouldleadtoproblems.Insuchcasesyouhavetoexamineyourdata(seedocumentationfordetails).

  ...

  Last_SQL_Errno:1756

  Last_SQL_Error:...Theslavecoordinatorandworkerthreadsarestopped,possiblyleavingdataininconsistentstate.Arestartshouldrestoreconsistencyautomatically,althoughusingnon-transactionalstoragefordataorinfotablesorDDLqueriescouldleadtoproblems.Insuchcasesyouhavetoexamineyourdata(seedocumentationfordetails).

  ...

  Last_IO_Error_Timestamp:

  Last_SQL_Error_Timestamp:16052318:49:05

  ...

  ***************************2.row***************************

  Slave_IO_State:Waitingformastertosendevent

  ...

  Last_Errno:1756

  Last_Error:...Theslavecoordinatorandworkerthreadsarestopped,possiblyleavingdataininconsistentstate.Arestartshouldrestoreconsistencyautomatically,althoughusingnon-transactionalstoragefordataorinfotablesorDDLqueriescouldleadtoproblems.Insuchcasesyouhavetoexamineyourdata(seedocumentationfordetails).

  Skip_Counter:0

  ...

  Last_SQL_Errno:1756

  Last_SQL_Error:...Theslavecoordinatorandworkerthreadsarestopped,possiblyleavingdataininconsistentstate.Arestartshouldrestoreconsistencyautomatically,althoughusingnon-transactionalstoragefordataorinfotablesorDDLqueriescouldleadtoproblems.Insuchcasesyouhavetoexamineyourdata(seedocumentationfordetails).

  ...

  2、原因分析

  上面这些错误提示可以看到,主要原因是:slave端采用了基于LOGICAL_CLOCK类型的并行复制,但master端的binlog格式并不支持这种方式,所以slave端无法正确读取binlog并行apply。

  3、解决方案

  虽然仍旧可以采用MySQL5.7作为slave,但就无法开启基于LOGICAL_CLOCK类型的并行复制了。需要改回传统模式就可以了:

  slave_parallel_type=DATABASE

  此外,在MySQL复制方案中,强烈建议不要让主从大版本不一样,很容易出现各种各样的问题。

文章来源:MySQL中文网
文章作者:叶金荣

发表于 2016-7-4 09:56:03 | 显示全部楼层
好帖子,感谢分享。
使用道具 举报

回复

瞌睡虫的头像 楼主
发表于 2016-7-11 09:32:16 | 显示全部楼层
jia玮_tlVj3 发表于 2016-7-4 09:56
好帖子,感谢分享。

请多多关照UDN技术社区
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部