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

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

 

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

 


 

PostgreSQL のインストール

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

PostgreSQL のインストール作業を実施するためには、root 権限が必要です。PostgreSQL をインストールするサーバに root か、sudo コマンドを実行できるユーザーでログインしてターミナルウィンドウを開いて下さい。

このドキュメントは root 権限のユーザーで実行する前提で書かれています。root 以外の sudo 権限を持つユーザーが実行する場合は、以下の内容に置き換えて進めてください

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

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 postgresql17-server

 

途中で GPG 鍵とパッケージをインストールしてよいか確認されるので、問題なければ "y" を入力して Enter キーを押下してください。

出力される内容
========================================================================================================================================================================= パッケージ アーキテクチャー バージョン リポジトリー サイズ ========================================================================================================================================================================= ... (中略) ... ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 合計 655 kB/s | 7.8 MB 00:12

 

出力される内容
PostgreSQL 17 for RHEL / Rocky / AlmaLinux 9 - x86_64 2.4 MB/s | 2.4 kB 00:00 GPG 鍵 0x08B40D20 をインポート ... (中略) ... インストール済み: postgresql17-00.00-2PGDG.rhel9.x86_64 postgresql17-libs-00.00-2PGDG.rhel9.x86_64 postgresql17-server-00.00-2PGDG.rhel9.x86_64 完了しました!

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

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

psql --version

 

出力される内容
psql (PostgreSQL) 17.00

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

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

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

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

    vi /usr/pgsql-17/bin/postgresql-17-setup

     

  2. 下記の行を探します。

    initdbcmd="$PGENGINE/initdb --pgdata='$PGDATA' -A scram-sha-256 --auth-local=peer" initdbcmd+=" $PGSETUP_INITDB_OPTIONS"

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

    initdbcmd="$PGENGINE/initdb --pgdata='$PGDATA' -A scram-sha-256 --auth-local=peer --no-locale -E UTF-8" initdbcmd+=" $PGSETUP_INITDB_OPTIONS"  

     

  3. ファイルを保存して終了します。

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

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

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

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

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

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

出力される内容
cat /var/lib/pgsql/17/initdb.log ... (中略) ... 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/17/data/postgresql.conf ファイル内の値を変更し、PostgreSQL のパフォーマンスを調整します。

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

    vi /var/lib/pgsql/17/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/17/data/postgresql.conf ファイルを編集し、localhost や特定の IP アドレスから接続できるように設定します。

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

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

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

    vi /var/lib/pgsql/17/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-17

 



自動起動設定

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

systemctl enable postgresql-17

 

確認として以下のコマンドを実行します。

systemctl is-enabled postgresql-17

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

出力される内容
enabled





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

  • PostgreSQL の起動

    systemctl start postgresql-17

     

  • PostgreSQL の停止

    systemctl stop postgresql-17

     

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

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. プライバシーポリシー お問い合わせ