RPMパッケージのインストール
まず、yumリポジトリの設定ファイルをインストールします。 CentOS(RHEL)バージョンとPostgreSQLメジャーバージョンの組み合わせごとに設定用RPMが配布されているので、必要なものを使います。 今回は、CentOS(RHEL) 7のPostgreSQL 9.4用を使います。
# yum install http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
(ry...
インストール:
pgdg-redhat94.noarch 0:9.4-1
完了しました!
次に、PostgreSQLのRPMパッケージをインストールします。 指定したのは
postgresql94-server, postgresql94-contribの2つで、あとは依存関係に任せました。
# yum install postgresql94-server postgresql94-contrib
(ry...
インストール:
postgresql94-contrib.x86_64 0:9.4.1-1PGDG.rhel7 postgresql94-server.x86_64 0:9.4.1-1PGDG.rhel7
依存性関連をインストールしました:
postgresql94.x86_64 0:9.4.1-1PGDG.rhel7 postgresql94-libs.x86_64 0:9.4.1-1PGDG.rhel7
完了しました!
ネットワーク的に隔離されているなどの理由でyumが使えない場合は、postgresql94とpostgresql94-libsのRPMファイルも必要ということになります。postgresql94-contribは必須ではありません。
ただ、いろいろと便利なので、今回はインストールしました。
PGDATAの設定〜DBファイル作成(initdb)〜起動
PGDATAの場所は、systemdのserviceファイルに直書きされているようです。 serviceファイルを/etc配下にコピーし、設定を書き換えます。
# cp -a /lib/systemd/system/postgresql-9.4.service /etc/systemd/system/. # vim /etc/systemd/system/postgresql-9.4.service (以下の行を書き換える) Environment=PGDATA=/path/to/pgdata
デフォルトのロケールや文字コードを変更したい場合、一般的にはinitdbコマンドのオプションとして指定します。 一方、serviceファイルの設定に従ってDBファイルを作成するコマンドとして、
postgresql94-setupというのが提供されています。
postgresql94-setup経由でinitdbする際は、PGSETUP_INITDB_OPTIONS環境変数にinitdbのオプションを渡すと良いようです。
# export PGSETUP_INITDB_OPTIONS="-E UTF8 --no-locale -X /path/to/pgxlog" # /usr/pgsql-9.4/bin/postgresql94-setup initdb Initializing database ... OK今回は、以下の3つを指定しました。
-E: DBに格納する文字コード。UTF-8だとあまり気にする必要はないが、EUC-JPの場合は必要。--no-locale: ロケール。-X: WALの格納場所。$PGDATA/pg_xlogがシンボリックリンクになる。
# systemctl start postgresql-9.4.service
# systemctl status postgresql-9.4.service
postgresql-9.4.service - PostgreSQL 9.4 database server
Loaded: loaded (/etc/systemd/system/postgresql-9.4.service; disabled)
Active: active (running) since 火 2015-03-24 18:41:33 JST; 56s ago
Process: 15482 ExecStart=/usr/pgsql-9.4/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=0/SUCCESS)
Process: 15476 ExecStartPre=/usr/pgsql-9.4/bin/postgresql94-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 15486 (postgres)
CGroup: /system.slice/postgresql-9.4.service
├─15486 /usr/pgsql-9.4/bin/postgres -D /path/to/pgdata
├─15487 postgres: logger process
├─15489 postgres: checkpointer process
├─15490 postgres: writer process
├─15491 postgres: wal writer process
├─15492 postgres: autovacuum launcher process
├─15493 postgres: archiver process
└─15494 postgres: stats collector process
(ry...
補足・参考
自動起動したければ、普通にsystemctl enableです。ちゃんとやるなら、SELinuxの設定とかもあると思います。 手元の環境では、SELINUX=disabled しています。
0 件のコメント:
コメントを投稿