OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2012/06/28
更新日: 2016/07/04

OSSでLinuxサーバ構築

PostgreSQL 9.0をCentOS 6.2へインストールして初期設定

トップページOSSでLinuxサーバ構築 > PostgreSQL 9.0をCentOS 6.2へインストールして初期設定
このエントリーをはてなブックマークに追加

構成

想定環境

PostgreSQL 9.0構成

サーバ構成

OSバージョン

CentOS 6.2 64bit

パッケージ一覧

postgresql90-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-libs-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-server-9.0.8-1PGDG.rhel6.x86_64.rpm

サーバ構築

インストール

 PostgreSQLサーバに必要なパッケージを3つインストールします。 CentOS同梱のPostgreSQLパッケージはバージョン8.xと古いので、 コミュニティで公開されているバージョン9.0のパッケージを利用します。 ファイルをダウンロードして/tmpに配置し、以下のコマンドを実行します。

# rpm -ihv postgresql90*
Preparing...                ########################################### [100%]
   1:postgresql90-libs      ########################################### [ 33%]
   2:postgresql90           ########################################### [ 67%]
   3:postgresql90-server    ########################################### [100%]

設定

(1) データベースの初期化

 データベースを初期化します。

# /etc/rc.d/init.d/postgresql-9.0 initdb
Initializing database:                                     [  OK  ]

(2) 設定ファイルの変更

 設定ファイルのログ出力に関する設定を変更します。

# cd /var/lib/pgsql/9.0/data/
# vi postgresql.conf
ファイル名:/var/lib/pgsql/9.0/data/postgresql.conf
※以下、該当箇所のみ変更※
log_directory = 'pg_log'              # directory where log files are written,
   ↓変更
log_directory = '/var/log/postgresql' # directory where log files are written,

log_filename = 'postgresql-%a.log'    # log file name pattern,
   ↓変更
log_filename = 'postgresql-%Y%m%d.log'        # log file name pattern,

log_rotation_age = 1d                 # Automatic rotation of logfiles will
   ↓変更
log_rotation_age = 7d                 # Automatic rotation of logfiles will

#log_line_prefix = ''                 # special values:
   ↓変更
log_line_prefix = '%t [%p] '          # special values:

lc_messages = 'ja_JP.UTF-8'                   # locale for system error message
   ↓変更
lc_messages = 'C'                     # locale for system error message

(3) PostgreSQLの起動ランレベル変更

 Linux起動時にPostgreSQLを自動起動する設定に変更します。

# chkconfig postgresql-9.0 on
# chkconfig --list postgresql-9.0
postgresql-9.0  0:off   1:off   2:on    3:on    4:on    5:on    6:off

(4) PostgreSQLの起動

 以上で設定が終了したのでrcスクリプトを使用してデーモンを起動します。

# /etc/rc.d/init.d/postgresql-9.0 start
Starting postgresql-9.0 service:                           [  OK  ]

動作テスト

(1) プロセスの起動確認

 PostgreSQLのプロセスが起動していることを確認します。

# ps -ef | grep postgres
postgres  5745     1  0 00:17 ?        00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
postgres  5747  5745  0 00:17 ?        00:00:00 postgres: logger process        
postgres  5749  5745  0 00:17 ?        00:00:00 postgres: writer process        
postgres  5750  5745  0 00:17 ?        00:00:00 postgres: wal writer process    
postgres  5751  5745  0 00:17 ?        00:00:00 postgres: autovacuum launcher process
postgres  5752  5745  0 00:17 ?        00:00:00 postgres: stats collector process
root      5765  1399  0 00:20 pts/0    00:00:00 grep postgres

(2) データベースの確認

 インストール直後から存在しているデフォルトデータベースの一覧を表示して確認します。 コマンドはpostgresユーザにスイッチしてから実行します。

# su - postgres
-bash-4.1$ psql -l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |  アクセス権
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
(3 行)

(3) ログファイルの確認

 ログの出力先を変更したので、以下のように正しくログ出力されているか確認します。 出力内容は必ずしも以下の通りとは限らないので、ログが出力されていることのみ確認してください。

-bash-4.1$ cd /var/log/postgresql/
-bash-4.1$ cat postgresql-20130310.log
2013-03-10 04:23:56 JST [1166] LOG:  database system was shut down at 2012-09-09 12:15:53 JST
2013-03-10 04:23:56 JST [1162] LOG:  database system is ready to accept connections
2013-03-10 04:23:56 JST [1169] LOG:  autovacuum launcher started

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■