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

m.murakami m.murakami @ lightcafe.co.jp
2011年 5月 14日 (土) 08:45:02 JST


MauMauさん、梅田さん

ご回答ありがとうございます。
村上です。

>base/16384/に大きなファイルが残っているとのことですので、それらのファイルが
どのテーブルやインデックスのためのファイルかを確認してみ>てください。そのた
めにはシステムカタログpg_databaseとpg_classを検索します。おそらく、何らかの
テーブルやインデックスをDROPしてい>ないものと思われます。
pg_classのselectの確認・\dtなどでテーブルがないか確認していましたが、
ユーザが使用しているようなオブジェクトが残っていませんでしたので、何ものこっ
ていないのか
と認識しておりました。

お手数ですが、pg_databaseとpg_classで対象のテーブル、インデックスの検索方法
の
詳細を教えていただけないでしょうか?参考URLでも問題ありません。

>ちなみに、「ロック状態」というのはPostgreSQLのマニュアルに登場しないように
思いますが、どのような状態のことでしょう?
こちらはpg_locksでロック状態を確認しました。

以上、よろしくお願い致します。

-----Original Message-----
From: pgsql-jp-bounces @ ml.postgresql.jp
[mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of Umeda, Hiroki
Sent: Friday, May 13, 2011 9:35 PM
To: 'PostgreSQL Japanese Mailing List'
Subject: [pgsql-jp: 40774] Re: 【質問】baseフォルダ配下のファイル削除につい
て

はじめまして。梅田といいます。

以前、似たような現象にあったことがありますが、そのときの状況は、
テーブルとindexを同時にDDLするときに、
主キー制約をtablespace指定なしでDDL文に記述して、同じキーのindexは
tablespace指定付記述して
オベジェクトを作成した際に
base以下に余計なindexができてしまったことがありました。

これとは別件かもわかりませんが、ご参考までに。



-----Original Message-----
From: pgsql-jp-bounces @ ml.postgresql.jp
[mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of MauMau
Sent: Friday, May 13, 2011 9:21 PM
To: PostgreSQL Japanese Mailing List
Subject: [pgsql-jp: 40773] Re: 【質問】baseフォルダ配下のファイル削除につい
て

はじめまして、村上さん。MauMauといいます。



From: "m.murakami" <m.murakami @ lightcafe.co.jp>
> はじめまして。村上と申します。
> 以下、長文となってしまいますが、ご容赦願います。
>
> PostgreSQLを使用していて、base配下に作成されているデータ(ファイル)の
> 削除について確認があります。
>
> ■問題点
> オブジェクトの削除(Drop tableなど)は正常に完了して
> vacuumフルを実行しましたが、base配下に作成されているデータ(ファイル)が
> 削除されません。(27GBほど)
>
>
> ・サイズが足りなかったせいか、あるテーブル、インデックスがロック状態となる
>
> ・実行中のセッションがないことを確認し、DBインスタンスを再起動し、ロック状
態
>
> を解除。
>
> ・元々あった30GBのデータも、データ移行テストで不要になったため、DBユーザ
> (user)にて
>  すべてのオブジェクトを削除(Drop table, indexなど)し、vacuumフルを実行。
>   →使用サイズが50GBから27GBになった(5/11と5/13に実施)
>  ★本来であれば、ここでpg_catalogなど管理系のデータファイル以外は削除され
る
>
> 認識です。
>    (DBユーザ(user)が作成した、baseディレクトリ配下のデータファイルが削除
さ
>
> れる認識)
>
> ■base配下のサイズ使用量
> 4.3M    1
> 4.3M    11510
> 4.4M    11511
> 27G     16384
> 4.0K    pgsql_tmp
>

DROP TABLE/INDEXを実行したトランザクションをコミットした時点で、そのテーブル
やインデックスのデータを格納していたファイルは削除されます。VACUUM FULLで
ファイルが削除されるわけではないです。

base/16384/に大きなファイルが残っているとのことですので、それらのファイルが
どのテーブルやインデックスのためのファイルかを確認してみてください。そのため
にはシステムカタログpg_databaseとpg_classを検索します。おそらく、何らかの
テーブルやインデックスをDROPしていないものと思われます。

ちなみに、「ロック状態」というのはPostgreSQLのマニュアルに登場しないように思
いますが、どのような状態のことでしょう?



__________  ESET NOD32 Antivirus からの情報, ウイルス定義データベースのバー
ジョン 6118 (20110513) __________

このメッセージは ESET NOD32 Antivirus によって検査済みです。

http://canon-its.jp




__________ Information from ESET NOD32 Antivirus, version of virus signature
database 6118 (20110513) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com




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