背景:mysql做了分片,通过mycat同步数据,但表的分片字段不是主键。比如在新增100条数据时,会有一部分能同步过来,剩下的就同步失败。查看错误日志,发现是insert into on duplicate key update这种sql导致的,因为update中有分片字段,但是mycat不支持分片字段更新,因此yugong得到mycat的异常导致同步失败。我看了下MLOG$表,里面的DMLTYPE$$全是I,没有D或U。现在不明白的是,DMLTYPE$$全是I,有一部分直接插入了,为什么剩下的是insert into on duplicate key update这种模式来增量。不是应该在DMLTYPE$$为U时,才使用insert into on duplicate key update吗。
1条答案
按热度按时间woobm2wo1#
这块yugong我支持过DRDS的,如果mycat能提供类似获取拆分字段的能力,可以在构造SQL时进行特殊处理