PostgreSQLで各DBが使用しているディスク容量を調べる方法のメモ。
SQLで確認する方法
DBにログインして以下のSQLを実行すると、DB一覧と使用容量が確認できる。
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
実データで確認する方法
DBサーバの実データからも確認ができる。
まず、PostgreSQLでは各DBに「oid」という識別子がある。
実データのディレクトリ名称はoidのため、先にどのDBがどのoidかを調べる必要がある。
DBにログインして以下のSQLを実行すると、DB一覧とoidが確認できる。
select datid,datname from pg_stat_database;
datid が oid、datname が DB名である。
次にDBサーバでoidのディレクトリを探す必要がある。
多くの場合、PostgreSQLは以下のどちらかにインストールされる。
/usr/local/pgsql/
/var/lib/pgsql/
これらの配下に data というディレクトリがあり、そこにoidのディレクトリがあるため、
あとは各ディレクトリの使用容量をduコマンドで見れば良い。
# cd /usr/local/pgsql/data
# du -sh ./*
尚、クエリで確認した結果と実データで確認した結果を比較したところ、使用容量はほぼ一緒だった。