试图重新同步一个奴隶,我遇到了一些我的表没有一个自动增量主索引,但主要的唯一ID(不自动增量)麻烦。
我运行重新同步
mk-table-sync –execute –sync-to-master localhost –databases gman –table“,my,problem,tables” – 等待60
这适用于所有具有自动join主ID的表,对于其他表示:
因为在/ usr / bin / mk-table-sync行7733处没有唯一索引,所以不能在主节点上进行更改。而在本地主机上执行db123.problem
如何以另一种方式解决这个问题? 我只希望从设备与来自主设备的正确数据同步。 如果可能的话,我宁愿用mk-table-sync来代替LOCK,转储,将转储插入到slave中,这真的是老式的,并不是非常有用的用例。
感谢maakit提示。
如果索引列有索引但没有定义为UNIQUE INDEX,则mk-table-sync将不知道它是否为UNIQUE,并将索引作为二级索引。 你只需要重新定义索引是唯一的,再次运行mk-table-sync。
build议 :请在每个单独的表上运行mk-table-sync,但不要使用–execute
mk-table-sync –print –sync-to-master localhost –databases gman –table tblname –wait 60> tblname.sql
这样,你可以看看SQL之前,在奴隶之前。
如果奴隶也是主人,阻止奴隶从复制
回声“SET SQL_LOG_BIN = 0;” > tblname.sql
mk-table-sync –print –sync-to-master localhost –databases gman –table tblname –wait 60 >> tblname.sql