PostgreSQL のインストールと DB (データベース) の作成 (RHEL 9)

本ページでは、RHEL 9 で PostgreSQL 11 をインストールし、Atlassian 製品用のデータベースを作成する手順を説明します。




PostgreSQL のインストール

1. サーバのターミナルウィンドウを開く

PostgreSQL をインストールするサーバに root 権限でログインし、ターミナルウィンドウを開きます。

2. リポジトリをインストールする

以下のコマンドを実行し、PostgreSQL のリポジトリをインストールします。

$ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

途中でインストールしてよいか確認されるので、内容に問題がなければ "y" を入力して Enter キーを押下してください。

出力される内容
読み込んだプラグイン:fastestmirror
pgdg-redhat-repo-latest.noarch.rpm


...
(中略)
...


合計容量: 10 k
インストール容量: 10 k
Is this ok [y/d/N]:     ← 問題なければ、"y" を入力し Enter を押下する。


3. PostgreSQL をインストールする

以下のコマンドを実行し、PostgreSQL をインストールします。

$ yum install postgresql13-server


途中でインストールしてよいか確認されるので、内容に問題がなければ "y" を入力して Enter キーを押下してください。

出力される内容
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile


...
(中略)
...


総ダウンロード容量: 14 M
インストール容量: 53 M
Is this ok [y/d/N]:     ← 問題なければ、"y" を入力し Enter を押下する。


4. PostgreSQL のバージョンを確認する

以下のコマンドを実行し、インストールされた PostgreSQL のバージョンを確認します。

psql --version
出力される内容
psql (PostgreSQL) 13.13

データベース領域の初期化

1. 初期化ファイルを修正する

パフォーマンス悪化防止のため、初期化で使うコマンドのファイル (/usr/pgsql-11/bin/postgresql-11-setup) を修正し、initdb コマンドのオプションとして "--no-locale -E UTF-8" を追加します。

  1. 以下のコマンドを実行し、/usr/pgsql-11/bin/postgresql-11-setup ファイルをテキストエディタで開きます。

    vi /usr/pgsql-13/bin/postgresql-13-setup
  2. 下記の行を探します。

    initdbcmd+=" $PGSETUP_INITDB_OPTIONS"

    の行を以下のように変更します。--no-locale の前には忘れずにスペースを挿入して下さい。

    initdbcmd="$PGENGINE/initdb --pgdata='$PGDATA' --auth='ident' --no-locale -E UTF-8"
    initdbcmd+=" --no-locale -E UTF-8" $PGSETUP_INITDB_OPTIONS"
  3. ファイルを保存して終了します。

2. データベース領域を初期化する

以下のコマンドを実行し、データベース領域を初期化します。

/usr/pgsql-13/bin/postgresql-13-setup initdb

下記の出力が出る事を確認します。

出力される内容
Initializing database ... OK

上記の出力がされない場合はエラーが発生している事が考えられますので、ログファイルを確認します。

出力される内容
cat /var/lib/pgsql/13/initdb.log

The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "C.UTF-8".
The default text search configuration will be set to "english".

Data page checksums are disabled.
initdb: error: could not open file "/dev/zero--no-locale" for reading: No such file or directory
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.


設定ファイルの修正

1. パフォーマンスを調整する

/var/lib/pgsql/13/data/postgresql.conf ファイル内の値を変更し、PostgreSQL のパフォーマンスを調整します。

  1. 以下のコマンドを実行し、/var/lib/pgsql/13/data/postgresql.conf ファイルをテキストエディタで開きます。

    vi /var/lib/pgsql/13/data/postgresql.conf
  2. 以下の行を見つけ、それぞれ変更していきます。

    1. shared_buffers の値を変更し、メモリバッファで使用するメモリ量を設定します。
      この値はご利用のサーバの環境にも左右されてしまいますが、今回は 512MB を指定します。

      変更前
      shared_buffers = 128MB
      変更後
      shared_buffers = 512MB
    2. work_mem のコメントアウトを解除し、ソート用のメモリバッファを指定します。

      変更前
      #work_mem = 4MB
      変更後
      work_mem = 4MB
    3. wal_buffers のコメントアウトを解除し、トランザクションログを書き出す際に使用されるメモリバッファを指定します。

      変更前
      #wal_buffers = -1
      変更後
      wal_buffers = 64kB
  3. ファイルを保存して終了します。


2. 接続クライアントを設定する

/var/lib/pgsql/13/data/postgresql.conf ファイルを編集し、localhost や特定の IP アドレスから接続できるように設定します。

  1. 以下のコマンドを実行し、/var/lib/pgsql/11/data/postgresql.conf ファイルをテキストエディタで開きます。

    vi /var/lib/pgsql/11/data/postgresql.conf


  2. listen_addresses の部分のコメントアウトを解除します。

    変更前
    #listen_addresses = 'localhost'
    変更後
    listen_addresses = 'localhost'


    localhost 以外からもアクセスが発生する場合は、以下のように接続を許可するインターフェースの IP アドレスをカンマ区切りで追加してください。

    変更後
    listen_addresses = 'localhost,192.168.0.1,192.168.0.2'
  3. ファイルを保存して終了します。

3. 認証方法を設定する

/var/lib/pgsql/11/data/pg_hba.conf ファイルを編集し、認証方法を指定します。
デフォルトでは ident 方式となっていますが、パスワード認証を行う md5 方式に変更します。

  1. 以下のコマンドを実行し、/var/lib/pgsql/11/data/pg_hba.conf ファイルをテキストエディタで開きます。

    vi /var/lib/pgsql/13/data/pg_hba.conf
  2. 以下の行を探します。

    変更前
    host    all             all             127.0.0.1/32            scram-sha-256

    の行を以下のように変更します。

    変更後
    host    all             all             127.0.0.1/32            md5


    localhost 以外からもアクセスが発生する場合は、以下のような接続元の IP アドレスの認証方法を指定した行を追加してください。

    変更後
    host    all             all             192.168.0.0/24            md5
  3. ファイルを保存して終了します。

設定ファイルを修正したら、以下のコマンドを実行し、PostgreSQL を起動します。

systemctl start postgresql-13



自動起動設定

以下のコマンドを実行し、サーバの起動時に PostgreSQL が自動的に起動するように設定します。

systemctl enable postgresql-13


PostgreSQL の起動と停止は、以下のコマンドから行うことができます。

  • PostgreSQL の起動

    systemctl start postgresql-13
  • PostgreSQL の停止

    systemctl stop postgresql-13

ユーザとデータベースの作成

Jira や Confluence などの接続先 DB (データベース) として使用するため、専用のユーザとデータベースを用意します。


1. サーバのユーザを切り替える

以下のコマンドを実行し、サーバのユーザを postgres へ切り替えます。

su - postgres

postgres ユーザは、PostgreSQL のインストール時に作成されるユーザです。


2. PostgreSQL のターミナルへ切り替える

以下のコマンドを実行し、PostgreSQL を操作するターミナルへ切り替えます。

psql


3. ユーザを作成する

以下のコマンドを実行し、各アプリケーションで使用するユーザを作成します。

create role <username> password '<password>' createdb login;

<username> の部分は任意のユーザ名に、<password> の部分は安全なパスワードに置き換えてください。


4. データベースを作成する

以下のコマンドを実行し、各アプリケーションで使用するデータベースを作成します。

create database <database name> owner <username> encoding 'utf-8' lc_collate 'C' lc_ctype 'C' template template0;

<database name> の部分は任意のデータベース名に、<username> の部分はあらかじめ作成しておいたユーザの名前に置き換えてください。

Confluence では、照合順序を 'UTF-8' にすることが推奨されています。
以下のような内容でデータベースを作成してください。

create database <database name> owner <username> encoding 'utf-8' lc_collate 'ja_JP.UTF-8' lc_ctype 'ja_JP.UTF-8' template template0;

PostgreSQL を操作するターミナルを終了するには、"\q" コマンドを実行してください。

ポートの開放

localhost 以外からもアクセスが発生する場合は、以下のように ポート番号 5432 を開放して外部からアクセスする事を可能にします。

firewall-cmd --permanent --zon=public  --add-service=postgresql
firewall-cmd --reload


以上で、PostgreSQL のインストールからデータベースの作成までは完了です。

リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ