我目前有一个基于 PostgreSQL 8.1 的项目。但是,其中的一些数据处理需要在最新版本为 7.4 的服务器上进行(目前,只能yum
在那里使用官方软件包)。
我希望能够将处理过程拆分开来,这样 MySQL 更适合的数据就可以通过 MySQL 数据库进行操作,而 PostgreSQL 更适合的数据也可以在那里进行操作。
我还希望在两个不同的 RDBMS 环境之间拥有一个完全复制的环境,以实现冗余。
我找到了几篇关于如何在 MySQL 中进行集群或影子化的文章(例如这里),并且我读过 MySQL复制章节。
我想知道是否有一种方法(最好是“好”的方法!)可以从 PostgreSQL 订阅到 MySQL db,以及从 MySQL 订阅到 PostgreSQL db。
更新-
我并不反对自己编写接口机制,如果需要的话我也会这么做;只是希望已经存在可以帮我处理这个问题的东西 :)
答案1
尽管大多数 DBMS 都具有某种本机复制支持(如 MySQL 和 PostgreSQL),但据我所知,它们总是用于复制到同一 DBMS 的其他实例。
我不知道有哪个 DBMS 的复制支持可以复制到其他 DBMS。原因可能是跨不同 DBMS 进行复制与复制到同一 DBMS 的问题截然不同:许多概念(触发器、约束、表空间等)会有所不同,对于每个概念,必须决定是否/如何在复制时处理这些内容。
因此,我认为最好的选择是使用某种数据迁移/数据传输工具并编写某种复制脚本。这可能涉及暂时关闭传输数据库。此外,进行“双向”同步可能相当困难,因此您可能需要考虑是否可以不这样做。
或者,您可以尝试创建一些自定义解决方案,例如仅复制一些表,这样对于给定的表只有一个“主”数据库。
很抱歉让您失望,但我担心没有符合您要求的通用复制解决方案,因此您必须采取不同的方法。