我有两个应用程序,它们使用同一集群中的两个几乎相同的MySQL数据库。某些表必须包含不同的数据,但其他表应该包含相同的内容(即db1.tbl中的所有写入和行应该在db2.tbl中可访问,反之亦然)。
如何正确处理此问题?请注意,应用程序使用硬编码的表名(但不是数据库名),因此不能简单地告诉应用程序2访问db1.tbl。
针对不同mysqld进程的数据库
您应该查看官方手册以复制单个表: http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_replicate-do-table
您可以在两个mysql进程之间设置主-主关系,但请注意要小心并确保您的主键唯一。
针对位于同一服务器和mysqld服务上的数据库
在设计方面,我认为您应该考虑将所有共享表移动到不同的数据库下。 这样,您就可以避免更新它们的触发器所带来的所有过度负担。