2010年5月 7日

[pgsql-jp: 40262] Re:複数DBのXID


ivp sasaki <sasaki@xxxxx> wrote:

> このような値でした。その後深夜に定期vacuumが実行され、
> 今朝見てみると
> datname | age
> ---------------+------------
> postgres | 1077866122

> このように減少していました。

たぶん、単に全てのデータベースに VACUUM がかかったのではないかと思います。
バージョンにもよりますが、例えば PG 8.1 では、VACUUM による行ごとの
XID のフリーズの閾値は 2^30 - 1 = 1,073,741,823 のため、
長い時間使っていると age はこの値前後に留まることになります。
参考: http://www.postgresql.jp/document/current/html/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND

> これは、Postgresとしては正常な動きなのでしょうか?
> システムカタログテーブルはこのような形で他のDBと
> 影響し合うものなのでしょうか?

VACUUM のかけ方にもよりますが、(template0 を除く) 全てのデータベースの age が
10億程度に保たれるのは、正常な動作です。むしろ、20億まで増え続けるようだと、
いわゆるXID 周回によるデータ欠損が発生する恐れがあります。

------------------------------------------------------------
NTT オープンソース ソフトウェア センタ
板垣貴裕 <itagaki.takahiro@xxxxx>

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




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