PostgreSQL 8.1.4 起動と自動起動設定
PostgreSQLの初回起動には、データベースクラスタというものを作成します。
データベースクラスタとは、データベース格納領域の事で、 OS上では、全てのデータが格納される1つのディレクトリとして存在し、 データベースの設定ファイルや、データファイルがその中に含まれます。
初回起動時のみ、このデータベースクラスタを作成します。 簡単にいうとデータ格納用のディレクトリとファイル群を作成するって事です。
Last Update : 2006年12月04日
PostgreSQL 8.1.4 起動と自動起動設定の手順
1. データベースクラスタの作成
上にも書きましたが、初回起動時のみデータベースクラスタを作成します。 データベースクラスタを作成するのはコマンドが用意されているので簡単です。
また、このコマンドは、postgres ユーザーで実行します。
コマンドオプション「-D」の後ろにデータ格納用のディレクトリを指定して実行します。 データ格納用のディレクトリは、前回作成した/usr/local/pgsql/data の事です。 ちなみに、ディレクトリは自由です。
違う所に作りたければ、/usr/local/pgsql/data を消して好きなところにディレクトリを作ってあげて下さい。 オーナーとグループを「 postgres 」にするのを忘れないように。
あと、引数に「 --no-locale 」をつけた方がいいです。 つけてないと日本語のソートがおかしくなったりします。
# ls -la /usr/local/pgsql | grep data drwx------ 10 postgres postgres 4096 9月 17 16:17 data オーナーとグループが postgres である事を確認する。 データベースクラスタの作成 # su - postgres # initdb -D /usr/local/pgsql/data --no-locale ↑環境変数を指定していなければ、/usr/local/pgsql/bin/initdb
これで、起動の準備は全て終了です。
2. PostgreSQL 起動
PostgreSQLを起動します。
PostgreSQLの制御用に「pg_ctl」というコマンドが用意されているので、それにオプションを指定し実行するとPostgreSQLが起動します。 また、起動時にログファイルを指定する事ができます。必要であればログファイルを作成しておきます。
ログファイルの作成 # touch /var/log/postgresql.log # chown postgres:postgres /var/log/postgresql.log PostgreSQL 起動 # pg_ctl -D /usr/local/pgsql/data -o "-i" -l /var/log/postgresql.log start
オプションの説明です。
オプション | 詳細 |
---|---|
-D | データベースクラスタまでのフルパスを指定 |
-o |
postmaster に渡す引数を指定します。 ここでは、-iを指定していますが、これは、ネットワーク越しの利用をする場合に使用します。 必須ではありません。 |
-l (小文字のL) | ログファイルまでのフルパスを指定 |
start | 起動 |
3. PostgreSQL 停止
PostgreSQL の停止方法です。
# pg_ctl stop -D /usr/local/pgsql/data
4. PostgreSQL 自動起動設定( chkconfig に登録 )
OSをリブートした場合、初期状態のままだと PostgreSQL が自動的に起動してきません。 ランレベルに合わせて、PostgreSQL自動起動するように設定します。
chkconfig --lsit とすると、どのランレベルでどのサービスが実行されるのかのリストが表示されます。 これに PostgreSQL を登録していきます。
4-1. シェル作成
# cd /etc/init.d/ # vi pgsql
以下内容
#!/bin/sh # # chkconfig: 35 86 15 # description: PostgreSQL PGACCOUNT="postgres" PGDATA="/usr/local/pgsql/data" PGLOG="/var/log/postgresql.log" PG_CTL="/usr/local/pgsql/bin/pg_ctl" . /etc/rc.d/init.d/functions case "$1" in start) echo -n "Starting postgres: " su - $PGACCOUNT -c "$PG_CTL -D \ $PGDATA -o \"-i\" -l $PGLOG start" ;; stop) echo -n "Stopping postgres: " su - $PGACCOUNT -c "$PG_CTL -D $PGDATA stop" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac exit 0
↑ start)の2行下の su - $PGACCOUNT -c ~ $PGLOG start" までは、行末の「 \ 」をとれば1行で書けます。
実行権限を与えます。
# chmod 755 pgsql
4-2. chkconfig に登録
# chkconfig --add pgsql
・確認
# chkconfig --list pgsql
pgsql 0:off 1:off 2:off 3:on 4:off 5:on 6:off ← ランレベル確認。
ランレベル3と5で、pgsql がon になっている事を確認します。
なっているなら、再起動したときに自動的に起動してくるようになります。
PostgreSQL 起動
# service pgsql start Starting postgres: postmaster starting
PostgreSQL 停止
# service pgsql stop Stopping postgres: waiting for postmaster to shut down.... done postmaster stopped
前の記事へ << PostgreSQL 8.1.4 初期設定へ