[pgsql-jp: 40776] Re: 【質問】baseフォルダ配下のファイル削除について

MauMau maumau307 @ gmail.com
2011年 5月 14日 (土) 15:51:56 JST


村上さん

ファイル$PGDATA/x/yがどのテーブルまたはインデックスのためのものかを確認するには、次のようにします。

まず、任意のデータベースに接続し、xというoidを持つデータベース名を確認します。 


$ psql -c 'select datname from pg_database where oid = x' postgres

次に、上で得られたデータベースに接続し、yというoidを持つテーブルまたはインデックスが何かを確認できます。

$ psql -c 'select relname from pg_class where relfilenode = y' <上で得られたデータベース名>

上記の操作の説明は、マニュアルの次のページに記されています。

http://www.postgresql.jp/document/9.0/html/storage-file-layout.html

以上です。

From: "m.murakami" <m.murakami @ lightcafe.co.jp>
> MauMauさん、梅田さん
>
> ご回答ありがとうございます。
> 村上です。
>
>>base/16384/に大きなファイルが残っているとのことですので、それらのファイルが 
>>
> どのテーブルやインデックスのためのファイルかを確認してみ>てください。そのた 
> 
> めにはシステムカタログpg_databaseとpg_classを検索します。おそらく、何らかの 
> 
> テーブルやインデックスをDROPしてい>ないものと思われます。
> pg_classのselectの確認・\dtなどでテーブルがないか確認していましたが、
> ユーザが使用しているようなオブジェクトが残っていませんでしたので、何ものこっ 
> 
> ていないのか
> と認識しておりました。
>
> お手数ですが、pg_databaseとpg_classで対象のテーブル、インデックスの検索方法 
> 
>> 詳細を教えていただけないでしょうか?参考URLでも問題ありません。
>
>>ちなみに、「ロック状態」というのはPostgreSQLのマニュアルに登場しないように
> 思いますが、どのような状態のことでしょう?
> こちらはpg_locksでロック状態を確認しました。
>
> 以上、よろしくお願い致します。
>



pgsql-jp メーリングリストの案内