postgreSQL中的镜像特定表

时间:2014-01-15 13:09:21

标签: postgresql replication

问题很简单,但我找不到任何文件:

如何将特定表从数据库镜像到另一个?

基本思想是让两个数据库只共享它们之间的特定表

任何建议将不胜感激!如果PostgreSQL无法做到,那还有另一个RDBMS吗? 提前谢谢!

编辑: 我想这样做的原因是使用django在两个数据库之间共享“任意”信息,而不会丢失适当的参照完整性。 例如:

假设我们有客户,产品和销售表。我们想 在两家公司之间分享我们的客户和产品基础,但不是我们的 销售。这可以扩展到任何特定情况(股票股票 但不是客户端,用户而是权限等)。所以我想到了 最简单的解决方案是在数据库之间共享特定的表。如果 有一个更好的方法来解决问题,随时分享你的问题 的经验!提前致谢

1 个答案:

答案 0 :(得分:5)

几乎没有可能:

  • 主/主复制(Bucardo),主/从复制(Slony)

  • 使用外部数据包装器 - 您可以从其他数据库访问任何表。 9.2提供舒适的FDW只读驱动程序,9.3包含读/写FDW驱动程序

CREATE EXTENSION postgres_fdw ;
CREATE SERVER omega FOREIGN DATA WRAPPER postgres_fdw 
   OPTIONS (host 'localhost', dbname 'other_database');
CREATE USER MAPPING FOR pavel SERVER omega;
CREATE FOREIGN TABLE oo (a int) SERVER omega;

postgres=# EXPLAIN ANALYZE VERBOSE SELECT * FROM oo WHERE a BETWEEN 1 AND 100;
FDW可能是如何共享数据的最简单的解决方案。