[pgsql-jp: 35693] Re: vacuum 時のCLOGファイルへの影響について

Katsuhiko Okano k_okano @ po.ntts.co.jp
2005年 7月 7日 (木) 17:27:12 JST


岡野です。
谷田さん、リプライありがとうございます。


------- Reply Message
In message <20050707145642.DF7D.TANIDA @ sra.co.jp>
Date: Thu, 07 Jul 2005 15:10:40 +0900
   "[pgsql-jp: 35689] Re:vacuum 時のCLOGファイルへの影響について"
   "TANIDA Yutaka <tanida @ sra.co.jp>" wrote:

> 谷田です。
> 
> On Thu, 7 Jul 2005 14:50:09 +0900
> Katsuhiko Okano <k_okano @ po.ntts.co.jp> wrote:
> 
> > PostgreSQLのバックアップ/リカバリについて検討しています。
> > バックアップすべきデータとして、
> > $PGDATA/pg_clogディレクトリにあるCLOGファイルも保存しければならないと
> > 考えています。
> 
> バージョンは何で、バックアップの手法は何ですか?
> 
> この設問自体、8.0+PITRでしかあり得ないのは分かりますが、それを明示しない
> と混乱するだけではないでしょうか。以下、その仮定の下で話します。

言葉足らずで申し訳ありません。
ご指摘のとおり、バージョンは8.0.xで、ログをアーカイブする設定
という環境を想定しています。
バックアップはpg_start_backup(),pg_stop_backup()を使用した
オンラインバックアップを考えています。

> 
> > トランザクション数が増えるとCLOGファイルも大きくなる(最大1GB?)のですが、
> > vacuumをすると(XIDの凍結の延長で)CLOGファイルも小さくなるのでしょうか?
> 
> 実験すれば分かりますが、pg_clogのファイル(256KB固定サイズで、数は増えま
> すが大きくなったりしません)は、vacuum時に不要なものはちゃんと削除されま
> す。

おっしゃるとおり、まずは自分で実験してみるべきでした。
バージョン8.0.3でやってみたところ、百万トランザクションでは
VACUUM FULLをしても小さくなりませんでした。
(0000というファイルのサイズが増えてファイル数は1ファイルのままでした)
もっと多くのトランザクションで試してみて結果が分かったら
このMLで報告させていただきます。



> 
> #最大1GBって、どこのドキュメントにありましたっけ?

日本語ドキュメントの「第 49章データベースの物理的な格納」に
> テーブルまたはインデックスが 1 ギガバイトを超えると、
> ギガバイト単位のセグメントに分割されます。
とあったので、同じように分割されるのではないかと推測しました。

> 
> ひょっとして、ものすごく古いバージョンだった場合、残念なことにpg_log内の
> ファイルを小さくする手段はなかったはずです。もっとも、そのころのバージョ
> ンはXIDの凍結もなかったはずですが。
> 
> -- 
> TANIDA Yutaka <tanida at sra.co.jp>
> 



実験結果です。

環境:CentOS Linux 3.4-x86_64 + PostgreSQL 8.0.3
testdb=# SELECT version();
                                                     version
------------------------------------------------------------------------------
-----------------------------------
 PostgreSQL 8.0.3 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 3.2.3
 20030502 (Red Hat Linux 3.2.3-49)
(1 row)


・initdb時
 $PGDATA/pg_clog/0000 サイズ=8192

・pgbenchでトランザクションを実行(終了時のトランザクションID=約1000000)
 $PGDATA/pg_clog/0000 サイズ=253952

・VACUUM FULL VERBOSE後
 $PGDATA/pg_clog/0000 サイズ=253952 タイムスタンプ=VACUUM完了時の時刻


以上です。
----------------------------------------
Katsuhiko Okano
k_okano at po.ntts.co.jp
NTT Sofrware Corp. (division "NBRO-PT4")



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