はじめましてPostgreSQL! Vol.1
|
PostgreSQLのインストールと初期設定手順をステップ・バイ・ステップで分かりやすく解説します。初心者の方でも簡単にインストールができるよう、GUIを使用した手順を中心に構成しています。 |
Vol.1 誰でも簡単!PostgreSQLのインストールと初期設定(インストール編)
PostgreSQLのインストールは難しくない
PostgreSQLとはオープンソースのRDBMSで、商用RDBMSに匹敵する本格的な機能が実装されています。PostgreSQLはオープンソース・コミュニティPostgreSQL Global Development Group
によって開発され、日本では日本PostgreSQLユーザ会
によって活発な普及活動が実施されています。また、2012年4月にはPostgreSQLエンタープライズ・コンソーシアム
が設立され、ミッションクリティカル性の高いエンタープライズ領域への普及が推進されています。
さて、オープンソースであるPostgreSQLのインストールはキャラクタベースで複雑なコマンドが必要で難易度が高いイメージがあるかもしれませんが、2008年2月にリリースされたPostgreSQL 8.3 以降のバージョンではGUIのインストーラとしてOne click installerが提供されており、簡単にインストールできる環境が整っています。
本連載では、2012年4月現在の最新バージョンであるPostgreSQL 9.1.3をGUIのOne click installerでインストールする手順と初期設定について解説します。
実際に使用するコマンドや画面はもちろんのこと、現場のノウハウも交えながらステップ・バイ・ステップで解説しますので、初心者の方でも心配ありません。
第1回目となる今回は、Linux x86環境のPostgreSQL 9.1.3のインストール手順を説明します。
インストール要件を確認する
まず、PostgreSQLをインストールする環境がインストール要件を満たしているかを確認します。インストール要件には『インストール先に○○MBの空きがあること』といったハードウェア系の要件と、『OSのバージョンが○○以上であること』などのソフトウェア系の要件があります。
なお、PostgreSQLのインストール要件は高くないので、現在利用されているハードウェアおよびOSバージョンであれば、インストール要件を満たしていると思います。
インストール要件は日本PostgreSQLユーザ会が翻訳しているPostgreSQL日本語マニュアル「15.2. 必要条件」を参照してください。
PostgreSQLドキュメント |
以下にインストール要件をまとめます。
|
以下は、インストール要件を満たしているかどうか、OSのコマンドを使って確認する方法です。OSのコマンドは全てrootユーザで実行してください。
・メモリー、スワップ領域の確認
# grep MemTotal /proc/meminfo
MemTotal: 16438672 kB
→要件は16MB以上なのでOK
・ディスク領域の確認
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/cciss/c0d0p3 66G 27G 36G 43% /
/dev/cciss/c0d0p1 97M 12M 80M 13% /boot
tmpfs 7.9G 4.0K 7.9G 1% /dev/shm
→要件は約150MBなのでOK
・OSの確認
# # uname -r
2.6.18-164.el5
→要件は2.6.9 以上なのでOK
・OSパッケージの確認
# rpm -qa --qf "%{name}-%{version}-%{release}.%{arch}\n" | grep <OSパッケージ名>
→要件と同じかそれ以上のバージョンが表示されればOK
要件を満たしていないと、インストールが正常に行われないため注意してください。また、これからサーバーを用意する場合はインストール要件を満たすOSやハードウェアを選択してください。なお、メモリーやディスクなどのインストール要件は最低限必要な値のため、要件と全く同じではなく多少余裕を持たせるようにするのがポイントです。たとえば、データベースファイル作成先としては35MBが要件となっていますが、データベースに格納するデータ量によっては更なるディスク領域が必要となるため、あらかじめ余裕を持たせておくと良いでしょう。
PostgreSQLのソフトウェアを入手する
インストール要件を確認したら、PostgreSQLのソフトウェアを入手しましょう。
PostgreSQLの開発コミュニティのダウンロードページ
からリンクされているインストーラ
からPostgreSQLのGUIインストーラであるOne click installerをダウンロードしてください。このOne click installerはEnterpriseDB社でメンテナンスされています。EnterpriseDB社はPostgreSQLの開発コミュニティに参画され、自社でもPostgreSQLをベースとしたサブスクリプションライセンスのRDBMSであるPostgres Plusを提供している企業です。
PostgreSQL 9.1.3では、以下の5環境のOne click installerが用意されており、どの環境のOne click installerでも同じ画面遷移と操作でPostgerSQLをインストールすることができます。本稿ではLinux x86環境での導入を説明します。
Linux x86-32
Linux x86-64
Windows x86-32
Windows x86-64
Mac OS X
ダウンロードページ |
One click installerのダウンロードが完了したら、サーバ上の任意のディレクトリに配置してください。Linux x86環境の場合、One click installerのダウンロードファイル「postgresql-9.1.3-1-linux.run」 は約43MBのサイズです。
インストール前の設定を行う
早速インストール開始といきたいところですが、インストールを開始するためにはいくつかOSの設定が必要です。ここでは、実際のコマンドを交えながら設定手順を順番に解説していきます。作業自体は簡単ですが、OSの設定ファイルを編集する場面では作業ミス防止のためバックアップを取りながら進めてください。作業は全てrootユーザで行います。
①OSグループとユーザの作成
PostgreSQLの実行ユーザとなるOSグループとユーザを事前に作成します。ここではOSグループを『post』、ユーザを『postgres』とします。
# groupadd -g 1003 post
# useradd -g post -u 1003 postgres -d /home/postgres -s /bin/bash
# passwd postgres
②データベース作成用ディレクトリの作成
今回は、PostgreSQLのインストール先となるディレクトリはインストーラで指定される「/opt/PostgreSQL/9.1」を利用する予定であるので、データベースを作成するディレクトリのみ作成しておきます。
# mkdir -p /home/postgres/pgdata
# chown -R postgres:post /home/postgres/pgdata
# chmod -R 775 /home/postgres/pgdata
③シェル制限の設定
PostgreSQLはあくまでもOS上で動く1つのアプリケーションであるため、OS側でリソースの制限が行われている場合には充分なパフォーマンスを発揮できません。以下の通りpostgresユーザのシェル制限を設定し、リソースを多く使えるようにします。
|
# vi /etc/security/limits.conf
postgres soft nproc 2047
postgres hard nproc 16384
postgres soft nofile 1024
postgres hard nofile 65536
postgres soft stack 10240
※この5行を追加する
④カーネル・パラメータの設定
シェル制限と同様に、カーネル・パラメータもOSのリソースを制御する重要な要素です。
PostgreSQLが正常に稼働するために、以下のカーネル・パラメータを設定します。詳しくは、PostgreSQL日本語マニュアル「17.4. カーネルリソースの管理
」を参照してください。
|
# vi /etc/sysctl.conf
#-----------------------------------------
# K.K.ASHISUTO 20XX/XX/XX
#-----------------------------------------
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 8589934592
kernel.shmmni = 4096
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 9000 65500
カーネル・パラメータを設定後、以下のコマンドで変更を反映させます。
# sysctl -p
ダウンロードしたpostgresql-9.1.3-1-linux.run には、実行権限がありませんのでchmodコマンドで実行権限を付与します。
・postgresql-9.1.3-1-linux.runの実行権限の付与
# chmod 755 postgresql-9.1.3-1-linux.run
# ls -al
-rwxr-xr-x 1 postgres post 43899606 4月 17 2012 postgresql-9.1.3-1-linux.run
インストールを開始する
いよいよPostgreSQLのインストールを開始します。
インストーラでは以下の操作が行われます。
1. PostgreSQL モジュールのインストール
2. PostgreSQL データベース・クラスタの作成
3. PostgreSQL の起動・停止スクリプトの設置
4. PostgreSQLユーザのOS環境設定ファイルのサンプル作成
5. Uninstallerのインストール
6. (オプション)スタックビルダで追加アプリケーションのインストール
インストールされる主なファイル
・PostgreSQL 本体とユーティリティ
・操作ツール(psql、pgAdmin-III)
・PostgreSQL ドキュメント(英語)
・スタックビルダ
・(オプション)スタックビルダで選択したアプリケーション
・アンインストーラー
インストールは全部で10ステップに分かれており、表示される画面に従って情報を入力していきます。
ステップ0
インストーラを実行します。
Linuxにrootユーザで接続して、postgresql-9.1.3-1-linux.runを実行すると、PostgreSQL Setup Wizardが起動します。
・ postgresql-9.1.3-1-linux.runの実行
# ./postgresql-9.1.3-1-linux.run
ステップ1
「Welcome to the PostgreSQL Setup Wizard」画面です。「Next」をクリックします。
PostgreSQL Setup Wizard画面 |
ステップ2
「Installation Directory」画面では、PostgreSQLモジュールをインストールするディレクトリを指定します。デフォルトは「/opt/PostgreSQL/9.1」が指定されているので、任意でインストールするディレクトリを変更してください。今回はデフォルトのままインストールします。
Installation Directory 画面 |
「Next」をクリックします。
ステップ3
「Data Directory」画面では、PostgreSQLのデータベースを作成するディレクトリを指定します。デフォルトでは「/opt/PostgreSQL/9.1/data」が指定されているので、任意でインストールするディレクトリを変更してください。
今回は「/home/postgres/pgdata」に変更しています。
Data Directory 画面 |
「Next」をクリックします。
ステップ4
「Password」画面では、PostgreSQLデータベース管理、Linuxユーザとして作成されるpostgresアカウントのパスワードを指定します。今回は事前準備としてpostgresユーザをLinux上に作成しているので、既存アカウントのパスワードを入力します。
password 画面 |
「Next」をクリックします。
ステップ5
「Port」画面は、PostgreSQLにリモートからTCP/IP接続するためのポート番号を指定します。デフォルトは「5432」が指定されています。既にポート番号が利用されている場合は任意のポート番号に変更することもできます。今回はデフォルト設定を利用します。
port 画面 |
「Next」をクリックします。
ステップ6
「Advanced Options」画面では、ロケール(国際化と地域化)を設定します。デフォルトの"[Default locale]" を選択した場合、エンコーディングはユニコード「UTF8」、ロケールは「ja_JP.UTF-8」と設定されます。今回はデフォルトを選択します。
Advanced Options 画面 |
「Next」をクリックします。
※ロケール(国際化と地域化)
ロケールの設定を行うと、データベース内の文字列比較やソート処理、日付や通貨、メッセージなどの言語を指定できます。ただし、PostgreSQL ではロケール処理を各プラットフォームの C ライブラリ(glibc等)に依存しているため、環境依存で結果が変化する場合があります。また、インデックスはロケールに基づいた比較を行うよう構成されるため、バイト列比較が必要とする LIKE演算子での前方一致検索(例:'東京%')ではインデックスを選択しないという特徴もあります。文字列をバイナリ値でソートしたり、LIKE演算子での前方一致検索にてインデックスを選択させたい場合は、ロケールをCロケール(ロケール設定なし)にする必要があります。ただ、One Click Installerの場合、エンコーディングをUTF8、ロケールをCロケールに設定できないため、別途、データベース・クラスタの初期化(initdb)やデータベースの作成(createdb)を実施する必要が生じます。
・initdb実行例(エンコーディング:UTF-8、ロケール:no-locale(Cロケール))
# initdb -E UTF-8 --no-locale -D /home/postgres/pgdata
ステップ7
「Ready to Install」画面で 「Next」をクリックすることで、インストールが開始され、PostgreSQLのデータベースの作成まで行われます。
Ready to Install 画面 |
「Next」をクリックします。
ステップ8
「Installing」画面では、PostgreSQL本体やユーティリティ、ツールのインストール、postgresアカウントの作成、サービス作成、データベース作成などが実施されます。
Installing 画面 |
ステップ9
「Completing the PostgreSQL Setup Wizard」画面では、インストールが完了したことを示します。このとき、PostgreSQLインスタンスが起動されており、PostgreSQLデータベースを利用できる状態になっています。
Completing the PostgreSQL Setup Wizard 画面 |
スタックビルダーを利用してオプションの追加アプリケーションをインストールする場合は、[Stack Builder]をチェックして「Finish」をクリックするとスタックビルダーのWizard画面が表示されます。
ステップ10
「スタックビルダー」画面では、スタックビルダーによって追加のアプリケーションをインストールすることができます。また、スタックビルダーは単独で起動できるため、後から追加インストールすることも可能です。必要な場合に任意にインストールしてください。
スタックビルダ 画面 |
以上でPostgreSQLのインストールは終了です。
インストールが正常に終了すれば、LinuxのアプリケーションにpgAdminIIIやスタックビルダーが登録され、起動・停止スクリプトやOS環境変数の設定サンプルも作成されています。
Linuxアプリケーション 画面 |
・PostgreSQL起動・停止スクリプト
# ls -al /etc/init.d/postgresql-9.1
-rwxr-xr-x 1 root root 2231 3月 15 17:53 /etc/init.d/postgresql-9.1
・OS環境変数の設定サンプル
# cat /opt/PostgreSQL/9.1/pg_env.sh
#!/bin/sh
# The script sets environment variables helpful for PostgreSQL
export PATH=/opt/PostgreSQL/9.1/bin:$PATH
export PGDATA=/home/postgres/pgdata
export PGDATABASE=postgres
export PGUSER=postgres
export PGPORT=5432
export PGLOCALEDIR=/opt/PostgreSQL/9.1/share/locale
export MANPATH=$MANPATH:/opt/PostgreSQL/9.1/share/man
いかがだったでしょうか。
PostgreSQLのGUIインストーラを利用すれば画面に沿って進めていくだけなので非常に簡単にインストールすることができます。次回はインストール後に必要な初期設定手順を解説します。
- ※ Postgres Plus は、EDB Postgres の旧製品名です。
執筆者紹介
|
岸和田 隆(Takashi Kishiwada)
|
|
関 俊洋(Toshihiro Seki)
|
連載記事一覧
- Vol.1 誰でも簡単!PostgreSQLのインストールと初期設定(インストール編)
- Vol.2 誰でも簡単!PostgreSQLのインストールと初期設定(初期設定編)
- Vol.3 Postgres Plus Advanced Server(体験編1)
- Vol.4 Postgres Plus Advanced Server(体験編2)