`
kangkang203
  • 浏览: 13853 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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 重复。
分享到:
评论

相关推荐

    mysql双主带双从

    在高可用性和数据冗余需求日益增长的背景下,MySQL的双主带双从(Multi-Master with Slave Replication)架构成为了一种有效的解决方案。此架构不仅提高了数据库系统的可用性,还通过负载均衡增强了性能,并确保了...

    mysql取得自动增长的主键值

    ### MySQL获取自动增长的主键值 在MySQL数据库中,自动增长...通过以上知识点的学习,我们可以更好地理解和掌握MySQL中获取自动增长主键值的方法及其应用场景,这对于日常的数据库管理和应用开发都有着重要的意义。

    mysql 双向同步的键值冲突问题的解决方法

    总的来说,解决MySQL双向同步中的键值冲突问题,关键在于利用`auto_increment_offset`和`auto_increment_increment`参数,合理规划每个服务器的自增长ID序列,以确保数据的一致性和完整性。同时,为了保证整个系统的...

    Mysql双服务器互为主从和读写分离配置

    ### MySQL 双服务器互为主从与读写分离配置详解 #### 一、基础知识与预备工作 **MySQL 主从复制机制**是一种数据复制技术,通过它可以让一个MySQL服务器(主服务器)的数据自动同步到另一个或多个MySQL服务器(从...

    Centos7.0安装配置keepalived+mysql MySQL的双主模型自动切换

    - `auto_increment_offset` 和 `auto_increment_increment` 配置用于控制自增长字段的起始值和增量,这样可以避免两个实例间的ID冲突; - 如果需要添加更多的从属服务器,则需要配置 `log_slave_updates` 参数。 **...

    MySQL自增长键理解

    MySQL中的自增长键是一种特殊类型的字段,主要用于主键,它能自动递增其数值,无需在插入新记录时显式指定。自增长键对于数据库管理非常有用,因为它简化了插入操作,尤其是当需要唯一标识符时。理解自增长键的工作...

    mysql非主键自增长用法实例分析

    5. 自增长列在分布式或分区环境中可能会引发问题,因为不同的服务器或分区可能产生冲突的自增长值。在这种情况下,需要采取特殊的策略来管理和协调自增长序列。 了解这些知识点,可以帮助我们在设计数据库时更加...

    windows下mysql主备双向复制与mycat负载均衡

    - auto_increment_offset和auto_increment_increment:这两个参数用于控制自动增长字段的初始值和增量,对于双向复制来说,两台服务器的auto_increment_offset应设置不同值,避免数据冲突。 - replicate-do-db和...

    mysql5.7.29双主 keepalived HA部署方案.pdf

    3. 设置自增长ID的起始值和步长,防止冲突。 4. 可选地,可以调整其他参数,如`logs-slave-updates`,以便记录从属服务器的更新。 配置完成后,需要在每台服务器上设置彼此为主从关系,即在一台服务器上用`CHANGE ...

    mysql 双向同步的键值冲突问题的解决方法分享

    出现的问题(多主自增长ID重复) 1:首先我们通过A,B的test表结构 2:掉A,在B上对数据表test(存在自增长ID)执行插入操作,返回插入ID为1 3:后停掉B,在A上对数据表test(存在自增长ID)执行插入操作,返回的插入ID也是1...

    mysql主从主主配置.docx

    ### MySQL 主从与主主配置详解 #### 一、MySQL 主从配置 **1.1 配置主服务器** 为了实现MySQL的主从复制,首先需要配置主服务器。假设我们有两台服务器作为主服务器: - **主服务器 1 IP**: 192.168.0.1 - **主...

    Mysql+keepalived高可用

    同时,需要设置自增长字段的递增量和起点,以避免主键冲突。在从节点上,需要配置与主节点相同的 my.cnf 文件,只有 server-id 和 auto-increment-offset 需要不同。 在配置完毕后,需要在主节点上创建具有复制权限...

    MySQL 主主同步配置步骤

    MySQL 主主同步是一种高可用性和高冗余性的数据库复制策略,允许两个MySQL服务器相互复制数据,使得任何一个服务器上的更改都能被另一个服务器实时捕获并应用。这种配置在分布式系统、负载均衡和数据备份中非常常见...

    MySQL的PPT文档

    - **自动增长数据类型处理**:MySQL支持自动增长的数据类型,如`AUTO_INCREMENT`,而Oracle中则需要使用序列(sequence)来实现类似功能。 - **单引号处理**:MySQL中可以使用单引号来表示字符串,但在Oracle中使用单...

    MySQL数据库常见问题汇总

    要在MySQL中创建具有自增长功能的字段,你可以按照以下步骤操作: ```sql CREATE TABLE abc ( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(10) NOT NULL, address VARCHAR(200) NOT NULL, ...

    mysql把主键定义为自动增长标识符类型

    在MySQL和SQL Server等关系型数据库管理系统(RDBMS)中,有一种便捷的方法可以为主键字段设定自动增长的属性,这样在插入新记录时,系统会自动为该字段生成一个唯一的递增值,无需手动输入。 在MySQL中,我们使用`...

    mysql.rar_MYSQL

    9. **故障恢复**:当主服务器恢复后,需要进行故障恢复操作,如重新加入复制链路、处理冲突等。 10. **培训与最佳实践**:团队成员应熟悉MySQL双机备份的原理和操作,遵循最佳实践,以确保系统的稳定运行。 ...

    mysql主从同步配置

    MySQL主从同步是一种数据库复制技术,它允许数据从一个MySQL服务器(称为“主服务器”)实时复制到另一个或多个服务器(称为“从服务器”)。这种配置对于数据备份、负载均衡和高可用性至关重要。在Java开发中,了解...

Global site tag (gtag.js) - Google Analytics