[pgsql-jp: 39957] Re: pg_dumpでエラーが出てしまう

PowerKit H.Tsuchiyama tutiyama @ powerkit.co.jp
2009年 8月 13日 (木) 12:52:45 JST


 土山です。

 7.4 の話ですが、同じ様な症状にであったことがあります。

 その際は pg_dump -t でテーブル毎にバックアップを行い、どのテーブルでエ
ラーが発生しているのか特定し、そのテーブルを drop することで回避できまし
た。

 ご参考まで。

> お世話になります。本田です。
> 
> > 破損でよくあるケースはトランザクションIDの周回ですが、対処はされていますか?
> > もし、長い間 VACUUM をしていないようであれば、対象のデータベースに
> > VACUUM を行うと、データを正常な状態に復旧できるかもしれません。
> vacuumとvacuum fullをしてみましたがダメでした。
> 
> select * from pg_type where typnamespace = 18841;
> をみると既にDROP済みのテーブル名が残ってるようです。
> (perlのDBD::Pgのmake testで作られるテーブル)
> typname | typnamespace
> ----------------------+--------------
> dbd_pg_test2 | 18841
> _dbd_pg_test2 | 18841
> dbd_pg_testsequence4 | 18841
> 
> 上記テーブルは不要で、バックアップさえ取れればDB作り直しも可能なのですが
> deleteしたらいける可能性ってありますでしょうか?
> 
> 以上、よろしくお願いします。
> 
> Itagaki Takahiro さんは書きました:
> > 板垣です。
> >
> > shin honda <makoto @ fes-total.com> wrote:
> >
> >   
> >> postgresql 8.0を利用しているのですが
> >> pg_dumpを実行すると
> >> pg_dump: schema with OID 18841 does not exist
> >> と言われてエラーになってしまいます。
> >>     
> >
> > そのエラーだと、データそのものが破損している可能性が高いです。
> > システムカタログに不整合が生じています。
> >
> > 破損でよくあるケースはトランザクションIDの周回ですが、対処はされていますか?
> > もし、長い間 VACUUM をしていないようであれば、対象のデータベースに
> > VACUUM を行うと、データを正常な状態に復旧できるかもしれません。
> >
> > ------------------------------------------------------------
> > NTT オープンソース ソフトウェア センタ
> > 板垣貴裕 <itagaki.takahiro @ oss.ntt.co.jp>
> >
> >
> >
> >
> >   
> 
> 

                                                               土山 英俊
                                                      (有)パワーキット
                                                 tutiyama @ powerkit.co.jp



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