首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Postgresql查找数据库使用的总磁盘空间

Postgresql查找数据库使用的总磁盘空间
EN

Stack Overflow用户
提问于 2013-01-16 04:33:14
回答 4查看 44.6K关注 0票数 59

我有超过50个数据库托管在我的postgresql服务器上。我需要将它们中的一些移动到另一台主机上,以释放一些磁盘空间,但是我如何测量我的卷上的每个数据库使用的磁盘空间?

有没有什么函数可以获取我想要的信息?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-16 04:35:12

代码语言:javascript
复制
SELECT pg_database_size('geekdb')

代码语言:javascript
复制
SELECT pg_size_pretty(pg_database_size('geekdb'))

http://www.thegeekstuff.com/2009/05/15-advanced-postgresql-commands-with-examples/

票数 84
EN

Stack Overflow用户

发布于 2017-10-14 03:26:21

这是一个老问题,但我创建了一种方法,可以通过sql查询查看linux命令df -h (文件系统、大小、已用、可用、使用%、已装载)的结果,从而查看给定文件系统的空闲磁盘空间和总可用磁盘空间。不完全是关于问题的,但对一些有用的/我有帮助。我希望答案早在几个小时前就在这里,所以我把它放在这里(仅限linux):

如下所示创建cron作业:

代码语言:javascript
复制
@hourly df -h | awk '{print $1","$2","$3","$4","$5","$6}' > /pathhere/diskspaceinfo.csv`

创建要查询的外表:

代码语言:javascript
复制
create extension file_fdw;

create server logserver FOREIGN DATA WRAPPER file_fdw;

CREATE FOREIGN TABLE diskspaceinfo 
(file_sys text, size text, used text, avail text, used_pct text, mount text) 
SERVER fileserver 
OPTIONS (filename '/pathhere/diskspaceinfo.csv', format 'csv');

然后像这样查询表:

代码语言:javascript
复制
select * from diskspaceinfo

如果你只是想要一些特定的东西,当然只需要过滤表中你想要的东西。它有局限性,但对我来说非常有用。

如果你有plperlu,你可以使用这个函数:https://wiki.postgresql.org/wiki/Free_disk_space

一个有用的链接:https://wiki.postgresql.org/wiki/Disk_Usage

票数 5
EN

Stack Overflow用户

发布于 2019-10-04 00:20:21

我喜欢登山者的回答。我调整了cron以返回字节并删除标题行,如下所示。

代码语言:javascript
复制
* * * * * df -B1 | tail -n+2 | awk '{print $1","$2","$3","$4","$5","$6}' > /var/www/diskspaceinfo.csv
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14346371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档