2013-01-15 83 views
20

我的postgresql服務器中託管了50多個數據庫。我需要將它們中的一些移動到另一臺主機上,以釋放一些磁盤空間,但是如何測量捲上每個數據庫使用的磁盤空間?Postgresql查找數據庫使用的總磁盤空間

是否有任何函數可以獲取我想要的信息?

回答

1

這是一個老問題,但我創建了一個辦法df -h(文件系統,大小,使用,其他,使用%,裝上),通過看linux命令結果的SQL查詢,因此您的可用磁盤空間和給定文件系統的可用磁盤空間總量。不完全是這個問題的關鍵,但對某些使用/我有幫助。我想這個問題的答案在這裏幾小時前,所以我把它在這裏(僅限Linux):

創建cron作業是這樣的:

@hourly df -h | awk '{print $1","$2","$3","$4","$5","$6}' > /pathhere/diskspaceinfo.csv` 

創建一個外部表查詢:

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'); 

然後查詢你的表是這樣的:

select * from diskspaceinfo 

如果你只是想,當然具體的事情,只是FILT呃你想要的桌子。它有侷限性,但對我來說非常有用。

如果你有plperlu,你可以使用這個功能: https://wiki.postgresql.org/wiki/Free_disk_space

一個有用的鏈接: https://wiki.postgresql.org/wiki/Disk_Usage

+1

另一個+1登山從的montaineer! – pylover