contenttaichino.com永遠のネバーランドCentOSのPostgreSQLを9.2にアップグレードするCentOS6系だとyumでPostgreSQLをインストールすると8.4が入ります。僕もこれで運用していました。ところが全文検索がデフォでサポートされているのは9.1以降なのでアップデートしたいという話です。前もチラッと書きましたが、マルチバイト文字に対応するには若干コードを修正する必要があるので、自前でビルドという事になります。RPMを適当に探してきてというわけにはいきません。yum管理下のPostgreSQLを自前ビルドのバージョンで更新ということで、明らかに面倒そうなのでほったらかしていたのですが、先ほど重い腰を上げて作業したのでログを残しておきます。基本的にはオフィシャルのドキュメントのアップグレードの項目に沿った作業を行いました。今回行いたい事は下記です。運用中のPostgreSQLの8.4から9.2へのアップグレード運用中のPostgreSQLとビルドオプション等は揃えたい9.2をインストールする際にマルチバイトの全文検索をONまず現在動作中のPostgreSQLのビルドオプションをpg_configコマンドで確認します。CentOSのyumパッケージではディレクトリの設定が細かく行われている事がわかります。本エントリではこのビルドオプションのうち、ディレクトリ配置系のオプション以外を引き継いでビルドを行います。配置はデフォルトの/usr/local/pgsql以下に行います。理由は上書き漏れ等で、一部のファイルだけ古いバージョンのままというのが発生すると怖いからです。-lmビルドに先立って必要なパッケージをインストールします。一度VMware上で練習したので、その際に./configureで必要だったパッケージを先回りしてインストールしました。tcl-develビルドの準備が整ったら現在運用しているデータベースからpg_dumpallでバックアップを取ります。バックアップが完了したらpostgresqlパッケージを削除しています。本来はこのタイミングで削除をする必要は無いのかもしれませんが、復元作業等で古いコマンドに知らずにアクセスみたいな事になると嫌なので先に消しました。postgresqlバックアップが取れたので早速インストール作業を行います。現在の最新版は9.2.2でした。先ほども書きましたが./configureに指定するオプションは古いバージョンのpg_configの内容から配置系パラメータを除いたものになります。インストール作業はpostgresユーザで行います。/usr/local/pgsqlにファイルが配置されるので、インストール後にPATH等の環境変数を設定しておきます。~/.bashrcインストールが完了したら初期設定を行ってからデータベースの復元をします。postgresこれで運用中のPostgreSQLをアップグレード出来ました。書くと大した事ではないですね。精神負荷が高い作業なので一度は練習用の環境で試してから本番環境で行うのが良いと思います。あと記事中では書きませんでしたが、posgresql.conf等の設定ファイルの編集も忘れずに行いましょう。