Postgresql 如何找到特定OS数据文件与哪个postgres表关联?

Postgresql 如何找到特定OS数据文件与哪个postgres表关联?,postgresql,Postgresql,我有一个postgres 9.3数据库,对pg_类的查询报告表空间使用的总空间为568G,服务器上的相应文件报告为685G 难道所有的文件库都不应该出现在pgu类中,或者我遗漏了什么吗。例如,在“.7”中有名为“103154174”、“103154174.1”等的文件。103154174不出现在pg_类中。(FWIW,该文件的时间戳为今年6月5日) 我错过什么了吗?当我从pg_类中选择pg_relationship_filepath(c.oid)时,该文件不应该出现在我正在使用的数据库的目录中吗

我有一个postgres 9.3数据库,对pg_类的查询报告表空间使用的总空间为568G,服务器上的相应文件报告为685G

难道所有的文件库都不应该出现在pgu类中,或者我遗漏了什么吗。例如,在“.7”中有名为“103154174”、“103154174.1”等的文件。103154174不出现在pg_类中。(FWIW,该文件的时间戳为今年6月5日)

我错过什么了吗?当我从pg_类中选择pg_relationship_filepath(c.oid)时,该文件不应该出现在我正在使用的数据库的目录中吗?或者它可以是包含不同名称文件的不同表的一部分吗

以下是我用来识别服务器文件的查询:

SELECT pg_relation_filepath(c.oid) filepath,
       nspname, 
       relname, 
       relnamespace, 
       reltablespace, 
       (relpages * 8) / 1024 size_mb, 
       sum((relpages * 8) / 1024) over (partition by relnamespace) ns_total_size_mb,
       sum((relpages * 8) / 1024) over (partition by reltablespace) ts_total_size_mb,
       sum((relpages * 8) / 1024) over (partition by 'x') total_size_mb,
       sum((relpages * 8) / 1024) over (partition by 'x'order by relpages desc) running_total_size_mb
FROM pg_class c
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)

编辑:让我说清楚。我知道pg_类不包含扩展名为.1、.2等的文件的条目。我指的是没有文件扩展名的文件(例如,上面提到的文件名103154174)

文件以
.1
.2
结尾。。。不会在pg_课上出现。pg_类只列出每个关系一次,但如果每个关系超过1 GB,则可以由多个文件组成

当一个表或索引超过1GB时,它被划分为GB大小的段。第一段的文件名与filenode相同;随后的段被命名为filenode.1、filenode.2等


pg\u relationship\u filepath()
将只报告“基本文件”,而不报告附加的段。

over(按“x”分区)
可以替换为
over()
over(按“x”按relpages desc排序)
可能应该是
over(按c.oid排序)
我问的文件名为“103154174”(即,没有.extenders)。它在服务器上,但据我所知,在数据库中找不到。