ここでは、お使いのサーバーに、『PostgreSQL 9.6.5』をインストールする手順を説明します。
インストール前にご一読ください
PostgreSQLは、本格的なオープンソースRDBMS(Relational Database Management System)です。
PostgreSQLのダウンロードはこちら
PostgreSQLに関する詳細は、「日本PostgreSQLユーザー会」の公式サイトをご参照ください。
ご注意
desknet's NEOでご利用いただけるPostgreSQLのバージョンは、「動作環境」をご確認の上、インストールを行ってください。
これからインストールを行うサーバー上に、既にdesknet's NEOのPostgreSQLがインストールされている想定で、PostgreSQL 9.6.5を別port(5433)で起動する説明となります。インストール前に必ずシステム状態をご確認ください。
1.パッケージソースの展開
suコマンドにて、rootユーザーにスイッチしてください。
[guest@xxxxxx guest]# su -
Password: |
|
ダウンロードサイトからダウンロードしたPostgreSQLのパッケージソースを展開します。ここでは、guestユーザーのホームディレクトリにあるものとします。
[root@xxxxxx guest]# cd /usr/local/src
[root@xxxxxx src]# tar zxvf /home/guest/postgresql-9.6.5.tar.gz |
|
展開が完了すると、/usr/local/srcディレクトリ下に「postgresql-9.6.5」というディレクトリが作成されます。
2.パッケージのインストール
インストールするサーバー環境による構成を行います。
[root@xxxxxx guest]# cd postgresql-9.6.5
[root@xxxxxx postgresql-9.6.5]# ./configure --prefix /usr/local/pgsql9.6.5
・
・(中略)
・
configure: using LDFLAGS= -Wl,--as-needed
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/include/pg_config_ext.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port
[root@xxxxxx postgresql-9.6.5]# |
|
※ここでは、インストール先以外、特にコマンドオプションを指定せず、/usr/local/pgsql9.6.5にインストールされる構成で説明します。インストール先等変更したい場合には"--prefix"オプションなど、PostgreSQLのインストールガイドをご参照ください。
サーバー上に不足しているパッケージなどがある場合、ここで構成エラーが発生しますので、不足しているパッケージを追加インストールするなどのご対応をお願いいたします。
次に、パッケージのコンパイルを行います。ここではGNU makeコマンドを使用してコンパイルします。
コンパイルは、お使いのハードウェアスペックにより、数分から数十分を要しますので、完了までお待ちください。
[root@xxxxxx postgresql-9.6.5]# gmake
・
・(中略)
・
gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src/test/regress' から出ます
gmake -C test/perl all
gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src/test/perl' に入りま す
gmake[2]: `all' に対して行うべき事はありません.
gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src/test/perl' から出ま す
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src' から出ます
gmake -C config all
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/config' に入ります
gmake[1]: `all' に対して行うべき事はありません.
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/config' から出ます
All of PostgreSQL successfully made. Ready to install.
[root@xxxxxx postgresql-9.6.5]# |
|
コンパイルが完了したら、インストールを行う前に、PostgreSQLが正しく動作するかを検証するためにリグレッションテストを行います。
リグレッションテストは、rootユーザーでは実行することができませんので、rootユーザー以外のユーザーにスイッチします。(ここでは「guest」ユーザーで実行します。)
[root@xxxxxx postgresql-9.6.5]# su guest
[guest@xxxxxx postgresql-9.6.5]# gmake check
・
・(中略)
・
sequence ... ok
polymorphism ... ok
rowtypes ... ok
returning ... ok
largeobject ... ok
with ... ok
xml ... ok
test event_trigger ... ok
test stats ... ok
============== shutting down postmaster ==============
============== removing temporary instance ==============
=======================
All 167 tests passed.
=======================
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src/test/regress' から出ます
[guest@xxxxxx postgresql-9.6.5]# |
|
"All 167 tests passed."が表示されればテストが正しく完了していますので、インストールを行います。
インストールは、rootユーザーで行います。先ほどスイッチした「guest」ユーザーから戻します。
[guest@xxxxxx postgresql-9.6.5]# exit
[root@xxxxxx postgresql-9.6.5]# gmake install
・
・(中略)
・
/usr/bin/install -c -m 644 ./nls-global.mk '/usr/local/pgsql9.6.5/lib/pgxs/src/nls-global.mk'
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src' から出ます
gmake -C config install
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/config' に入ります
/bin/mkdir -p '/usr/local/pgsql9.6.5/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/usr/local/pgsql9.6.5/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/usr/local/pgsql9.6.5/lib/pgxs/config/missing'
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/config' から出ます
PostgreSQL installation complete.
[root@xxxxxx postgresql-9.6.5]# |
|
"PostgreSQL installation complete."が表示されればインストールは完了です。
次に、ファイル内検索オプションを利用するために、PostgreSQLの"dblink"機能をコンパイルします。引き続き、rootユーザーで実行します。
[root@xxxxxx postgresql-9.6.5]# cd contrib/dblink
[root@xxxxxx dblink]# gmake
・
・(中略)
・
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src/interfaces/libpq' に入ります
gmake[1]: `all' に対して行うべき事はありません.
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.5/src/interfaces/libpq' から出ます
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -fPIC -I../../src/interfaces/libpq -I. -I. -I../../src/include -D_GNU_SOURCE -c -o dblink.o dblink.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -fPIC -shared -o dblink.so dblink.o -L../../src/port -L../../src/common -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql9.6.5/lib',--enable-new-dtags -L../../src/interfaces/libpq -lpq
[root@xxxxxx dblink]# |
|
"dblink"機能のコンパイル完了後、インストールを行います。
[root@xxxxxx dblink]# gmake install
[root@xxxxxx dblink]# cd ../..
[root@xxxxxx postgresql-9.6.5]# |
|
以上で"dblink"機能のインストールは完了です。
最後に、パッケージのコンパイルで生成されたオブジェクトファイルを削除することで、使用しているディスク容量を空けることができますので、必要に応じて実行してください。
[root@xxxxxx postgresql-9.6.5]# gmake clean |
|
3.データベース管理ユーザーの設定
作成したユーザーの環境変数に、PostgreSQLコマンドまでのパスを通します。これにより、作成した"postgres"ユーザーが、PostgreSQLデータベース管理コマンドなどを実行することができるようになります。
viコマンドで「.bash_profile」を開き、PATH変数を編集します。
[root@xxxxxx postgresql-9.6.5]# cd /home/postgres
[root@xxxxxx postgresql-9.6.5]# vi .bash_profile
|
|
以下のパスを環境変数「PATH」に追加設定してください。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin ←ここをpgsql9.6.5に変更
export PATH
|
|
編集が完了したら、viコマンドの":wq"(保存して閉じる)を実行してください。また、保存した内容を反映します。
[root@xxxxxx postgresql-9.6.5]# source .bash_profile |
|
4.データベースクラスターの初期化
PostgreSQLのデータベースクラスターの初期化を行います。
データベース格納先のディレクトリを作成し、"postgres"ユーザーをディレクトリオーナーに設定します。
[root@xxxxxx postgres]# mkdir -p /var/pgsql9.6.5/data
[root@xxxxxx postgres]# chown -R postgres:postgres /var/pgsql9.6.5
|
|
次に、"postgres"ユーザーにスイッチして、データベースクラスターを初期化します。
ここでは、先に作成した"/var/pgsql9.6.5/data"をデータベースファイル格納先として指定します。
[root@xxxxxx postgres]# su - postgres
[postgres@xxxxxx postgres]# initdb --encoding=utf8 --locale=C -D /var/pgsql9.6.5/data
・
・(中略)
・
Success. You can now start the database server using:
postgres -D /var/pgsql9.6.5/data
or
pg_ctl -D /var/pgsql9.6.5/data -l logfile start
[root@xxxxxx postgresql-9.6.5]#
|
|
PostgreSQLのport番号の変更を行います。
[postgres@xxxxxx postgres]$ cd /var/pgsql9.6.5/data
[postgres@xxxxxx data]$ vi postgresql.conf
|
|
以下の設定を変更してください。
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
(中略)
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432 # (change requires restart)
port = 5433 # (change requires restart)←追加
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
|
|
編集が完了したら、viコマンドの":wq"(保存して閉じる)を実行してください。また、保存した内容を反映します。
ここまで完了すると、PostgreSQLデータベースを起動する準備が整いましたので、PostgreSQLを起動します。
[postgres@xxxxxx postgres]# pg_ctl -D /var/pgsql9.6.5/data -l logfile start
server starting
[postgres@xxxxxx postgres]#
|
|
正常に起動できたら、確認用のデータベースを作成し、接続確認しましょう。
[postgres@xxxxxx postgres]# createdb test -p 5433
[postgres@xxxxxx postgres]# psql test -p 5433
psql (9.6.5)
Type "help" for help.
test=#
|
|
正常に接続できたら、データベース一覧(\lコマンド)を実行し、正しく作成できていることをご確認ください。
※作成した「test」データベースのCollate、Ctypeが"C"となっていない場合、desknet's NEOが正しく動作しない可能性がありますので、ご注意ください。(クラスターの初期化に誤りがある可能性があります。)
test=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+-------+-----------------------
postgres | postgres | UTF8 | C | C |
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | C | C |
(4 rows)
test=#
|
|
ここまでで、PostgreSQLのインストールは完了です。"psql"コマンドを終了するには\qを入力してください。
5.PostgreSQLサーバーの自動起動設定
サーバーのリブート時などに、PostgreSQLデータベースが自動的に起動するように設定しましょう。
PostgreSQLのパッケージソースに同梱されている、自動起動スクリプトテンプレートを流用して、お使いのサーバーで自動起動できるように設定します。
[postgres@xxxxxx postgres]# su - root
パスワード:
[root@xxxxxx postgres]# cd /usr/local/src/postgresql-9.6.5/contrib/start-scripts
[root@xxxxxx start-scripts]# cp linux /etc/init.d/postgresql9.6.5
[root@xxxxxx start-scripts]# chmod 755 /etc/init.d/postgresql9.6.5
[root@xxxxxx start-scripts]# |
|
コピーした自動起動スクリプトを、お使いのサーバー環境に合わせて編集します。
[root@xxxxxx start-scripts]# vi /etc/init.d/postgresql9.6.5 |
|
ここでは、/var/pgsql9.6.5/dataにデータベースファイルを作成しましたので、以下の赤字の設定を"/var/pgsql9.6.5/data"に変更してください。
#! /bin/sh
# chkconfig: 2345 98 02
# description: PostgreSQL RDBMS
・
・(中略)
・
## EDIT FROM HERE
# Installation prefix
prefix=/usr/local/pgsql ← ここを"/usr/local/pgsql9.6.5"に変更
# Data directory
PGDATA="/usr/local/pgsql9.6.5/data" ← ここを"/var/pgsql9.6.5/data"に変更
# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres
# Where to keep a log file
PGLOG="$PGDATA/serverlog"
・
・
|
|
編集が完了したら、viコマンドの":wq"(保存して閉じる)を実行してください。
次に"chkconfig"コマンドで、自動起動スクリプトをシステムに登録します。
[root@xxxxxx start-scripts]# chkconfig --add postgresql9.6.5
[root@xxxxxx start-scripts]# chkconfig --list | grep postgresql9.6.5
postgresql9.6.5 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
|
以上で、PostgreSQLの自動起動の設定は完了です。
►続いて『desknet's NEOアップデートツールのインストールとデータベース構築』を行います。
記載の製品名および商品名は、各社の商標、または登録商標です。