CentOS6にPostgreSQL9.5をインストールする
はじめに
VPSに使い慣れたPostgreSQLをインストールしようと思い、そう言えば最新のPostgreSQLのバージョンはなんだろと調べていたら「9.5」だった。
新機能も調べてみた
個人的に今後使いそうな機能
UPSERT(ON CONFLICT句)の実装
GRINSERT文にON CONFLICT句が追加されました。これにより、今までキー値の重複等でエラーとなっていた挿入処理を更新処理へと自動的に代替して実行できるようになりました。言い換えれば、データがまだ存在しない場合は挿入、データがすでに存在する場合は更新といった切り替えを自動で実施してくれる機能です。 これまで、この仕組みを実装するにはアプリケーション側などで複雑な処理の記述が必要でしたが、この機能によりデータベース管理者は容易にこの仕組みを実現できます。 なお、これは一般的にUPSERTとして知られている機能と同様のものです。
OUPING SETS句、CUBE句、ROLLUP句の実装
GROUP BY句の拡張機能として、SQL標準(SQL99)のGROUPING SETS句、CUBE句、ROLLUP句の機能が追加されました。これにより、これまでは複数のSQL文を用いて求めなければならなかった小計値等を単独のクエリで算出できます。
これは・・・カッコいい・・・( ・∀・)
他にもいっぱいあるけど詳しくはコチラ
www.slideshare.net
というわけで、CentOS6にPostgreSQL9.5をインストールした話
PostgreSQL9.5のリポジトリの追加
http://yum.postgresql.org/ にアクセスして、リポジトリのURLを取得
コピーする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/ # 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のインストールは慣れたけど、チューニング・運用管理はよくわかんないだよなー
いつかブログに書ける程度にはならなくては