搭建了个双主,突然想到如果表设置了自增主键的话,当业务同时向双库中插入一条数据,这时候情况是什么样子的呢?
比如:主库A和主库B上的一个表数据为: 12 'ninhao' 。当业务同时写入数据后主库A的数据是13 'new nihao' ? 那主库B上的数据是什么呢?主键也是13 ?
建议类似双主这种情况:
事先设置好offset和increment的值,即:实现设置好自增字段的初始值和步长。主库A为奇数起步,主库B为偶数起步。两者都采用相同的步长。
1)、设置主主服务器的自增长偏移位置不同:
A :auto_increment_offset=3
B :auto_increment_offset=4
2)、设置主主服务器步长相同:
auto_increment_increment=2
双主的这个问题解决了。另外又有一个想法:如果业务同时update 一条数据,现在又是神情况呢?
还有一个问题,主库A上创建库,创建表,插入数据,主库B直接报错了。
请关注下篇博客:用crontab模拟同时update。