gpt4 book ai didi

mysql - 同一个 MySQL 表的双向复制

转载 作者:可可西里 更新时间:2023-11-01 06:37:10 26 4
gpt4 key购买 nike

AppA 从 dbA.tableA 中存储/检索数据。 AppB 从 dbB.tableA 中存储/检索数据。 tableA 定义在这些数据库中是相同的。 dbB.tableA 是从 dbA.tableA 开始复制的(假设两者都有 5 行)。

row6 由 AppA 创建(比如主键 6) row7 由 AppB 创建(比如主键 7)。我想将 row7 复制到 dbA.tableA 并将 row6 复制到 dbB.tableA

  1. 这甚至可以设置双向复制,以便 AppA、AppB 在任何时间点查看相同的数据。

  2. 如果主键是自增的,是否有可能保持数据的完整性,或者是否有可能在主键上发生冲突。

最佳答案

是的,mysql 很好地支持主-主复制,所以你可以做你想做的事。

您会希望 dbA 和 dbB 具有不同的 auto_increment_offsets,并将 auto_increment_increment 设置为大于默认值 1。见

http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html

总而言之,您将了解到您需要向各自的 my.cnf 文件中添加如下内容:

分贝:

[mysqld]
server-id = 1
auto_increment_increment = 10
auto_increment_offset = 1

分贝:

[mysqld]
server-id = 2
auto_increment_increment = 10
auto_increment_offset = 2

然后当服务器 A 插入值时,它将使用 1、11、21、31 之类的值作为主键值。服务器 B 将使用 2、12、22、32 等。这样它们就永远不会冲突.

显然,您可以为您的 auto_increment_increment 使用较低的值,例如 2,但是根据您以后想要如何扩展您的集群,您可能需要给自己一些空间。

关于mysql - 同一个 MySQL 表的双向复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15746234/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com