如何在远程 PostgreSQL 集群上运行 pg_relation_filepath-function?

问题描述

我在服务器 10.10.10.1 上有一个 Postgresql 集群和一个测试数据库“PG114” 测试表'dbo.emp_t1'。

使用我可以执行的集群:

选择 pg_relation_filepath ('dbo.emp_t1');

我得到以下结果:

pg_tblspc/16394/PG_11_201809051/16395/3978415

现在我正在另一台服务器 10.10.10.2 上使用 Postgresql 集群。

我想连接到第一台服务器 10.10.10.1 上的集群(例如 使用 dblink-extention) 并获取有关同一表的相同信息 或对象“dbo.emp_t1”。

运行此类任务的最佳方法是什么?

解决方法

这是两个不同功能的非常简单的组合。关于它的最困难的部分是需要嵌套引号,我在这里通过使用美元报价来处理一个级别。我使用了我自己的 IP 地址和表名而不是你的,以便我可以验证它是否有效:

select * from dblink(
   'host=192.168.0.14',$$SELECT pg_relation_filepath ( 'public.j' )$$
) f(x text);