如何在同一 mysql 数据库服务器上的两个数据库之间同步表的子集

如何在同一 mysql 数据库服务器上的两个数据库之间同步表的子集

希望能够在同一服务器上运行的两个 mysql 数据库之间同步表的子集。其中一个数据库充当主数据库,可以在其中进行插入、更新和删除。第二个数据库使用相同的表进行只读操作。我不想使用联合表来实现这一点。长期目标是将两个数据库分离到多个服务器,将表子集作为只读的第二个数据库也复制几次以在地理上分布,以实现负载和性能目的,每个数据库都有独特的数据....一旦实现,我计划使用 binlog 在辅助数据库上复制这些特定表。与此同时,我想保持这些表同步。除了使用 cronjob 和 mysqldump 之外,还有更优雅的方法吗?

答案1

如果你的最终目标是分离服务器,那么我建议在不同的端口上运行单独的实例,并在两者之间使用标准复制

快速谷歌结果

或者,你可以使用触发器来复制,类似于

CREATE TRIGGER replicatetable AFTER INSERT ON db1.table
  FOR EACH ROW BEGIN
    INSERT INTO db2.table(field1,field2, ...) values (db1.table.field1,db1.table.field2, ...);
  END;

UPDATE 和 DELETE 类似

答案2

根据您的版本 MySQL 5.1+,我建议使用复制。尤其是考虑到您计划将来拥有一个集群。

相关内容