在postgreSQL中镜像特定的表[英] Mirror specific tables in postgreSQL

本文是小编为大家收集整理的关于在postgreSQL中镜像特定的表的处理方法,想解了在postgreSQL中镜像特定的表的问题怎么解决?在postgreSQL中镜像特定的表问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

这个问题很简单,但我找不到任何文档:

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

基本思想是拥有双数据库,它们之间只共享特定的表

任何建议将不胜感激!如果 PostgreSQL 做不到,还有其他 RDBMS 可以吗?提前致谢!

编辑:我想这样做的原因是使用 django 在两个数据库之间共享"任意"信息,而不会丢失正确的引用完整性.例如:

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

推荐答案

有几种可能:

  • 主/主复制(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 可能是如何共享数据的最简单的解决方案.

本文地址:https://www.itbaoku.cn/post/1764192.html