遇到的问题:
最近遇到一个Mysql5.6的主备复制问题,这个错误编号为1755:
1 |
Cannot execute the current event group in the parallel mode
|
2 |
......此处省略...... |
3 |
Reason: the event is a part of a group that is unsupported in the parallel execution mode.
|
从这个错误的翻译来看:
翻译:不能在并行模式下执行当前的事件组。事件是一个组的一部分,是不支持的并行的执行模式。
报错的意思很明确,这个事件组执行不能并行。
什么是并行复制:
在MySQL 5.6版本之前,Slave服务器上有两个线程I/O线程和SQL线程。I/O线程负责接收二进制日志(更准确的说是二进制日志的event),SQL线程进行回放二进制日志。如果在MySQL 5.6版本开启并行复制功能,那么SQL线程就变为了coordinator线程,coordinator线程主要负责以前两部分的内容:
- 若判断可以并行执行,那么选择worker线程执行事务的二进制日志
- 若判断不可以并行执行,如该操作是DDL,亦或者是事务跨schema操作,则等待所有的worker线程执行完成之后,再执行当前的日志
这意味着coordinator线程并不是仅将日志发送给worker线程,自己也可以回放日志,但是所有可以并行的操作交付由worker线程完成。coordinator线程与worker是典型的生产者与消费者模型。
总的来说,就是拉取binlog为单线程,应用binlog则为多线程并发。
MySQL5.6版本的并行复制是基于库级别的,不过这个貌似和这个错误关系不大。
解决办法:
既然错误中说的很清楚,这个事件不支持并行,应该改回串行就可以。因此。修改一下并行复制参数即可。
slave_parallel_workers :默认值 0,表示不开启并行复制,有效值:0-1024。
1 |
stop slave |
2 |
set global skip_parallel_works=0;
|
3 |
start slave; |
反过来,想开启,就可以设置为大于0的数值。
资料:
http://mysql.taobao.org/monthly/2015/08/09/
http://isadba.com/?p=557
http://www.innomysql.net/article/16317.html?utm_source=tuicool
转载请注明:旅途@KryptosX » Mysql5.6的1755错误解决办法