2013-01-15 4 views
20

Ich habe mehr als 50 Datenbanken in meinem postgresql-Server gehostet. Ich muss einige von ihnen auf einen anderen Host verschieben, um Speicherplatz freizugeben, aber wie kann ich den Speicherplatz messen, der von jeder Datenbank auf meinem Volume verwendet wird?Postgresql den gesamten von einer Datenbank belegten Speicherplatz finden

Gibt es eine Funktion existiert, um die Informationen, die ich will?

Antwort

1

Dies ist eine alte Frage, aber ich schaffte eine Art und Weise die Ergebnisse des Linux-Befehls, um zu sehen df -h (Dateisystem, Größe, Benutzer, Avail, Verwenden%, Montiert auf) über eine SQL-Abfrage, damit Ihre freier Speicherplatz und insgesamt verfügbarer Speicherplatz für ein bestimmtes Dateisystem. Nicht genau, worum es in der Frage geht, aber hilfreich für einige von mir. Ich wünsche, dass Antwort hier vor Stunden war, so dass ich es bin setzen hier (nur Linux):

einen cron-Job wie diesen erstellen:

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

eine Fremd Tabelle erstellen abfragen:

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

dann Ihre Tabelle wie folgt abfragen:

select * from diskspaceinfo 

Wenn Sie natürlich nur etwas Bestimmtes will nur filt er den Tisch für was Sie wollen. Es hat Einschränkungen, ist aber sehr nützlich für mich.

Wenn Sie plperlu haben, können Sie diese Funktion verwenden: https://wiki.postgresql.org/wiki/Free_disk_space

Ein nützlicher Link: https://wiki.postgresql.org/wiki/Disk_Usage

+1

Ein weiterer +1 für Bergsteigen von einem montaineer! – pylover

Verwandte Themen