AppA存储/检索来自的数据dbA.tableA.AppB存储/检索来自的数据dbB.tableA.tableA定义在这些数据库中是相同的.从开头dbB.tableA复制dbA.tableA(假设两行都有5行).
row6由AppA创建(比如主键6)row7是由AppB创建的(比如主键7).我想row7被复制到dbA.tableA和row6到dbB.tableA
这甚至可以设置双向复制,以便AppA,AppB在任何时间点查看相同的数据.
如果主键是自动增量,则是否可以保持数据的完整性,或者是否存在主键上可能存在冲突的可能性.
是的,mysql中支持master-master复制,所以你可以做你想做的事情.
您希望dbA和dbB具有不同的auto_increment_offsets,并将auto_increment_increment设置为大于默认值1.看到
http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html
总之,您将了解到您将要添加到各自的my.cnf文件中,例如:
DBA:
[mysqld]
server-id = 1
auto_increment_increment = 10
auto_increment_offset = 1
Run Code Online (Sandbox Code Playgroud)
DBB:
[mysqld]
server-id = 2
auto_increment_increment = 10
auto_increment_offset = 2
Run Code Online (Sandbox Code Playgroud)
然后,当服务器A插入值时,它将使用1,1,11,31等值作为它的主键值.服务器B将使用2,12,22,32等.这样它们永远不会发生冲突.
显然,您可以为auto_increment_increment使用较低的值,例如2,但是根据您希望以后增长群集的方式,您可能希望给自己一些空间.