CentOS6にYumを利用してPostgreSQL-9.2をインストールする
つい先日CentOSにPostgreSQLをインストールする際のメモを記載しましたが、CentOS6の標準ではPostgreSQLのバージョンが8.4なので最新版ではありません。
サーバが破損する以前までは、昔からの名残でバージョン8を利用していたのですが、ストリーミング・レプリケーションを利用したかったので9.2をインストールしなおしました。
今回はその時の手順を記載します。
PostgreSQL8.4のインストールされているパッケージの確認と削除
$yum list | grep postgres
$su -
#yum remove postgresql-server
#yum remove postgresql
#yum remove postgresql-libs
PostgreSQLのダウンロードサイトより取得したコミュニティリポジトリrpmを追加
pgdg-92-centos.repoというファイルが存在すればOKです。
#rpm -ivh pgdg-centos92-9.2-6.noarch.rpm
#cd /etc/yum.repos.d
#ls
...
pgdg-92-centos.repo
...
GPGキーのインポート
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-92
PostgreSQLがyumに登録されているか確認
postgresql92〜と言う名前のリストが出力されるとOK。この時点では8.4のパッケージリストも表示される。
#yum list | grep postgres*
CentOSのベースリポジトリからpostgresql関連のパッケージ情報を取得しないようにするために"exclude=postgresql*"をCentOS-*.repoファイルのenabled=0となっていないブロックに追加。(実施前にバックアップをとるのもよし。)
自分の場合はCentOS-Base.repoのみだったのでそれぞれ以下のように設定。
#vi CentOS-Base.repo
[base]
...
exclude=postgresql*[updates]
...
exclude=postgresql*[extras]
...
exclude=postgresql*
旧バージョンのパッケージが表示されていないことを確認
#yum list | grep postgres*
PostgreSQLのインストール
#yum -y install postgresql92-server
サービス名の確認
#chkconfig --list | grep postgres
→サービス名はpostgresql-9.2
データベースの初期化を行いデータベースディレクトリの作成を行う
#service postgresql-9.2 initdb
postgresユーザにスイッチしてその後の作業を実施。これ以降は8.4と同じなので省略します。
[注意事項]
・postgresql.confなどの設定ファイルを含めインストールディレクトリは/var/lib/pgsql/9.2/data配下となっています。
・postgresユーザのパスワード変更とファイアウォール設定は8.4インストール時に設定していれば不要。