Database Support Blog

Database Support Blog>ソースファイルからPostgreSQLをインストールする手順(後編)

  • PostgreSQL
2015.09.18

ソースファイルからPostgreSQLをインストールする手順(後編)

PostgreSQL インストール手順

ソースファイルからPostgreSQLをインストールする手順(前編)」では手順の1.〜3.までを紹介しました。後編では、手順4.〜6.について紹介します。


4. gmake & gmake installの実行

gmakeコマンドを実行することにより、configureスクリプトで作成されたGNUmakefileが読み込まれます。そして、各種ソースファイルのコンパイルやリンクが実行されます。gmake installコマンドでは、configureスクリプトの--prefixオプションに指定したディレクトリ配下に、実行モジュールを格納するbinディレクトリやライブラリファイルを格納するlibディレクトリなどがコピーされます。

(例)

 $ su - p940
 $ gmake
 $ gmake install

 ※以降の手順は、p940ユーザーで実行します。


5. 環境変数の設定

ここでは最低限設定しておきたい3つの環境変数を紹介します。

1)PATH

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

(例)

 $ export PATH=$HOME/posgrehome/bin:$PATH:.:


2)PGDATABASE

psqlを使用した接続では、デフォルトでインストール時のOSユーザー名と同じ名前のデータベースに接続を試みます。OSユーザー名がデータベースクラスタ(以降、DBクラスタ)作成時点から存在するpostgresであれば、特にPGDATABASE環境変数を気にする必要はありません。しかし、その他OSユーザー名でPostgreSQLをインストールする場合は、psqlを使用した接続時に、毎回-dオプションで接続先データベース名を指定しなければエラーになります。そのため、予め頻繁に接続するデータベース名をPGDATABASE環境変数に設定しておくと効率的で良いでしょう。

(例)

 $ export PGDATABASE=postgres


3)PGDATA

DBクラスタのパスを指定してください。PGDATA環境変数を指定しない場合、initdbコマンド実行時やpg_ctlでPostgreSQLの起動/停止を行う際に、毎回-Dオプションを付けてDBクラスタのパスを指定する必要があります。そのため、PostgreSQLの起動/停止時に、毎回-DオプションでDBクラスタのパスを指定しなくて良いように、予めPGDATA環境変数を設定しておくと効率的で良いでしょう。

(例)

 $ export PGDATA=$HOME/posgrehome/datadir


その他環境変数も必要に応じて設定してください。設定可能な環境変数については、以下のマニュアルページをご参考ください。

------------------------------------------------------------------------------------
第 31章libpq - C ライブラリ
31.14. 環境変数
http://www.postgresql.jp/document/9.4/html/libpq-envars.html
------------------------------------------------------------------------------------

6.initdbの実行

initdbコマンドで、DBクラスタを作成します。DBクラスタ内には初期データベースとしてtemplate0/template1/postgresの3つのデータベースが作成されます。なお、特別な理由がなければ、ロケールは無効にしましょう。詳細は【補足】ロケールについてをご確認ください。

(例)

 $ initdb --encoding=UTF8 --no-locale

 ※前述のように、PGDATA環境変数を設定していない場合は、-DオプションでDBクラスタのパスを設定する必要があります。


DBクラスタが作成できたら、DBクラスタを起動してみましょう。そして、任意のデータベースに正常に接続できるか確認してみましょう。以下の例では、postgresデータベースに接続しています。

(例)

-- DBクラスタの起動
 $ pg_ctl start
-- psqlでpostgresデータベースに接続
 $ psql

※正常にpostgresデータベースに接続できた場合には、以下のプロンプトが表示されます。

 postgres=#


以上がソースファイルからPostgreSQLをインストールする手順です。

【補足】ロケールについて

ロケールとは、言語や文化に応じた処理をするOSの機構です。ロケールを利用したプログラムは実行環境におけるロケール指定に応じた結果を得ることができます。例えば、ライブラリの実装に依存しますが、ロケールを日本語に設定した場合、ひらがな/カタカナの並び順が辞書順になることや全角のアルファベットがアルファベットとして認識されることがあります。しかし、ロケールの処理を行う分だけ性能が低下することや、LIKEによる前方一致検索で設定を行わないとインデックスが使用されないといったことがあります。そのため、ロケールを利用する特別な理由がない場合には、ロケールは無効にしましょう。

執筆者情報

家島 拓也

2007年にアシストに入社して以来、ORACLE製品やPostgreSQL・EDB Postgres製品のサポートに従事してきました。このブログではサポート対応で得た知識を元に、お客様がお困りになることが多い問題や各製品の新機能に関する検証結果などを提供します。

関連している記事

  • PostgreSQL
2016.12.01

【SR+HS環境の落とし穴】スタンバイが要求したWALが上書きされる障害の予防策

PostgreSQLのSR+HS環境でスタンバイが要求したWALが上書きされる障害の予防策を紹介します。

  • EDB Postgres
  • PostgreSQL
2016.11.11

【EDB Postgres/PostgreSQL】うるう秒(閏秒)の対応

EDB Postgres/PostgreSQLでのうるう秒(閏秒)の対応方法について解説します。2017年元旦にトラブルとならないよう、準備しましょう。

  • PostgreSQL
2016.10.04

性能劣化を引き起こすチェックポイント多発の確認・対処方法

チェックポイントはディスクI/Oを伴うため、短い間隔で繰り返し実行されると性能劣化の原因となります。PostgreSQL(9.5以降)でチェックポイント多発の確認と、多発していた場合の対処方法について説明します。

アシストサポートセンターのご紹介 Oracle Database研修

ページの先頭へ戻る