連載
» 2016年11月28日 05時00分 公開

【PostgreSQL】ソースファイルからPostgreSQLを正しくインストールする手順データベースサポート最前線の現場から(2)(2/2 ページ)

[家島拓也,株式会社アシスト]
前のページへ 1|2       

【4】「gmake」「gmake install」の実行

 gmakeコマンドを実行することにより、configureスクリプトで作成された「GNUmakefile」が読み込まれます。そして、各種ソースファイルのコンパイルやリンクが実行されます。

 gmake installコマンドによって、configureスクリプトの--prefixオプションに指定したディレクトリ配下へ、実行モジュールを格納するbinディレクトリやライブラリファイルを格納するlibディレクトリなどがコピーされます。

$ su - p940
$ gmake
$ gmake install
「gmake」「gmake install」コマンドを実行する

【5】環境変数の設定を行う

 続いて環境変数を設定します。ここでは、最低限設定しておきたい「PATH」「PGDATABASE」「PGDATA」の設定例を紹介します。

 PATHは、PostgreSQLのコマンドを絶対パスで指定せずに実行できるように、「configureスクリプト実行時に--prefixオプションに指定したディレクトリから/binディレクトリまでのパスを、現在のPATH環境変数の先頭に追加しておくとよいでしょう。

 $ export PATH=$HOME/posgrehome/bin:$PATH:.:
「PATH」環境変数の設定例

 PostgreSQLのコマンドラインツールである「psql」を用いた接続では、デフォルトでインストール時のOSユーザー名と同じ名前のデータベースに接続を試みます。OSユーザー名がデータベースクラスタの作成時点から存在しているのであれば、PGDATABASE環境変数を気にする必要はありません。

 しかし前述したように、今回は検証環境で複数のPostgresSQLを使うシーンを想定し、専用ユーザーとして「p940」というOSユーザーを作成して作業をしています。このように、その他のユーザー名でPostgreSQLをインストールする場合には、psqlを用いた接続時に、毎回「-d」オプションで接続先データベース名を指定しなければエラーになってしまいます。作業効率を高めるために、あらかじめ頻繁に接続するデータベース名(例では、「postgres」)を指定しておける、PGDATABASE環境変数を設定しておきます。

 export PGDATABASE=postgres
「PGDATABASE」環境変数の設定例

 続いて、データベースクラスタのパスをPGDATA環境変数で指定します。

 PGDATA環境変数を指定する理由も、PGDATABASE環境変数の場合と同じです。initdbコマンドの実行時やpg_ctlコマンドでPostgreSQLの起動/停止を行う際に、毎回「-D」オプションを付けてデータクラスタのパスを指定する必要があります。PGDATABASE環境変数と同様に、その後の作業効率が大きく変わるので、あらかじめ設定しておくとよいでしょう。

 $ export PGDATA=$HOME/posgrehome/datadir
「PGDATA」環境変数の設定例

(参考ドキュメント)第31章-14 環境変数(postgresql.org)



【6】initdbの実行

 initdbコマンドで、データベースクラスタを作成します。

 データベースクラスタ内には、初期データベースとして「template0」「template1」「postgres」の計3つのデータベースが作成されます。なお、特別な理由がなければ、ロケールは「無効」にします。その理由は後述します。

 $ initdb --encoding=UTF8 --no-locale
ロケールを無効としたオプションを付加したinitdbコマンドで、データベースクラスタを作成する

 データベースクラスタを作成できたら、それを起動します。そして、任意のデータベースに正しく接続できるか確認します。以下は、「postgres」データベースに対して接続確認を行った例です。

-- DBクラスタの起動
 $ pg_ctl start
-- psqlでpostgresデータベースに接続
 $ psql
 
 postgres=#
データベースクラスタを起動する。正しく接続できた場合には「postgres=#」プロンプトが表示される

 「postgres=#」のプロンプトを確認できれば、PostgreSQLのインストールは完了です。



「ロケール」について

 ロケールとは、言語や文化に応じた処理をするOSの機構を指します。ロケールを利用したプログラムは実行環境におけるロケール指定に応じた結果が得られ、それはライブラリの実装に依存します。例えば、ロケールを「日本語」に設定した場合、平仮名/片仮名(カナ)の並び順が辞書順になることや、全角のアルファベット文字列が半角アルファベットと混同して識別されることがあります。

 このことは、ロケールの処理を余計に行う分だけ性能の低下を招く可能性があり、また、LIKE演算子による前方一致検索で設定を行わないとインデックスが使用されないといった弊害が生じます。

 このため、ロケールを利用する特別な理由がないならば、極力ロケールを無効にすることを勧めています。


※初出:2015年9月18日 Database Support Blog「ソースファイルからPostgreSQLをインストールする手順

筆者紹介

家島拓也

2007年アシスト入社。オラクル製品やPostgreSQL/EDB Postgres製品のサポートに従事。最前線のサポート対応で得た知識や知見を元に、顧客が困ることの多い問題/課題や各製品の新機能に関する検証結果に関する情報発信も行っている


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。