PostgreSQLでデータベースの実データサイズを調べる
2016/02/09
データベースにはそれぞれoidという識別子が設定されています。
そして、実際にデータが格納されているディレクトリ名にもこのoidが付いています。
ですので、このoidが分かれば、あとは該当のディレクトリのサイズを調べることで、データベースの実データサイズが分かるのです。
oidはpg_stag_databaseという稼働統計情報から調べることができます。
1 2 3 4 5 6 7 |
# select datid,datname from pg_stat_database; datid | datname --------+-------------------------------- 1 | template1 12172 | template0 12180 | postgres 30310 | hoge |
このdatidというのがデータベースのoidです。hogeデータベースのoidは30310ということになります。
次にPostgreSQLのデータディレクトリから30310という名前のディレクトリを探します。
※データディレクトリの場所は環境やinitdb時の指定により異なります。私の環境では/usr/local/pgsql/data/baseにありました。
1 2 3 4 5 6 |
[/usr/local/pgsql9.1/data/base]$ du -sh ./* 5.7M ./1 5.7M ./12172 5.8M ./12180 32M ./30310 0B ./pgsql_tmp |