【PostgreSQL】ソースファイルからPostgreSQLを正しくインストールする手順:データベースサポート最前線の現場から(2)(1/2 ページ)
データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は「PostgreSQLをソースファイルからインストールする手順」を解説します。
「PostgreSQL」(オープンソースデータベース管理システム)をインストールする手段には、ソースファイルを使用する方法とRPMパッケージを使用する方法などがあります。アシストでは、PostgreSQLをLinux環境へインストールする場合、以下の理由からソースファイルを使用するインストール方法を推奨しています。
PostgreSQLをソースファイルからのインストールを推奨する理由
- configureスクリプトでインストール先をはじめとしたオプションの指定が可能である
- 追加モジュールやマイナーバージョンアップに対応しやすい
- 当該マシンでのコンパイル時に最適化される可能性がある
- バージョン8.4以前のバージョンでも、複数バージョンの共存が可能である(※)
(※バージョン9.0以降では、RPMパッケージからPostgreSQLをインストールする方法でも複数バージョンを同居させることが可能です)
今回は一例として、「Oracle Enterprise Linux 5.6 64bit」の環境へPostgreSQL 9.4.0をソースファイルからインストールする手順と、インストール時の注意事項を紹介します。
PostgreSQLをソースファイルからインストールする
PostgreSQL 9.4.0をソースファイルからをインストールする大まかな手順は以下の通りです。
- PostgreSQL 9.4.0をインストールするOSユーザーの作成
- PostgreSQL 9.4.0のソースファイルのダウンロード
- configureスクリプトの実行
- 「gmake」「gmake install」の実行
- 環境変数の設定
- initdbの実行
【1】インストールするOSユーザーの作成
まず、PostgreSQLをインストールするユーザーを作成します。
検証環境などでは、複数バージョンのPostgreSQLをインストールして評価するシーンは多いと思います。バージョンごとにOSユーザーを作成しておくと、その後の管理が容易になります。
# useradd -m -d /home/p940 p940 # passwd p940 # su - p940
ここでは、PostgreSQL 9.4.0をインストールするユーザー「p940」を作成しました。以降の手順も、「p940」ユーザーで実行します。
【2】PostgreSQL 9.4.0のソースファイルのダウンロード
PostgreSQLのソースファイルは、「PostgreSQL Global Development Group」のWebサイトからダウンロードできます。ここにはさまざまなバージョンと圧縮形式のダウンロードモジュールが存在します。どの圧縮形式のダウンロードモジュールも原則として中身は同じですが、今回は「postgresql-9.4.0.tar.gz」を使います。なお、社内LAN環境でwgetコマンドを使用する際は、事前に/etc/wgetrc内でhttp_proxy、https_proxy、ftp_proxyなどの設定が必要な場合があります。
-- ソースファイルをダウンロードするディレクトリを任意の名前で作成 $ mkdir sources -- sources ディレクトリ配下にpostgresql-9.4.0.tar.gz をダウンロード $ cd sources $ wget https://ftp.postgresql.org/pub/source/v9.4.0/postgresql-9.4.0.tar.gz
なお、2016年11月現在、PostgreSQLの最新バージョンは「v9.6.1」で、バージョンアップが進んでいます。最新バージョンを望む場合には、バージョン名やURL表記を適宜置き換えて読み進めてください。
【3】configureスクリプトの実行
configureスクリプト内の各オプションで、インストールするディレクトリやインストール対象などを指定します。
以下に、全ファイルのインストール場所を指定する「--prefix」オプションや、OpenSSLパッケージを使用したSSL接続のサポートを有効にする「--with-openssl」オプションなどを指定して実行する例を示します。
-- postgresql-9.4.0.tar.gzを展開 $ tar xvf postgresql-9.4.0.tar.gz -- ソースファイルの展開ディレクトリに移動 $ cd postgresql-9.4.0 -- 各種オプションを指定してconfigureスクリプトを実行 $ ./configure --prefix=/home/p940/posgrehome --enable-debug --with-openssl --with-pgport=1940 --enable-nls=UTF_JP --with-libxml
なお、ここで指定しなかった機能をインストール後に使う場合には、PostgreSQLの再インストールが必要になるので注意してください。この他のオプションについては、以下のドキュメントを参照してください。
(参考ドキュメント)第15章-4 ソースコードからインストール(postgresql.org)
configureスクリプト実行時の注意点
前述したように、オプションはconfigureスクリプトでの指定が必要です。
例えば、クライアントとPostgreSQL間でセキュアなSSL接続を必須とする場合には、configureスクリプト実行時に--with-opensslオプションを指定します。逆に、指定しなければSSL接続での運用はできません(再インストールが必要になります)。その他にも、OSのリソース情報や統計情報をスナップショットとして取得するためのツールである「pg_statsinfo」を利用するならば、--with-libxmlオプションを指定します。
ライブラリのチェックに失敗する場合は……
configureスクリプト実行時には、必要なライブラリのチェックも実行されます。そのときに、必要なライブラリが存在しなかった場合に、以下のようなエラーメッセージが表示されます。
configure: error: readline library not found If you have readline already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. Use --without-readline to disable readline support.
エラーメッセージは、必要なライブラリがシステムに足りていない場合に表示されます。この場合は、必要なライブラリをyumコマンドなどでインストールした上で、再度configureスクリプトを実行します。例えば上記のエラーメッセージでは「redlineライブラリが存在しません」とあるので、以下のようにredlineライブラリをインストールします。
$ su - # yum install readline # yum install readline-devel
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 障害発生! 問題切り分けはスピード勝負
Oracleデータベースの運用管理者は、突発的に直面するパフォーマンス障害にどうやって対処したらよいか。本連載は、非常に複雑なOracleのアーキテクチャに頭を悩ます管理者に向け、短時間で問題を切り分け、対処法を見つけるノウハウを紹介する。対象とするバージョンはOracle8から9iまでを基本とし、10gの情報は随時加えていく。(編集局) - それでは“ダメ”な「トラブル対応例」
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、「SQL Serverで起こりがちなトラブル」を厳選して、具体的な対処方法を紹介していきます。第1回目は「トラブルを適切に対処するための考え方」を解説します。 - パフォーマンス向上の最短コースを知る
本連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状広く使われているOracle9iの機能を基本とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) - そもそも、リレーショナルデータベースとは何か?
データベースを基礎から勉強し理解を深めていくことは簡単なことではありません。本連載では、データベースに対するハードルを少しでも低くするために、初心者の方に必要なデータベースの基本から、障害対策やチューニングといった実践に即した内容までを幅広く解説していきます。今回は、データベースの役割と、それを管理するソフトウェアであるDBMSの基本機能について解説します。【更新】