我有 10 台 MySQL 服务器,每台服务器都有一个数据库,需要将其复制到单个集中式 MySQL 服务器。复杂之处在于,每台服务器都必须将其数据库复制到集中式服务器上的同一个数据库,本质上就是创建一个包含所有单个服务器的聚合数据的集中式数据库。虽然各种表都包含主键,但可以安全地忽略这些列,不需要复制到集中式服务器。每台服务器上的数据库结构都相同。实现此目的的最佳方法是什么?
答案1
执行此操作的标准方法是为每个表分配一个自动增量列,并以间隔(在您的情况下为 10)为单位增加它们。每个服务器将使用间隔中的唯一偏移量,因此服务器 1 将使用 ID 1、11、21 等,服务器 2 将使用 ID 2、12、22 等。
这确保它们永远不会重叠。
然后,您只需设置从每个源服务器到集中聚合器的复制并合并所有记录。