有两个应用程序(PHP - Symfony 2 - Doctrine 2),每个应用程序都拥有自己的PostgreSQL数据库。
第一个是中央服务器(S),位于我们的位置。它包含来自客户的匿名数据。
第二部分(P)位于其他地方 - 通常位于客户的公司 - 并包含一些私人数据。该应用程序能够将此私人数据分配给服务器的匿名数据。
我们需要根据存储在P和S上的列来搜索和排序数据。问题是,我们无法将私有数据发送到服务器。数据绑定不是1:1。 (P)部分上的一行可以分配给服务器(S)上的一行或多行。
我们可以:
有没有办法如何在两个数据库上执行一个查询? DB-link不是一个选项 - 它对我们来说不够稳定。
有没有办法如何实时将搜索数据从S同步到P以在一个地方搜索? (关于S的数据可能会从不同的地方改变)。
这个问题有更好的解决方案吗?
答案 0 :(得分:1)
不确定为什么dblink对你来说不够稳定,但我可以想到其他一些可能的解决方案,一个是postgresql_fdw - http://www.postgresql.org/docs/current/static/postgres-fdw.html,基本上只是创建指向另一个服务器的外表。
类似于dblink的另一个选择是使用像plproxy这样的东西,它应该是非常稳定的,因为Skype使用它。
或者,你可以用londiste或slony复制你想要的特定数据。