[pgsql-jp: 39962] Re: OIDとXIDを使いきると?

kenbo0323 @ yahoo.co.jp kenbo0323 @ yahoo.co.jp
2009年 8月 14日 (金) 16:06:20 JST


皆様

ご丁寧にありがとうございます。大変参考になりました。

当方で使用している環境が8.0のため再度確認させていただきたいのですが、恐れ入りますが8.0の場合、以下の認識であっていますでしょうか?

・OID、XID共に、使いきるとカウンターは周回してしまう(XIDはVACUUMすれば回避可能)
・OIDが周回した場合、データの新規投入は不可になる?
・XIDが周回した場合、データの新規投入は可能だが、投入する度に古いデータが消える

という認識であっていますでしょうか?

> -----Original Message-----
> From: pgsql-jp-bounces @ ml.postgresql.jp
> [mailto:pgsql-jp-bounces @ ml.postgresql.jp] On Behalf Of
> Itagaki Takahiro
> Sent: Friday, August 14, 2009 3:05 PM
> To: PostgreSQL Japanese Mailing List
> Subject: [pgsql-jp: 39961] Re: OIDとXIDを使いきると?
>
> 板垣です。
>
> 加藤 健太 <kenta @ diverta.co.jp> wrote:
>
> > OID・・カラムやインデックスなどのPostgreSQL内の各オブジェクトのユニーク
なID
> > XID・・データ操作(select,updateなど)のトランザクション毎のユニークなID
> >
> > OIDはそうそう使い切らないと思うのですが、
>
> OID については、確かに、ユーザテーブルは WITHOUT OID で作り、
> temp テーブルの使いすぎに注意すれば、たぶん周回はしないと思います。
>
> 想定は v8.0 ということですが、v8.1 以降であれば以下の改善により、
> さらに安心になっています。
> http://www.postgresql.jp/document/current/html/release-8-1.html
> | OIDカウンタが周回した後に生じる、既存のシステムオブジェクトと
> | オブジェクトID(OID)が競合する問題を修正しました。
>
>
> > XIDはバキュームをしていないと使い切ってしまいます。
>
> 定期的にデータベース単位の VACUUM (テーブル単位ではダメ)が必要です。
> VACUUM だけやっておけば、データベースは止めずに済むはずです。
> あと、template1 に対する VACUUM は忘れやすいので、ご注意を。
>
> XID 周回についても、新しいバージョンほど管理が自動されています。
> 特に 8.2 以降ならば、データロストだけは確実に防げるようになっています。
> 8.0 だと、まだ自衛機能がありません。うっかり周回させてしまうと、
> 古いデータから順に消えていってしまいますので、こちらもご注意ください。
>
> ------------------------------------------------------------
> NTT オープンソース ソフトウェア センタ
> 板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
>
>



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