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

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

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

はじめる前に

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

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

Jira をリモート PostgreSQL サーバーに接続する場合 (PostgreSQL サーバーが Jira Server のホスト システムでローカルにインストールされていない場合)、Jira Server の 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 Server を PostgreSQL データベースに接続するには、2 つの方法があります。

  • Jira セットアップ ウィザードを使用するJira をインストールした直後で、初めて Jira をセットアップする場合はこの方法を使用します。設定は Jira ホーム ディレクトリ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 の設定が完了しました。次のステップでは、Jira を起動します。

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

最終更新日 2023 年 11 月 17 日

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

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