Jira アプリケーションの PostgreSQL への接続

ここでは、Jira を PostgreSQL データベースに接続する接続する方法を解説します。

はじめる前に

On this page:

1. PostgreSQL データベースを作成・設定する

リモート TCP 接続を承認する (リモート PostgreSQL サーバーのみ)

Jira をリモート PostgreSQL サーバーに接続する場合 (PostgreSQL サーバーが Jira サーバーのホスト システムでローカルにインストールされていない場合)、Jira サーバーの IP アドレスからのリモート TCP 接続を承認するよう、data/postgresql.conf および data/pg_hba.conf ファイルを構成する必要があります。

次の PostgreSQL ドキュメントには、postgresql.conf ファイルや pg_hba.conf ファイルで利用できる listen_addresses の値についての情報が含まれています。

data/postgresql.conf および data/pg_hba.conf ファイルを変更した後、PostgreSQL を再起動して変更を反映します。

お使いのバージョンの PostgreSQL 用にデータベースやデータベースを作成する

PostgreSQL のバージョンのユーザーやデータベースの作成に関する情報は、PostgreSQL の Web サイトに記載されています。

  1. Jira が接続するためのデータベース ユーザー (ログイン ロール) を作成します (例: jiradbuser)。
    以降のステップにおいて Jira の接続を設定する際に利用されるため、このデータベース ユーザー名を覚えておく必要があります。
  2. Unicode 照合を使用して課題を保存するための Jira 用データベースを作成します (例: jiradb)。
    以降のステップにおいて Jira の接続を設定する際に利用されるため、このデータベース名を覚えておく必要があります。

    CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;

    またはコマンドラインから

    $ createdb -E UNICODE -l C -T template0 jiradb
  3. ユーザーがデータベースに接続し、データベース中でテーブルを作成・追加できる権限を持っていることを確認します。


    GRANT ALL PRIVILEGES ON DATABASE <Database Name> TO <Role Name>
  4. 権限が正常に付与されたことを検証するには、データベースに接続して「\z」コマンドを実行します。

最適な PostgreSQL パフォーマンスを達成して維持するには、毎日実行する保守タスクをスケジュールしてデータベースの統計を更新する必要があります。定期的な保守タスクのセットアップ方法は「Optimize and Improve PostgreSQL Performance with VACUUM, ANALYZE, and REINDEX (VACUUM、ANALYZE、REINDEX で PostgreSQL パフォーマンスを最適化して改善)」をご確認ください。

PostgreSQL 15 を使用していますが、Jira でデータベースにテーブルを作成できません

PostgreSQL 15 では、ユーザーに対するテーブル作成権限の処理方法が変更されました。PostgreSQL 15 は、公開 (または既定) スキーマのデータベース所有者を除くすべてのユーザーから CREATE 権限を取り消します。Postgres 15 のドキュメントによると、Jira データベース ユーザーのユーザープライベート スキーマを作成することで修正できます。

ただし、次のコマンドを実行して、公開スキーマに権限を付与することもできます。

  1. Jira が使用するユーザーを作成します。

    postgres=# CREATE USER atlas WITH PASSWORD 'atlas';
  2. データベースを作成します。

    postgres=# CREATE DATABASE atlas WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;
  3. データベースに必要な権限を付与します:

    postgres=# GRANT ALL PRIVILEGES ON DATABASE atlas TO atlas;
  4. データベースに接続します。

    postgres=# \c atlas postgres

     これで、データベース atlas にユーザー postgres として接続されました。

  5. 必要なスキーマ権限を付与します。

    atlas=# GRANT ALL ON SCHEMA public TO atlas;


2. PostgreSQL データベースに接続するように Jira Server を設定する

Jira サーバーを PostgreSQL データベースに接続するには、2 つの方法があります。

  • Jira セットアップ ウィザード を使用する — Jira をインストールした直後で、初めて Jira を設定する場合はこの方法を使用します。設定は、dbconfig.xmlJira ホーム ディレクトリdbconfig.xml ファイルに保存されます。
  • Jira 設定ツール を使用する — 既存の Jira インスタンスがある場合はこの方法を使用します。設定は、Jira ホーム ディレクトリdbconfig.xml ファイルに保存されます。

各設定手法の手順説明

Jira セットアップ ウィザード

ブラウザから初めて Jira にアクセスすると、Jira セットアップ ウィザード が表示されます。

  1. 最初の画面 の “Configure Language and Database” で、 “Database Connection” に My own database を選択します。
  2. Database Type” を “SQL Server” に設定します。
  3. 下記の データベース接続関連フィールド を参照し、フィールド入力を行います。
  4. 接続をテストし、保存します。

Jira 設定ツール

  1. Jira 設定ツールを次のように実行します。
  2. データベース タブへ進み、データベースの種類 PostgreSQL に設定します。
  3. 下記の データベース接続関連フィールド を参照し、フィールド入力を行います。
  4. 接続をテストし、保存します。
  5. Jira を再起動します。

データベース接続フィールド

セットアップウィザード / 設定ツールdbconfig.xml説明
ホスト名

<url> タグに配置されます (下記の例の太字部分):
<url>jdbc:postgresql://dbserver:5432/jiradb</url>

PostgreSQL サーバーがインストールされている PC 名または IP アドレス。
ポート<url> タグに配置されます (下記の例の太字部分):
<url>jdbc:postgresql://dbserver:5432/jiradb</url>
PostgreSQL サーバがリッスンしている TCP/IP ポート。このフィールドが空の場合、デフォルト ポートが使用されます。
データベース<url> タグに配置されます (下記の例の太字部分):
<url>jdbc:postgresql://dbserver:5432/jiradb</url>

PostgreSQL データベースの名前 (Jira データの保存先)。上記 ステップ 1 で作成します。

ユーザ名

<username> タグに配置されます (下記の例の太字部分):
<username>jiradbuser</username>

PostgreSQL サーバーに接続するために JIRA が使用するユーザー。上記 ステップ 1 で作成済みのはずです。
パスワード<password> タグに配置されます (下記の例の太字部分):
<password>jiradbuser</password>
PostgreSQL サーバーとの認証に利用するユーザーのパスワード。
スキーマ<schema-name> タグに配置されます (下記例の太字部分):
<schema-name> public </schema-name>

PostgreSQL データベースが使用するスキーマ名。

PostgreSQL 7.2 以降の場合は、<schema-name/> 要素で指定するスキーマが必要です。お使いの PostgreSQL データベースがデフォルトの “public” スキーマを使用している場合、それを以下のように <schema-name/> 要素内で指定する必要があります。お使いのデータベース スキーマ名が小文字であることを確認します。Jira では、スキーマ名に大文字が含まれる Postgfe SQL データベースは使用できません。

カスタム スキームを使用すると課題が発生する可能性があるため、パブリック スキームを使用することをおすすめします。参照: JRASERVER-64886

dbconfig.xml ファイルのサンプル

上記の dbconfig.xml ファイルに含まれる、pool で始まる <jdbc-datasource/> の子要素の詳細については、「データベース接続のチューニング」を参照してください。

<?xml version="1.0" encoding="UTF-8"?>

<jira-database-config>
  <name>defaultDS</name>
  <delegator-name>default</delegator-name>
  <database-type>postgres72</database-type>
  <schema-name>public</schema-name>
  <jdbc-datasource>
    <url>jdbc:postgresql://dbserver:5432/jiradb</url>
    <driver-class>org.postgresql.Driver</driver-class>
    <username>jiradbuser</username>
    <password>password</password>
    <pool-min-size>20</pool-min-size>
    <pool-max-size>20</pool-max-size>
    <pool-max-wait>30000</pool-max-wait>
    <pool-max-idle>20</pool-max-idle>
    <pool-remove-abandoned>true</pool-remove-abandoned>
    <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
 
    <validation-query>select version();</validation-query>
    <min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
    <time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
  
    <pool-test-on-borrow>false</pool-test-on-borrow>
	<pool-test-while-idle>true</pool-test-while-idle>

  </jdbc-datasource>
</jira-database-config>

Jira セットアップ ウィザードとデータベース設定ツールの両方も、dbconfig.xml ファイルに要素 <validation-query>select 1</validation-query> を追加します。これは通常、既定の MySQL インストールで Jira を実行する場合に必要です。詳細については、「コネクション切断の問題を乗り越える方法」をご参照ください。

3. Jira を起動する

PostgreSQL データベースに接続するための Jira の設定が完了しました。次のステップでは、これを起動させます。

(tick) これで、Jira を PostgreSQL データベースに接続することができました。

最終更新日 2023 年 11 月 17 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.