もなかアイスの試食品

「とりあえずやってみたい」そんな気持ちが先走りすぎて挫折が多い私のメモ書きみたいなものです.

CentOS6にPostgreSQL9.5をインストールする

はじめに

VPSに使い慣れたPostgreSQLをインストールしようと思い、そう言えば最新のPostgreSQLのバージョンはなんだろと調べていたら「9.5」だった。

新機能も調べてみた

個人的に今後使いそうな機能

  1. UPSERT(ON CONFLICT句)の実装

    GRINSERT文にON CONFLICT句が追加されました。これにより、今までキー値の重複等でエラーとなっていた挿入処理を更新処理へと自動的に代替して実行できるようになりました。言い換えれば、データがまだ存在しない場合は挿入、データがすでに存在する場合は更新といった切り替えを自動で実施してくれる機能です。 これまで、この仕組みを実装するにはアプリケーション側などで複雑な処理の記述が必要でしたが、この機能によりデータベース管理者は容易にこの仕組みを実現できます。 なお、これは一般的にUPSERTとして知られている機能と同様のものです。

  2. OUPING SETS句、CUBE句、ROLLUP句の実装

    GROUP BY句の拡張機能として、SQL標準(SQL99)のGROUPING SETS句、CUBE句、ROLLUP句の機能が追加されました。これにより、これまでは複数SQL文を用いて求めなければならなかった小計値等を単独のクエリで算出できます。

これは・・・カッコいい・・・( ・∀・)

他にもいっぱいあるけど詳しくはコチラ

thinkit.co.jp

www.slideshare.net

というわけで、CentOS6にPostgreSQL9.5をインストールした話

PostgreSQL9.5のリポジトリの追加

http://yum.postgresql.org/ にアクセスして、リポジトリのURLを取得

f:id:monakaice88:20160503000743p:plain

コピーするURLを間違えないように、アーキテクチャは以下のコマンドで確認できる

# arch

以下のコマンドで、PostgreSQL9.5のリポジトリを追加

# yum localinstallhttps://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-redhat95-9.5-2.noarch.rpm

パッケージの検索

# yum list | grep postgres

表示された結果には、CentOSデフォルトの「8.4」も含まれている

デフォルトのパッケージをインストールしないように、「base」「update」リポジトリ(?)の「postgresql」を無視するようにする

# vim /etc/yum.repos.d/CentOS-Base.repo

[base]セクションと[updares]セクションに以下の設定を追加する

exclude=postgres*

再度パッケージの検索をやると、デフォルトのパッケージは表示されなくなっている

PostgreSQL9.5のインストール・自動起動有効化

PostgreSQL9.5をインストールする。

# yum install postgresql95 postgresql95-server

PostgreSQLの初期化・起動

# cd /var/lib/pgsql/9.5/data
# su postgres
# /usr/pgsql-9.5/bin/initdb -U postgres data/

※initdbコマンドにパスが通っていないので、以下のコマンドでinidbコマンドを探した

# yum provides *initdb

以下のコマンドでPostgreSQL9.5の自動起動を有効化する

# chkconfig postgresql-9.5 on
# chkconfig --list postgresql-9.5
postgresql-9.5 0:off 1:off 2:on  3:on  4:on  5:on  6:off
# service postgresql-9.5 start

以上でインストールは終わり

PostgreSQLのインストールは慣れたけど、チューニング・運用管理はよくわかんないだよなー

いつかブログに書ける程度にはならなくては