如何在MySQL中创建关联或镜像表

3

我有两个应用程序,它们使用同一集群中的两个几乎相同的MySQL数据库。某些表必须包含不同的数据,但其他表应该包含相同的内容(即db1.tbl中的所有写入和行应该在db2.tbl中可访问,反之亦然)。

如何正确处理此问题?请注意,应用程序使用硬编码的表名(但不是数据库名),因此不能简单地告诉应用程序2访问db1.tbl。


1
到目前为止,我唯一的想法是使用视图或触发器,但也许在这种情况下它们都不正确。 - Jacob Courtneay
2个回答

1

我应该提到这些数据库在同一集群(同一台服务器)上。您是否建议在同一服务器内进行主-主复制?我不知道这是否可能,或者二进制日志会如何行事(此服务器已经充当主服务器)。 - Jacob Courtneay

0

针对不同mysqld进程的数据库

您应该查看官方手册以复制单个表: http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-do-table

您可以在两个mysql进程之间设置主-主关系,但请注意要小心并确保您的主键唯一。

针对位于同一服务器和mysqld服务上的数据库

在设计方面,我认为您应该考虑将所有共享表移动到不同的数据库下。 这样,您就可以避免更新它们的触发器所带来的所有过度负担。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接