微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在集群中找到最大的文件

如何解决如何在集群中找到最大的文件

Debian Linux 服务器中的 Postgres 13 集群包含 30 个数据库数据库包含多个模式。 如何找到占用磁盘空间最多的最大文件? 我试过了

select
    relname::char(25),pg_size_pretty(pg_total_relation_size(c.oid))::char(10) as totalsize,n.nspname::char(12),case
        when c.relkind='i' then 'index'
        when c.relkind='t' then 'toast'
        when c.relkind='r' then 'table'
        when c.relkind='v' then 'view'
        when c.relkind='c' then 'composite type'
        when c.relkind='S' then 'sequence'
        else c.relkind::text
      end ::char(14) as "type"
from
    pg_class c
    left join pg_namespace n on n.oid = c.relnamespace
    left join pg_tablespace t on t.oid = c.reltablespace
where
    (pg_total_relation_size(c.oid)>>21)>0 order by
    pg_total_relation_size(c.oid) desc

但它只返回当前数据库的大小。如何在整个集群中运行?可以为此使用一些 plpgsql 脚本。 输出包括数据库名称列。

客户端应用程序使用 psqlODBC 来获取数据,因此最好避免使用 psql 或 shell 脚本。

解决方法

您不能这样做,因为您只能查询您所连接的数据库。需要依次连接各个数据库。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。