我有两个 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/