1

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

Firstdb”9.2 ,它存储在 LAN 服务器的端口5432中。

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

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

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

关于如何做到这一点的任何想法?

谢谢大家的时间。

4

1 回答 1

2

对于运行联合查询,我大部分时间使用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

host yourdb youruser 0.0.0.0 md5

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

于 2018-03-29T11:00:22.183 回答