データベース整合性チェッカーの利用

システム管理

このページの内容

お困りですか?

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

コミュニティに質問

共通データの不整合を検索するために、データベース整合性チェッカーは全 Jira データの整合性の確認を試行します。

これは次のような場合を含むさまざまなシチュエーションで役に立ちます。

  • プロジェクトを新しいワークフローに移行する前
  • 外部プログラムが Jira のデータベースを変更している
  • サーバークラッシュのトラブルシューティング

エラーが発生した場合、ほとんどの整合性検査では、データを安定した状態にリセットしようとする「修復」オプションが用意されています。

次のすべての手順を行うには、Jira システム管理者グローバル権限を持つユーザーとしてログインする必要があります。

次のセクションにジャンプ:

整合性チェッカーの利用

  1. 上部のナビゲーション バーから [管理者 ] > [システム] を選択します。 
  2. [システム サポート] > [整合性チェッカー] を選択して整合性チェッカーのページを開きます。
    整合性チェッカーは、多くの整合性チェック機能を使用して、Jira に保存されたデータから一般的な不整合を見つけます。整合性チェックの詳細をご確認ください。
  3. 実行したいオプションを 1 つ以上選択して、[チェック] ボタンを選択します。
  4. チェックの実行中は、進捗バーで操作の状態を追跡できます。 操作が完了したら、[承認] ボタンを選択します。
  5. プレビュー画面が表示され、すべてのチェックに合格したかどうかを確認できます。

    1. データの不一致が見つかった場合は赤で表示され、[修正] ボタンもページに表示されます。不一致を修正するには、表示されているチェックを選択し、[修正] ボタンを選択します。

    2. 黄色のメッセージは、チェックが修正されないことを示す警告です。課題に対してアクションが実行されると、Jira はこれらの不一致から自動的に回復します。

      不整合を修正する前にデータをバックアップしておくことを強くお勧めします。

  6. 不整合が検出され、その修正を選択した場合、実行されたすべての修正処置を説明するサマリ画面が表示されます。

整合性チェッカーは、jira.integrity.checker.displayable.results.limit プロパティで制限されているレコードの数を表示します。つまり、制限が 20 に設定されている場合、各チェックでは最大 20 件の結果が表示されます。

整合性チェッカーは、jira.integrity.checker.results.limit プロパティで制限されている影響を受けるレコードの数も修正します。つまり、制限を 1000 に設定すると、最大 1000 レコードが修正されます。2000 件の該当レコードが見つかった場合は、1000 レコードのみを修正して再度チェックを実行するか、制限を調整してさらに多くのレコードを対象にできます。

プロパティ キーを変更する

監査イベント

整合性チェッカーに関連する監査イベントには次の 3 タイプがあります。

  • チェックまたは修正が開始されると、整合性チェッカー タスクが開始されます。

  • 整合性チェッカーのタスクが終了しました: チェックまたは修正が完了し、操作を実行したユーザーに承認されたとき。

  • 整合性チェッカーのタスクが削除されました: システム管理者がチェックまたは修正を実行し、終了したが、次の事象が発生したとき。

    • 提出者に承認されていない。この場合、提出者は監査ログでその内容を見つけ、進行状況の URL を使用してページに戻り、タスクを承認できます。

    • タスク送信のノードが再起動され、別のシステム管理者が https://{JIRA_HOME}/secure/admin/IntegrityChecker!default.jspa を入力した。これが発生した場合は、そのタスクはもう承認できません。問題を解決するには、チェックまたは修正を再度実行してください。

整合性チェックの概要

整合性チェッカーは、多くの整合性チェック機能を使用して、Jira に保存されたデータから一般的な不整合を見つけます。

名前の確認長期的な修正か?チェック内容修正方法
課題の関係を確認する
関係が「ParentProject」の課題を確認する

はい プラス

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

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

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

  • 作業ログ

  • サブタスク

  • 課題リンク

  • アイテムを変更

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

  • 課題のプロパティ

  • ノードの関連付け

  • ユーザーの関連付け

  • カスタム フィールド値

  • ワークフロー エントリ

  • データベースからの課題の汎用値

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

インデックスが解除され、削除イベントが送信されています。

(warning) This action doesn't remove attachments stored on disk or S3.

関係が「RelatedOSWorkflowEntry」の課題を確認する

はい プラス

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

  • 特定の課題タイプとプロジェクトのワークフローを取得します。
  • 特定の課題とワークフローの新しい OS ワークフロー エントリを作成します。
  • ステップを「未着手」などの初期ステータスに設定します。
  • OS のワークフロー入力テーブルから放棄されたレコード (対応する課題のないレコード) を削除します。

すべての課題リンクが有効な課題に関連付けられていることを確認する

いいえ マイナス

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

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

検索リクエストを確認する

検索リクエストが有効なプロジェクトを参照していることを確認する

はい プラス

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

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

  • 列レイアウトがある場合は、既定のレイアウトに復元します。

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

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

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

  • イベントを監査ログに公開します。

重複する権限を確認する

権限が重複していないことを確認する

はい プラス

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

  1. スキーム ID

  2. 権限 ID

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

  4. パラメーター

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

  • スキーム権限テーブルから重複したレコードを削除します。

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

ワークフローの整合性を確認する

ワークフロー エントリの状態が正しいことを確認する

いいえ マイナス

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

見つかった課題の、対応する OS ワークフロー エントリの状態を 1 (ACTIVATED) に設定します。

ワークフローの現在のステップ エントリを確認する







いいえ マイナス







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

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

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

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

結果: このチェックは修正できません。回復するには、ステータスが null の Jira 課題を確認するを使用してください。

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

結果: このチェックは修正できません。回復するには、関係「RelatedOSWorkflowEntry」の課題を確認するを使用してください。

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

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

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

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

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

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

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

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

ステータスが null の Jira 課題を確認する

いいえ マイナス

課題のステータスが null の場合

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

  • 課題がステータス null から目的のステータスに移行する際の変更ログを更新します。

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

フィールド レイアウト スキームの整合性を確認する

フィールド レイアウト スキームで、削除されたカスタム フィールドへの参照がないことを確認する

いいえ マイナス

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

(info) フィールド レイアウト項目では、特定のフィールド レイアウトに特定のカスタム フィールドが必要かどうかを指定できます。フィールド動作の指定に関する詳細

フィールド レイアウト アイテム テーブルから問題のあるレコードを削除します。

無効なフィルターのサブスクリプションを確認する

存在しないスケジュール ジョブへの参照に関する FilterSubscriptions を確認する

いいえ マイナス

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

フィルター サブスクリプション テーブルから問題のあるレコードを削除します。

存在しない SearchRequests への参照が FilterSubscriptions にあるかどうかを確認する

いいえ マイナス

以下の場合に確認

  • フィルター サブスクリプションが存在しない検索フィルター (検索リクエスト) にリンクされています。
  • サブスクリプションからのユーザーには、この検索フィルターを使用する権限がありません。
  • 影響を受けるサブスクリプションのすべての定期ジョブのスケジュールを解除します。

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

整合性チェッカーのプロパティ キー

整合性チェッカーは、次のアプリ プロパティ キーを使用します。これらのキーは、[システム] > [高度なプロパティ (Advanced properties)] の順に選択するか、または REST API を使用していつでも調整できます。

プロパティ キー説明 既定値高度なプロパティで調整可能REST API 経由で調整可能

jira.integrity.checker.results.limit

チェックが長期的な修正としてマークされた場合に処理する修正の最大数。

1000

はい プラス

はいプラス

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

ワークフローの現在のステップ整合性チェッカーのバッチ サイズ。

1000

はい プラス

いいえ マイナス

jira.integrity.checker.displayable.results.limit

1 回の整合性チェックで UI に表示される結果の最大数。

20

はい プラス

いいえ プラス

最終更新日 2024 年 11 月 20 日

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

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