2018-06-04-从库线程报错1061

从库线程报错:

Worker 0 failed executing transaction 'ANONYMOUS' at master log mysql-bin.063742, end_log_pos 34381691; Error 'Duplicate key name 'source_sid'' on query. Default database: 'erp'. Query: 'alter table erp_transfer_order add index source_sid(source_sid)'

分析:查看主库的表结构与从库的表结构是否一致;

主库:

2018-06-04-从库线程报错1061_第1张图片
主库的表结构

从库:

2018-06-04-从库线程报错1061_第2张图片
从库的表结构

2、可以看出,从库明显是有source_sid(source_sid)的所以,所以,在这个时候,有两个方法可以解决这个问题,1、跳过这个从库的事务,2、删除从库的索引,

方案一:跳过这个事务;

先停止从库:stop slave for channel 'master-4';

跳过事务:set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

开启从库:start slave for channel 'master-4';

方案二:删除索引,然后让从库再重新执行一遍建索引的过程,我这里,因为数据量比较小(60w),所以才用这种方案去执行,因为跳过一个事务的话,很容易出现这个事务中含有很多操作。

停止从库:stop slave for channel 'master-4';

删除索引:alter table erp_transfer_order drop index source_sid;

开启从库:start slave for channel 'master-4';

你可能感兴趣的:(2018-06-04-从库线程报错1061)