□postgreSQL テーブル名とファイル名との関連を調べる。
postgreSQLは、テーブルとファイルの関係が一致します。
Oralceなどのようなデータファイルを独自で管理するようなことはなく、OSのファイル管理を
利用する形になっています。どのテーブルのデータがどのファイルに実際格納されているかは
下記のSQL文から確認できます。
select relname , relfilenode from pg_class order by 1;
(実行例)
iplocksdb=# select relname , relfilenode from pg_class order by 1;
relname | relfilenode
---------------------------------+-------------
pg_description | 16416
pg_group | 1261
pg_proc | 1255
pg_rewrite | 16410
pg_user | 16681
pg_rules | 16684
pg_views | 16688
pg_xactlock | 0
pg_tables | 16691
pg_indexes | 16694
pg_stats | 16698
relfilenode項目の数値が、ファイル名にあたる。データ格納用ディレクトリ
の同名のファイルを確認してください。只一定のサイズを超えるとロールオーバー
を起こして複数ファイルに分割されます。
その他便利なコマンド
テーブルの実際のサイズ(Byte単位): select pg_relation_size('<テーブル名>')
データベースの実際のサイズ(Byte単位):select pg_database_size('<データベース名')
また、各データベースのデータファイルの格納されているフォルダは下記SQL文にて調べる
ことができます。
select datname,oid from pg_database;
iplrepdb=> select datname,oid from pg_database;
datname | oid
----------+-------
postgres | 10793
template1 | 1
template0 | 10792
(5 rows)
datnameがデータベース名に該当します
oidが、フォルダの名前に該当します。
<PostgreSQL データディレクトリ>\base\<oid>
または
<PostgreSQL データディレクトリ>/base/<oid>
で示されるフォルダに、PostgreSQLの各オブジェクトに対応するファイルが保存されます。
(テーブル、インデックス)
<PostgreSQL データディレクトリ>は起動時の-Dに指定するフォルダになります。
最終更新:2008年03月26日 10:15