MySQL ·

解决MySQL主从服务器ID复制

多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题
出现的问题(多主自增长ID重复) 1:首先我们通过A,B的test表结构
2:掉A,在B上对数据表test(存在自增长ID)执行插入操作,返回插入ID为1
3:后停掉B,在A上对数据表test(存在自增长ID)
出现的问题(多主自增长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_increment、auto_increment_offset
#解决主从服务器ID重复 可以防止双主主键冲突问题 每次跳两个数
#这样auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID了
#整个结构中服务器的总数
auto_increment_increment=2
#设置单次增量中主键的偏移量 设定数据库中自动增长的起点,
#避免两台服务器数据同步时出现主键冲突
auto_increment_offset=1
B:my.cnf上加入参数
#######################
#auto_increment_increment、auto_increment_offset
#解决主从服务器ID重复 可以防止双主主键冲突问题 每次跳两个数
这样B的auto_increment字段产生的数值是:2, 4, 6, 8, …等偶数ID了
#整个结构中服务器的总数
auto_increment_increment=2
#设置单次增量中主键的偏移量 设定数据库中自动增长的起点,
#避免两台服务器数据同步时出现主键冲突
auto_increment_offset=2
#########################

评论已关闭