データベース整合性チェックを設定する

お困りですか?

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

コミュニティに質問

データベースの情報に重複や欠落があると、パフォーマンスの低下、予期しないエラー、不正確な構成など、Jira で複数の問題が発生する可能性があります。

データベース整合性チェックでは、Jira のデータベースで検出された不整合を定期的に修正し、データを安定した状態にリセットすることで、データの正確性と一貫性を維持します。これは次のような場合を含むさまざまなシチュエーションで役に立ちます。

  • プロジェクトを新しいワークフローに移行する前

  • 外部プログラムが Jira のデータベースを変更している場合

  • サーバー クラッシュをトラブルシューティングする場合

データベース整合性チェックを設定して調整するには、Jira 管理者権限を持つユーザーとしてログインする必要があります。Jira のグローバル権限の概要については、こちらをご確認ください。

データベース整合性チェックを調整する

Instance Optimizer for Jira アプリを最新バージョンに更新すると、インスタンスの定期的なデータベース整合性チェックが自動的に有効になります。つまり、このアプリは事前に構成された設定に基づいて、データの不整合を定期的に検出して修正します。 

既定では、このチェックは毎週日曜日の午前 3 時 (Jira のシステム時刻) に実行されます。Jira のシステム情報の詳細をご確認ください

最初は一部のチェックのみが有効になっていますが、インスタンス最適化ツールの設定でチェックのスケジュールやリストを調整することも、この機能を完全に無効にすることもできます。

  1. Jira アプリの右上で [Jira 管理] > [システム] の順に選択します。Jira 管理メニューのシステム設定

  2. サイドバーで、[インスタンス最適化ツール] に移動して [データベース整合性チェック] を選択します。このページには、Jira の保存データの一般的な不整合を探して対処する複数の整合性チェックが表示されます。既存のチェックの概要

  3. [スケジュール] セクションで、チェックを自動的に実行する時間を設定します。cron 構文のガイドラインについては、「cron 式の作成」を参照してください。

  4. チェックを実行するアクターを指定します。既定では、有効なシステム管理者がアクターとして選択されます

  5. 実行するチェックの横にあるチェックボックスを選択します。すべてのチェックを実行するには、[すべてのチェック] を選択します。

  6. [保存] をクリックすると、指定したスケジュールに従って定期的にチェックが実行されます。[手動で実行] ボタンを選択して、すぐにチェックを実行することもできます。 

    有効なチェックのリストを変更した場合は、変更を保存してから先に進んでください。そうしないと、以前に保存したチェックのみが実行されます。

チェックを開始すると、すべての有効なチェックがバックグラウンドで実行され、適切な修正が自動的に行われます。[ログを表示] ボタンをクリックすると、実行されたアクションを高度な監査ログで確認できます。

チェックを手動で開始したか自動で開始したかに関係なく、選択したデータベース整合性チェックごとに、修正または削除された内容の詳細を含む監査ログ エントリが生成されます。Jira の監査ログ イベントの概要

実行中に、その他のダウンストリームの Jira 監査イベントが生成されることがあります。これは意図された動作です。

整合性チェックの概要

このセクションでは、利用可能なすべてのデータベース整合性チェックを示し、その実行内容について詳しく説明します。

課題の関係を確認する

名前の確認長時間かかるかチェック対象

検出された問題の修正方法

関連付けられたプロジェクトがない課題のチェック

はい

課題のプロジェクト ID が既存のプロジェクトを指しているかどうかを確認します。

対応するプロジェクトがない場合は、課題を削除します。以下も削除します。

  • コメント (アクション)

  • 作業ログ

  • サブタスク

  • 課題リンク

  • アイテムを変更

  • 課題がプロジェクト間で移動された場合は、課題キー履歴を移動

  • 課題のプロパティ

  • ノードの関連付け

  • ユーザーの関連付け

  • カスタム フィールド値

  • ワークフロー エントリ

  • 関連付けられた通知スキーム

このチェックは、課題とそれに関連するすべてのデータを完全に削除します。課題のインデックスが解除され、削除イベントが送信されます。

このアクションでは、ディスクや Amazon S3 に保存されている添付ファイルは削除されません。

ワークフロー ステップのない課題のチェック

はい

課題のワークフロー ID が既存のワークフロー エントリを指しているかどうかを確認します。

  • 特定の課題タイプとプロジェクトのワークフローを取得します。

  • 特定の課題とワークフローの新しいワークフロー エントリを作成します。

  • ステップを「未着手」などの初期ステータスに設定します。

  • ワークフロー エントリ テーブルから放棄されたレコード (対応する課題のないレコード) を削除します。

課題ワークフローにおけるデータベース テーブルの概要

壊れた課題リンクのチェック

いいえ

課題リンクの発信元または宛先の課題 ID が既存の課題を指しているかどうかを確認します。

破損した課題リンクをデータベースから削除します。

課題リンク タイプが無効な課題リンクのチェック

いいえ

ISSUELINK テーブルの LINKTYPE フィールドについて、存在しない課題リンク タイプを指しているかどうか、または null に設定されているかどうかを確認します。

破損した課題リンクをデータベースから削除します。

検索リクエストのチェック

名前の確認長時間かかるかチェック対象

検出された問題の修正方法

検索リクエスト内の無効なプロジェクト参照のチェック

はい

空でないプロジェクト フィールドを含む検索リクエスト (検索フィルター) が既存のプロジェクトを指しているかどうかを確認します。

  • 対応するフィルター サブスクリプションを削除します。

  • フィルターに列レイアウトがある場合は、既定の列レイアウトを復元します。検索フィルターの詳細をご確認ください

  • 検索リクエストの権限を削除する

  • 検索リクエストを削除する

  • 検索リクエストをインデックス解除します。

課題の権限のチェック

名前の確認長時間かかるかチェック対象

検出された問題の修正方法

重複する権限スキームのチェック

はい

SCHEME_PERMISSIONS テーブルに以下が同じレコードがあるかどうかを確認します。

  1. スキーム ID

  2. 権限 ID

  3. 権限タイプ。権限タイプの詳細をご確認ください

  4. パラメーター

  5. 権限キー。プロジェクトの権限に関する詳細をご確認ください。

  • SchemePermissions テーブルから重複したレコードを削除します。

  • EntityDeletedEvent を送信して、監査ログに表示されるようにします。

Jira の監査ログ イベントの概要

ワークフローのチェック

名前の確認長時間かかるかチェック対象

検出された問題の修正方法

無効なワークフロー ステータスのチェック

いいえ

ステータスが null または 0 (CREATED) の対応するワークフロー エントリ ID を持つ課題があるかどうかを確認します。

検出されたすべての課題の、対応するワークフロー エントリの状態を 1 (ACTIVATED) に設定します。

各課題の現在のワークフロー ステップのチェック

いいえ

ワークフローにおける課題の現在のステータスが正しいかどうかを確認します。

このチェックは、インスタンスにあるすべての課題で繰り返されます。課題の数によっては、長時間かかる場合があります。


ユースケースに応じて、修正できる場合とできない場合があります。

ユースケース 1: 課題のステータスが null です。

結果: このチェックは修正できません。代わりに「ステータスが null の課題のチェック」を使用してください。

ユースケース 2: 課題のワークフロー ステータス ID が null です。

結果: このチェックは修正できません。代わりに「ワークフロー ステップのない課題のチェック」を使用してください。

ユースケース 3: 課題のステータスは設定されていますが、ワークフローにはこのステータスにリンクされたステップ記述子がありません。

結果: このチェックは修正できません。

ユースケース 4: 特定のワークフロー エントリ ID を持つ課題について、現在のステップ テーブルにレコードが見つかりません。

結果: 特定のステータスとワークフロー エントリ ID を持つ特定の課題 ID に対して、欠落している現在のステップを作成します。

ユースケース 5: 特定のワークフロー エントリ ID を持つ課題の現在のステップ テーブルに 1 個のレコードが見つかりましたが、ステップ ID が null であるか、課題のステータスからマップされたものと異なります。

結果: 見つかった現在のステップ レコードが無効な場合は、その値をデータベースに設定します。そうでなければ、スキップします。

ユースケース 6: 特定のワークフロー エントリ ID を持つ課題について、現在のステップ テーブルに 1 個以上のレコードが見つかりました。

結果: 冗長なステップを削除して、1 つだけ保持します。

ステータスが null の課題のチェック

いいえ

課題のステータスが null に設定されている場合。

  • 関連する現在のステップ テーブルと課題のワークフローを使用して、見つからない課題のステータスをマッピングします。

  • 課題が null から有効なステータスにトランジションする際の変更ログを更新します。

  • 課題のインデックスを再作成します。

課題ワークフローにおけるデータベース テーブルの概要

フィールド レイアウト スキームのチェック

名前の確認長時間かかるかチェック対象

検出された問題の修正方法

カスタム フィールドのないフィールド レイアウトのチェック

いいえ

すべてのフィールド レイアウト項目が既存のカスタム フィールドを指しているかどうかを確認します。

フィールド レイアウト アイテムでは、特定のフィールド レイアウトに特定のカスタム フィールドが必要かどうかを指定できます。フィールド動作の指定に関する詳細をご確認ください


フィールド レイアウト アイテム テーブルから不正なレコードを削除します。

フィルター サブスクリプションのチェック

名前の確認長時間かかるかチェック対象

検出された問題の修正方法

検索フィルターのないフィルター サブスクリプションのチェック

いいえ

フィルター サブスクリプションが存在しない検索フィルター (検索リクエスト) にリンクされているかどうかを確認します。

  • 影響を受けるサブスクリプションのすべての定期ジョブのスケジュールを解除します。

  • フィルター サブスクリプションをデータベースから削除します。

存在しないジョブがスケジュールされているフィルター サブスクリプションのチェック

いいえ

フィルター サブスクリプションが、クラスター ジョブ テーブルに存在しない定期クラスター ジョブにリンクされているかどうかを確認します。

フィルター サブスクリプション テーブルから不正なレコードを削除します。

無効なユーザーのフィルター サブスクリプションのチェック

いいえ

このチェックは、バージョン 5.2.1 と 6.1.3 (およびその後の 5.x と 6.x) 以降で利用できます。

有効な権限を失ったユーザーに属するフィルター サブスクリプションを確認します。

  • ユーザーがアプリへのアクセス権を持っている (ライセンス ユーザーである) かどうか。

  • ユーザーがサブスクリプションに関連付けられた検索フィルターを表示する権限を持っているかどうか。

このチェックは、権限の一時的な付与や設定ミスによるサブスクリプションの誤削除を防ぐため、既定でオフになっています。

有効な権限を失ったユーザーのフィルター サブスクリプションを削除します。

データベース整合性チェック用のプロパティ キー

データベース整合性チェックでは、REST API を使用して調整できる次のアプリ プロパティ キーを使用します。application-properties モジュールの詳細をご確認ください

プロパティ キー

説明

既定値

jira.integrity.checker.results.limit

チェックが長時間かかる操作としてマークされた場合に処理する修正の最大数。

1000

jira.integrity.checker.workflow.current.step.batch.size

チェックのバッチ サイズ: 各課題の現在のワークフロー ステップ。

1000

jira.integrity.checker.filter.subscription.batch.size

チェックのバッチ サイズ: 検索フィルターのないフィルター サブスクリプション。

1000





最終更新日: 2026 年 2 月 17 日

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

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