MySQL双主如何解决主键冲突问题

搭建了个双主,突然想到如果表设置了自增主键的话,当业务同时向双库中插入一条数据,这时候情况是什么样子的呢?

比如:主库A和主库B上的一个表数据为: 12 ‘ninhao‘ 。当业务同时写入数据后主库A的数据是13  ‘new nihao‘ ? 那主库B上的数据是什么呢?主键也是13 ?

建议类似双主这种情况:

事先设置好offset和increment的值,即:实现设置好自增字段的初始值和步长。主库A为奇数起步,主库B为偶数起步。两者都采用相同的步长。

1)、设置主主服务器的自增长偏移位置不同:

A :auto_increment_offset=3

B :auto_increment_offset=4

2)、设置主主服务器步长相同:

?auto_increment_increment=2

双主的这个问题解决了。另外又有一个想法:如果业务同时update 一条数据,现在又是神情况呢?

还有一个问题,主库A上创建库,创建表,插入数据,主库B直接报错了。

请关注下篇博客:用crontab模拟同时update。

时间: 2024-10-11 19:12:36

MySQL双主如何解决主键冲突问题的相关文章

13.MySQL解决主键冲突

1.准备 1 CREATE DATABASE mahaiwuji; 2 USE mahaiwuji; 3 ? 4 CREATE TABLE emp 5 ( 6 empno INT PRIMARY KEY, 7 ename VARCHAR(10), 8 sal INT 9 ) ENGINE = INNODB DEFAULT CHARSET = utf8; 10 ? 11 INSERT INTO emp VALUES (1,'smith',2800); 12 INSERT INTO emp VALU

mysql修改数据 -- 主键冲突

mysql 插入数据唯一键冲突 前提: 修改数据三种可用的方法解决主键冲突的问题 1. insert into ... on duplicate key update set ... 2. update ... set = case key when ... then ... when ... then ... else end where ...; 3. replace into ... (与1相似,但若主键冲突会先删除原数据,后再插入新数据 ,所以运用时最好带上主键) 例: table :

MySQL 复制 主键冲突

看了下复制的问题,最明显的一个案例就是主键冲突,今天就看下这个问题 什么原因会导致这个问题 怎么规避这个问题 一.什么原因导致 网上最多的说就是:对于存在auto_increment字段或者unique索引字段,使用replace into操作或者主从切换,因为replace into对于auto或者unique字段会进行删除再做插入 执行replace into t values(1,2)被删除和被插入的行数的和(大于或者等于1) master 上 SHOW CREATE TABLE `tes

mysql主从:主键冲突问题

1.检查从库 show slave status \G; Slave_IO_Running: YesSlave_SQL_Running: No 2.出现类似如下的报错: Last_SQL_Error: Error 'Duplicate entry '1001-164761-0' for key 'PRIMARY'' on query. Default database: 'bug'. Query: 'insert into misdata (uid,mid,pid,state,mtime) va

mysql主从之主键冲突

收到短信报警,两台数据库都报slave同步失败了,先说明一下环境,架构:lvs+keepalived+amoeba+mysql,主主复制,单台写入, 主1:192.168.0.223(写) 主2:192.168.0.230 好吧,先show slave status \G看一下同步失败的具体报错吧 登录主2库查看: mysql> show slave status \G *************************** 1. row ***************************

sql解决主键冲突

在数据插入的时候,假设主键对应的值已经存在,则插入失败!这就是主键冲突.当主键存在冲突(duplicate key)的时候,可以选择性的进行处理,即忽略.更新或者替换. 1.忽略 insert ignore into table 保持原记录,忽略新插入的记录 2.替换 replace into table 替换原记录,即先删除原记录,再插入新的记录 3. 更新 insert into table value("xx","xx") ON DUPLICATE KEY U

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配

mysql之 mysql 5.6不停机主主搭建(活跃双主基于日志点复制)

环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火墙已关 补充:主从复制原理: http://blog.csdn.net/zhang123456456/article/details/72972701mysql 5.6安装 :http://blog.csdn.net/zhang123456456/article/details/53608554xt

MySQL 高可用性之keepalived+mysql双主

生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作. MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 这里将主要介绍了利用 keepalived 实现 MySQL数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保