- PR -

RedHat7.2でRPM版Postgres7.2起動時に失敗します。

1
投稿者投稿内容
森蔵
大ベテラン
会議室デビュー日: 2001/08/10
投稿数: 158
お住まい・勤務地: 大阪
投稿日時: 2002-06-13 10:25
U2です。
いつもお世話になっています。

OS:RedHat7.2Pro
Postgres7.2(詳しい内容は、最後に書きます。)
※RPMはRedHatのミラーサイトからダウンロードしました。

次のコマンドでインストールしました。
# rpm -Uvh postgres*

次のコマンドで確認しました。
# rpm -qa

パッケージのインストールは無事終了しているようなのですが、
"/etc/rc.d/init.d/postgres start"で起動すると次のような
エラーが出力されます。

■エラー
--
An old version of the database format was found.
You need to upgrade the data format before using PostgreSQL.
See (Your System's documentation directory)/postgresql-7.2/README.rpm-dist for m
ore information.

「ドキュメントを見てください」との事なので見てたのですが、読解力がないのか
有益な情報が見当たりません。

対処されたかたいらっしゃいましたら、知恵をお貸しください。

■パッケージリスト
--
postgresql-tcl-7.2.1-5
postgresql-jdbc-7.2.1-5
postgresql-tk-7.2.1-5
postgresql-7.2.1-5
postgresql-contrib-7.2.1-5
postgresql-docs-7.2.1-5
postgresql-odbc-7.2.1-5
postgresql-server-7.2.1-5
postgresql-libs-7.2.1-5
postgresql-devel-7.2.1-5
postgresql-perl-7.2.1-5
yoka
常連さん
会議室デビュー日: 2002/04/09
投稿数: 29
投稿日時: 2002-06-13 15:45
PostgreSQL のバージョン 7.1.x と 7.2.x ではデータベースフォーマットが異なるため、移行するには pg_dump などでデータを待避しておかなければならないはずです。
http://osb.sra.co.jp/PostgreSQL/7.2/changes.html

RedHat7.2 のインストール時に PostgreSQL 7.1.3-2 がインストールされていて、あとから 7.2.1-5 へとアップグレードインストールしたのであれば、 7..2.1-5 では 7.1.x の時に作成されたデータベースを読むことができないのでエラーメッセージが表示されたものと思われます。
エラーメッセージにその旨表示されていますよね?
> You need to upgrade the data format before using PostgreSQL.

PostgreSQL はいつもソースからコンパイルしているので rpm でのアップグレードは分かりませんが、データベースクラスタのフォーマットの差異も時動的に変換するような処理が含まれているのでしょうか?単に各種ファイルを置き換えているだけだと思うのですが...

バージョン 7.1.3 の時に PostgreSQL を利用していないのであれば、現在の PostgreSQL スーパーユーザにて initdb して 7.2.x のデータベースクラスタを再生成すればよいだけだと思います。

[ メッセージ編集済み 編集者: yoka 編集日時 2002-06-13 23:29 ]
森蔵
大ベテラン
会議室デビュー日: 2001/08/10
投稿数: 158
お住まい・勤務地: 大阪
投稿日時: 2002-06-14 11:47
yokaさんありがとうございます。

>バージョン 7.1.3 の時に PostgreSQL を利用していないのであれば、現在の >PostgreSQL スーパーユーザにて initdb して 7.2.x のデータベースクラスタを再生成
>すればよいだけだと思います。

この方法でうまく行きました。RPMでアップグレードすると、$PGDATA以下のディレクトリ
がそのままになるようです。これって当たり前なんでしょうか?

$PGDATA以下を全削除して、initdbしたらうまく行きました。
もうちょっと勉強ですね(^-^;
1

スキルアップ/キャリアアップ(JOB@IT)