`
zhengdl126
  • 浏览: 2539118 次
  • 性别: 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 双向同步是一种高可用性和容错性的数据库配置,其中两个或多个数据库服务器可以相互作为主服务器,互相复制数据。然而,这种设置可能会遇到一个关键问题:自增长键值的冲突。当两个服务器独立地生成具有相同自...

    两个MySQL数据库之间同步表结构及索引模式.md

    两个MySQL数据库之间同步表结构及索引模式

    Mysql5.5数据库双向同步

    根据给定的文件信息,“Mysql5.5数据库双向同步”这一主题深入探讨了如何在两个MySQL 5.5服务器之间建立稳定的数据同步机制,确保数据的一致性和高可用性。以下是对该知识点的详细解析: ### 一、理解MySQL双向同步...

    java实现两个mysql同步主库的数据

    下面我们将深入探讨如何使用Java实现两个MySQL数据库之间的数据同步,以及涉及的相关知识点。 首先,我们需要理解MySQL的复制原理。MySQL的主从复制是基于日志的,主库上的所有更改都会被记录到二进制日志(binlog...

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

    总结来说,解决MySQL双向同步中的键值冲突,特别是自增ID冲突,主要依赖于合理配置`auto_increment_offset` 和 `auto_increment_increment` 参数。通过设置不同的初始偏移和相同的步长,可以确保每个服务器生成唯一...

    如何在两台MySQL数据库间实现同步

    在开发环境中,有时需要在两台MySQL数据库之间实现数据同步,以确保数据的一致性和冗余。本教程将详细介绍如何在两台运行相同系统(FreeBSD 5.4)和软件(Apache 2.0.55、PHP 4.4.0、MySQL 4.1.15)的服务器上配置...

    MySQL数据库的同步

    4. **冲突解决**:处理可能存在的数据冲突,例如两个数据库同时修改同一数据。 5. **安全机制**:实施访问控制和加密,保护数据安全。 在设计数据库同步软件时,需要考虑到性能、可用性、可扩展性和易用性。Java的...

    mysql同步,双向同步

    双向同步是指两个数据库服务器之间的数据实时同步。要实现双向同步,我们需要在每个数据库服务器上配置相应的参数,并执行相应的命令。 在 A 服务器上,配置my.ini文件,添加相应的参数,并重启 MySQL 服务。然后,...

    Mysql数据库单双向同步

    MySQL数据库的单双向同步是数据库高可用性和容灾恢复策略中的一个重要组成部分,它允许数据在多个服务器之间实时或近实时地复制,确保数据的一致性和可用性。在Linux环境下,MySQL 5的复制功能提供了这一可能性,...

    利用Docker,配置两个mysql数据库,并让其主从数据同步.txt

    利用Docker,配置两个mysql数据库,并让其主从数据同步

    java比较两个mysql数据库中的表信息差异

    一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action包类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。...

    Mysql两个数据库表之间双向数据同步方案.docx

    ### MySQL两个数据库表之间的双向数据同步方案 #### 概述 本文档主要介绍了一种针对MySQL环境下两个数据库表之间的双向数据同步方案。该方案适用于需要保持两个不同位置或不同环境中数据库表数据一致性的场景,...

    同步两台mysql数据库

    标题"同步两台mysql数据库"指的是在两个或多个MySQL服务器之间进行数据复制和同步,确保数据的一致性。传统的MySQL同步通常涉及主从复制,即一个主数据库负责写操作,多个从库进行读操作并接收主库的更新。然而,这...

    从sqlserver同步数据到Mysql数据库

    【标签】:“数据库”表明本例的核心是数据库技术,涵盖了SQL Server和MySQL两个主流的关系型数据库管理系统。“图片”可能是指教程中包含的示意图或步骤解释图,帮助用户更直观地理解操作流程。 【压缩包子文件的...

    java多个数据库实现数据同步

    数据同步是指在两个或多个数据库之间,当某个数据库中的数据发生改变时,这些变化能够被实时或者近实时地反映到其他数据库中。这有助于防止数据丢失和减少数据冲突,保证各个节点的数据一致性。 在Java中,实现多...

    MySql数据库同步复制

    MySQL 数据库同步复制是一种强大的技术,它允许两个或多个数据库实例之间保持数据一致性。这种功能在高可用性、灾难恢复和负载均衡场景中至关重要。在MySQL中,同步复制主要通过主从模式和双机互备模式来实现。 1. ...

    同步两个数据库的数据

    这里的“同步两个数据库的数据”指的是确保两个数据库中的特定表——在这个例子中是“staff”表——保持一致。以下是对这个主题的详细解释: 首先,同步的目的是确保数据的一致性,避免数据丢失或冲突。在这种情况...

    mysql5.7双向实时同步

    MySQL 5.7 双向实时同步是一种数据库高可用性和数据一致性的重要技术,它使得两个或多个MySQL实例之间能够实时地互相复制数据。在企业级应用中,这种同步策略常用于构建主主复制架构,以确保即使在一台服务器故障时...

    MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...

Global site tag (gtag.js) - Google Analytics