連載
» 2008年06月10日 00時00分 UPDATE

使えば分かるPostgreSQL運用&チューニング(1):PostgreSQL導入から接続まで (2/3)

[北川俊広,SRA OSS, Inc.]

インストール

 PostgreSQLをインストールするには、postgresユーザーで次のコマンドを実行します。

[postgres]$ cd /usr/local/src/postgresql-8.3.1
[postgres]$ ./configure
[postgres]$ make
[postgres]$ make install

 上記のコマンドを実行するとPostgreSQLは、/usr/local/pgsqlにインストールされます。もしインストール先のディレクトリを変更したい場合は、./configure実行時に--prefix=DIRオプションを指定すると変更できます。

環境変数の設定

 インストールしただけでは、PostgreSQLのコマンド類にパスが通っていないため、コマンドの実行には不便です。そこで、環境変数を設定します。

 多くのLinuxでデフォルトのシェルとして採用されているbashの場合は、設定ファイル$HOME/.bashrcに次の行を追加しておきます。bash以外のシェルの場合も同様の内容で設定しておくとよいでしょう。

01: export PATH=$PATH:/usr/local/pgsql/bin
02: export MANPATH=$MANPATH:/usr/local/pgsql/man
03: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
04: export PGDATA=/usr/local/pgsql/data

※行頭の「数字:」は行番号なので、実際の記述時は不要

 PATH変数(1行目)を設定することで、PostgreSQLのコマンドにパスが通るようになります。併せて、MANPATH変数(2行目)を設定しておけば、manコマンド実行時にはPostgreSQLのコマンドマニュアルも探すようになります。

 また、LD_LIBRARY_PATH変数(3行目)でPostgreSQLの共有ライブラリを、PGDATA変数(4行目)でデータベースを配置するディレクトリを指定しています。

 これらの環境変数の設定は、基本的に次回シェルにログインしたときから有効になります。ただし、今回はsourceコマンドを実行し、変更を即座に反映させておきます。sourceコマンドは次のように実行します。

[postgres]$ source $HOME/.bashrc

データベースクラスタの初期化

 PostgreSQLを使用できる状態にするには、一度データベースクラスタを初期化する必要があります。データベースクラスタとは、複数のデータベースを格納する領域です。データベースクラスタを初期化するには、postgresユーザーでinitdbコマンドを実行します。

 PostgreSQLでは、initdbコマンドを実行したユーザーがスーパーユーザーになります。また、データベースクラスタはPGDATA変数で指定したディレクトリに作成されます。

[postgres]$ initdb --encoding=UTF8 --no-locale

 --encodingは、データベースのデフォルトの文字エンコーディングを設定するオプションです。ここでは、文字エンコーディングにUTF-8を指定しています。

 --no-localeは、ロケールを使用しないことを設定するオプションです。ロケールとは、言語や文化に応じた処理をするOSの機構です。

 PostgreSQLでは、このロケールを主にデータのソート処理に使用しますが、英語や日本語のデータを扱う場合には特に必要ありません。反対にロケールを設定すると、ロケール処理の分、ソート処理などが遅くなりますので、注意してください。

サーバプロセスの起動と停止

 PostgreSQLのサーバプロセスを起動・停止するには、postgresユーザーでpg_ctlコマンドを実行します。

[postgres]$ pg_ctl -w start  // 起動処理終了後プロンプトに戻る
[postgres]$ pg_ctl stop
     // サーバプロセスの停止

 起動時の-wはwaitを表し、起動処理が終了した時点でコマンドプロンプトに戻すようにするオプションです。

 PostgreSQLのサーバプロセスを停止する際に、データベースに接続しているユーザーがいる場合は、上記のコマンドでは停止できません。この場合は、-mオプションを使用して停止方法を指定します。

[postgres]$ pg_ctl -m 停止方法 [s|f|i] stop

 停止方法には、s、f、i を引数として指定できます。それぞれ、smart、fast、immediateを表します。引数s(smart)は、新規の接続を拒否し、既存の接続が切断されるまで待ってから停止します。前述の-mオプションを指定しない場合はこの方法で停止処理が行われます。

 このほか、f(fast)は、既存の接続を強制的に切断してから停止し、i(immediate)は、適切な終了手順を踏まずにただちに停止します。

 導入と基本操作を確認したら、早速接続ができるかどうか確認してみましょう。次ページでその手順を解説していきます。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

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

メールマガジン登録

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