视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Mysql双主自增长冲突处理_MySQL
2020-11-09 18:41:32 责编:小采
文档


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

下载本文
显示全文
专题