您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Mysql双主自增长冲突处理_MySQL

2026/2/1 16:03:35发布12次查看
bitscn.com
mysql双主自增长冲突处理
多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题
出现的问题(多主自增长id重复) 
1:首先我们通过a,b的test表结构
2:掉a,在b上对数据表test(存在自增长id)执行插入操作,返回插入id为1 
3:后停掉b,在a上对数据表test(存在自增长id)执行插入操作,返回的插入id也是1 
4:然后 我们同时启动a,b,就会出现主键id重复
解决方法: 
我们只要保证两台服务器上插入的自增长数据不同就可以了 
如:a查奇数id,b插偶数id,当然如果服务器多的话,你可以定义算法,只要不同就可以了
在这里我们在a,b上加入参数,以实现奇偶插入
a:my.cnf上加入参数
auto_increment_offset = 1 
auto_increment_increment = 2 
这样a的auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数id了
b:my.cnf上加入参数
auto_increment_offset = 2 
auto_increment_increment = 2 
这样b的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数id了
可以看出,你的auto_increment字段在不同的服务器之间绝对不会重复,所以master-master结构就没有任何问题了。当然,你还可以 使用3台,4台,或者n台服务器,只要保证auto_increment_increment = n 再设置一下auto_increment_offset为适当的初始值就可以了,那样,我们的mysql可以同时有几十台主服务器,而不会出现自增长id 重复。
bitscn.com
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product