我有两个POSTGRES数据库存储在不同的服务器中。
“ Firstdb”是9.2版 ,它存储在 LAN 服务器的端口5432中。
“ Seconddb”是版本 10,它作为本地主机存储到我的 PC 端口5432。
我可以通过pgAdmin4 version 2.0访问它们。
我想在这两个数据库之间运行查询来比较数据。
关于如何做到这一点的任何想法?
谢谢大家的时间。
我有两个POSTGRES数据库存储在不同的服务器中。
“ Firstdb”是9.2版 ,它存储在 LAN 服务器的端口5432中。
“ Seconddb”是版本 10,它作为本地主机存储到我的 PC 端口5432。
我可以通过pgAdmin4 version 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
:
host yourdb youruser 0.0.0.0 md5
另一种方法是使用dblink,它不会创建外部表,但使您能够直接向目标数据库发起查询并检索结果集,就像它是本地的一样。