[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 メーリングリストの案内