postgresql - 查询存储在不同服务器上的两个不同的postgres数据库

标签 postgresql postgresql-9.2 postgres-fdw

我有两个 POSTGRES 数据库存储在不同的服务器中。

“Firstdb”版本9.2,它存储在LAN服务器中,端口5432

“Seconddb”版本10,它作为本地主机存储到我的电脑,端口5432 .

我可以通过pgAdmin4版本2.0访问它们。

我想在这两个数据库之间运行查询来比较数据。

关于如何做到这一点有什么想法吗?

感谢大家抽出时间。

最佳答案

为了运行联合查询,我大部分时间使用 postgres_fdw ,这会在源数据库中创建一个外部表。非常方便,但在处理连接时有其注意事项。

一个例子:

CREATE SERVER my_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'target.host.com', port '5432', dbname 'targetdb');
CREATE USER MAPPING FOR postgres SERVER my_server OPTIONS (user 'postgres');

CREATE FOREIGN TABLE my_foreign_table (
  id INT,
  desc TEXT
)
SERVER my_server OPTIONS (schema_name 'public', table_name 'target_table');

根据评论进行编辑:

请记住,源数据库与任何其他应用程序一样,需要访问目标数据库,并且必须在 pg_hba.conf 中进行描述:

托管 yourdb youruser 0.0.0.0 md5

另一种方法是使用 dblink ,它不会创建外部表,但使您能够直接向目标数据库发起查询并检索结果集,就像在本地一样。

关于postgresql - 查询存储在不同服务器上的两个不同的postgres数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49553754/

相关文章:

database - 为什么表 pg_stat_user_tables 是空白的?

postgresql - 您将如何在外部表上创建唯一索引?

postgresql - 无法使用 postgreSQL 9.3 中的外部数据包装器从 pg_index 访问数据

sql - 我如何获得 PostgreSQL 中两个日期之间的季度数?

postgresql - 得到数字除法的精确结果

sql - 如何使用 PostgreSQL 9.2 计算游戏中每个级别的百分位数

json - 如何使用 mongodb_fdw 将动态 JSON 对象绑定(bind)到 PostgreSQL?

python - 从游标创建临时表

sql - PostgreSQL 更新的行多于 where 条件?

python - 使用 sqlalchemy create_engine 配置查询/命令超时?