[pgsql-jp: 39587] Re: 起動に失敗します

Hiroki Kataoka kataoka @ interwiz.jp
2008年 9月 19日 (金) 02:00:11 JST


片岡です。

 スレッドを見ていると、そもそも必要なファイルがかなり足りないように見えます。ディスク障害の際にかなりの数のファイルを消失させたのではないでしょうか?

 こうなってくると、単にPostgreSQLを起動しなおした程度ではデータは読めないと思います。またディスク障害からのデータ救出では現状維持がかなり重要になってきます。不完全な状態で無計画にいろいろと試すほどデータの状態を悪化させて、結果的に救出が不可能になっていきます。パーティションイメージのバックアップなどを取得してから作業を行う方がいいです(PostgreSQLのデータ救出に限ってはファイルレベルで十分です)。

 以前のバックアップ(pg_dumpではなくてtarなどのディスクイメージ)などはあるでしょうか?
なくても、ディスク障害が起きた瞬間とまったく同じデータベース構造を再現できる(データはなくてもいい)DDLが残っていれば、入れ物として以前と同じ構造のデータベースを用意して、救出したいテーブルの実ファイルをコピーしてからトランザクションIDを調整すると、データが見えることがあります。ただしDELETEしたデータやABORTしたデータなども見えてしまうことがありますので、完全なものではありませんが、ないよりまし、というレベルです。

2008/09/18 15:36 "藤井律男/Ritsuo Fujii" <ritsuo @ mxy.mesh.ne.jp>:
> 藤井@岡山です。
> お世話になります
>
> 自己レスです、現在も悪戦苦闘中です。
>
>>
>> あきら様のアドバイスにより
>>
>> pg_resetxlog -f /var/lib/postgres/data
>>
>> pg_resetxlogによりなんとか postgresql は起動できるようになったのですが
>> 実際のテーブルを開こうとすると、下記のようになりました
>>
>> postgres @ sarge:~$ psql hanbai
>> psql: FATAL:  could not open relation "pg_trigger": No such file or directory
>> postres @ sarge:~$
>
> どうにかしてデータを取り出したくて
> postgres @ sarge:~$ pg_dump --data-only --disable-triggers hanbai > hanbai.dmp
> pg_dump: [archiver (db)] connection to database "hanbai" failed: FATAL:  could not
>  open relation "pg_trigger": No such file or directory
> postgres @ sarge:~$
>
> --disable-triggers を指定しているにもかかわらず、トリガー関連の
> エラーが回避できません。
>
> 宜しくお願い致します。
>
>
> Ritsuo Fujii <ritsuo@mxy.mesh.ne.jp>
>
>



-- 
Hiroki Kataoka



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