文档章节

Mysql双主自增长冲突处理

 老查
发布于 2016/03/07 11:22
字数 433
阅读 153
收藏 8

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 重复。


本文转载自:http://www.2cto.com/database/201307/231397.html

粉丝 2
博文 81
码字总数 21027
作品 0
长宁
架构师
私信 提问
mysql双主配置及其注意事项

mysql双主配置及其注意事项 主库配置 从库配置 主键冲突 多主和主从有一点区别:因为在多主中都有对服务器有写的权限,所以会造成主键冲突。从而导致同步失败。所以需要保证自增长的数据不同...

jay_zhao
2018/08/08
0
0
MySQL 高可用性之keepalived+mysql双主

生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作。 MySQL的高可用方案一般有如下几...

FJCA
2017/03/30
0
0
MySQL 高可用 keepalived+mysql 双主

mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC。 本节主要介绍了利用 ke...

常亚亚
2017/06/30
0
0
MySQL高可用性之keepalived+mysql双主

防伪码:既然选择了远方,那就只顾风雨兼程! 生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台 MySQL 服务器挂掉后,另外一台能立马...

何小帅
2018/06/26
0
0
MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单点故障,所以我们要确保mys...

南北二斗
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

HeyUI组件库按需加载功能上线,盘点HeyUI组件库有哪些独特功能?

HeyUI组件库 如果你还不了解heyui组件库,欢迎来我们的官网或者github参观。 官网 github 当然,如果能给我们一颗✨✨✨,那是最赞的了! 按需加载 当heyui组件库的组件越来越多的时候,按需...

vvpvvp
16分钟前
3
0
Dockerfile文件详解

Dockerfile文件详解 什么是dockerfile? Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。 docker bui...

Jeam_
29分钟前
0
0
阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云

5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。据估算,云上成本不到传统...

zhaowei121
37分钟前
0
0
在数据数据探索过程中的一些常用操作

###pandas在做数据探索时,分组统计均值和中位数参考资料:http://www.cnblogs.com/nxld/p/6058591.htmlhttp://python.jobbole.com/85742/按字典重新赋值,可以直接使用pandas中的repla...

KYO4321
39分钟前
0
0
好程序员分享干货 弹性分布式数据集RDD

一、RDD定义 RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变(数据和元数据)、可分区、里面的元素可并行计算的集合。其特点在于自动容...

好程序员IT
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部