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 件のコメント:
コメントを投稿