希望能够在同一服务器上运行的两个 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+,我建议使用复制。尤其是考虑到您计划将来拥有一个集群。