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

Tatsuo Ishii ishii @ sraoss.co.jp
2009年 8月 14日 (金) 21:07:39 JST


石井です。

> >> ・OIDが周回した場合、データの新規投入は不可になる?
> > 通常のデータ投入自体はできると思いますが、テーブルの作成やラージオブジェクトの
> > 作成でエラーになる可能性があります。(繰り返せば成功するかも)
> >
> >> ・XIDが周回した場合、データの新規投入は可能だが、投入する度に古いデータが消える
> > YESですが、テーブルやデータベースごと無くなるかもしれません。
> > VACUUM すれば正常な状態に復帰しますので、すぐに VACUUM すべきです。
> >
> 
> 便乗ですが、ちなみにこのような状況を試してみる
> 簡単な方法というのはあるのでしょうか。

他に良い方法があるのかも知れませんが、私の場合、共有メモリ上の、

ShmemVariableCache->nextXid;

を直接触るC関数を書いてXIDを無理やり周回させて実験しました。

oidはやったことはありませんが、たぶん、

ShmemVariableCache->nextOid;

をいじればよいと思います。

もちろんこんなことをするとデータベースが以後使い物にならなくなる可能性
が高いので、あくまで実験用ということで。
--
Tatsuo Ishii
SRA OSS, Inc. Japan



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