温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

主主复制时的主键冲突解决

发布时间:2020-07-26 01:33:43 来源:网络 阅读:349 作者:梁十八 栏目:MySQL数据库

主主复制下一定要注意避免的问题---------同步冲突

例:

create table stu (

id int primary key auto_increment.

)......

2台mysql地位相等假如2个请求同时到达2服务器,

请求的A节点,  stu id1

请求的B 节点,  stuid1 ,

同步--->冲突

 

如何解决?

让1台服务器  1,3,5,7来增长

另1台服务器  2,4,6,8来增长

一台服务器:

set global auto_increment_increment = 2;

set global auto_increment_offset = 1;

set session auto_increment_increment = 2;

set session auto_increment_offset = 1;

 

另一台服务器:

set global auto_increment_increment = 2;

set global auto_increment_offset = 2;

set session auto_increment_increment=2;

set session auto_increment_offset = 2;

注:auto-increment-increment 和 auto-increment-offset 要写到配置文件 中,防止下次重启后失效.


操作后得到如下类似效果

主主复制时的主键冲突解决

 

如果后期需要加服务器,这个办法就有限制了.

我们可以在业务逻辑上来解决,

比如在oracle 有sequnce序列.

序列每次访问,生成递增/递减的数据.

 

redis为例我们可以专门构建一个 global:userid

每次PHP插入Mysql,先 incr->global:userid, 得到一个不重复的userid.

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI