2011年5月14日

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

村上さん

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


投稿者 xml-rpc : 2011年5月14日 15:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/103832
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。