Reindexing outside of the cluster (for 7.x to 8.13 upgrades)

このページの内容

お困りですか?

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

コミュニティに質問

ユーザーのダウンタイムを最小化するために、データベースのコピーを作成して本番環境クラスタの外部でインデックスを作成します。ほとんどのデータがインデックス済みになるため、アップグレードされたノードではインデックス全体をゼロから作成することなく、不足しているインデックスの追加のみを行うことができます。

概要

このアプローチの詳細を読む...

ノードは、オフラインになってクラスタに再参加するたびに、データベースから直接読み取った最新の操作でインデックスを更新し、バックグラウンドで再インデックスを行います。これはノードがインデックスを持っている場合も該当します。不足している変更は引き続きデータベースにあり (保持期間を構成できます、後述)、これらはインデックス全体の 10% よりも小さくなります。

ここでは同じメカニズムを使用します。データベースのコピーを Jira 8.13 のフレッシュ インストールに接続してインデックスを作成し、インデックスに新しいバージョンとの互換性を持たせます。インデックスはほとんどのデータを含み、ノードではアップグレードの開始後に元のデータベースに加えられた不足している変更を適用するだけで済みます。

クラスタ全体のアップグレード後、ノードは新しいインデックスを検出して不足している変更を追加します。ノードの観点では、短期間オフラインになっていたのと同じ状況と見なされます。

ユーザーに影響するダウンタイムはアップグレード自体のみとなります。Jira はアップグレード後すぐに機能するようになります。

はじめる前に

これらのステップは Jira Data Center をシャット ダウンすることなく行なえます。

クラスタ外部でインデックスを作成

データベースのコピーを作成し、Jira 8.13 をそれに接続します。これにより、本番環境クラスタの外部で Jira 8 との互換性を持つインデックスを作成できます。

1. NodeIndexCounter テーブルにコピー

  • データベースで NodeIndexCounter テーブルのコピーを作成します。

この操作が必要な理由

NodeIndexCounter テーブルは、個々のノードからそれらのインデックスのコピーに適用された変更を記録します。このタイミングでコピーし、元のデータベースにあとから (アップグレード中に) 復元することで、この時点でユーザーが行った可能性があるすべての変更をアップグレードされたノードに含めることができます。

2. データベースのコピー

  • 稼動中のデータベースのコピーを作成します。あとから元のデータベースに切り替えるため、ユーザーによる新規データの追加について心配する必要はありません。

これらのステップは実際のアップグレードに可能な限り近いタイミングで行う必要があります。これにより、元のデータベースとクローンされたデータベースの違いを最小限に抑え、保持期間を超過しないようにします。

保持期間の詳細について...

既定の最大期間は 2 日です。これは、最近の操作がデータベース (テーブル: ReplicatedIndexOperations) に保管される最長の期間です。この期間を超えた場合、2 日よりも古い変更は削除されるため、ノードで不足しているすべての変更を元のデータベースから追加することはできません。保持期間を延長できますが、変更がインデックス全体の 10% を超えた場合はノードで完全な再インデックスが必要になる点にご注意ください (10% を超える可能性は高くはありませんが、実際のユーザーの変更量に依存します)。

3. データベースのコピーを Jira 8.13 に接続

データベースのコピーを接続する、別の Jira 8.13 環境が必要です。この環境の要件は次のとおりです。

  • Jira 8.13 である必要があります。

  • 本番環境インスタンスと同じプラグインを持っている必要があります (プラグインはカスタム フィールドからの値を保持していたり、再インデックス中にインデックスにデータを追加したりしている可能性があります)。

  • Data Center ライセンスを使用している必要があります。ただし、シングル ノード構成を使用できます。

この環境をセットアップするもっとも簡単な方法は、次のステップを完了することです。

次のステップでは、別の 8.13 インスタンスをインストールし、自動再インデックスを無効化し、プラグインをインストール (または本番環境からコピー) して、準備が整ったら手動で再インデックスを実行します。

  1. Jira Data Center のアップグレード」の「最初のノードで Jira をアップグレードする」の手順に従います。Jira 8.13 を構成する際は、ここまでのステップで作成したデータベースのコピーに接続するようにします。
  2. Jira Data Center のアップグレード」の「最初のノードでのアップグレード後の手順」の手順に従います。 

結果

手動の再インデックスを完了したら、データベースのコピーの情報に基づいた Jira 8 インデックスを用意できます。コピーの作成後に元のデータベースに加えられた情報は含まれませんが、不足している変更エントリのノードでの追加は、インデックス全体をゼロから作成するよりも簡単に行えます。

インデックスをノードにコピー

Jira 8 のインデックスは既存のクラスタに影響しないよう、古いバージョンとは別のディレクトリに保管されます。新しいインデックスを各ノードにコピーし、ノードでのダウンロードを不要にできます。

Jira 8 のインデックスを各ノードの次のディレクトリにコピーします。 

<local-home-directory>/caches/indexesV1

Jira Data Center のアップグレード

ここでは Jira Data Center をシャットダウンし、アップグレードを開始する必要があります。

最初のノードのアップグレード

Jira Data Center のアップグレードでは時間の削減のため、1 つのノードを選択してそれをアップグレードし、インストール ディレクトリをほかのノードにコピーすることをおすすめします。ここでは任意のノードを選択できます。

  1. クラスタを停止します。

  2. この手順の最初にコピーした NodeIndexCounter テーブルを元のデータベースに復元します。これにより、アップグレードの開始後に元のデータベースに追加されたすべての情報について、ノードでエントリが作成されます。

  3. 最初のノードをアップグレードします。「Jira Data Center のアップグレード」の「最初のノードで Jira をアップグレードする」の手順に従います。作業を開始する前に次のメモをご確認ください。 

    自動再インデックスの無効化

    リンク先の手順の最後のステップには、自動再インデックスを無効化する旨の説明があります (ステップ 5: 自動再インデックスの無効化)。この手順を確実に完了するようにします。未完了の場合、Jira で自動再インデックスが開始され、この手順の目的を果たすことができません。

  4. 最初のノードでアップグレード後の手順を完了します。「Jira Data Center のアップグレード」の「最初のノードでのアップグレード後の手順」の手順に従います。 

    ステップの 1 つでインデックスを再インデックスするように促されます。このステップは除外するようにします。インデックスはクラスタ外部で作成済みのため、再作成する必要はありません。

実行される内容について

最初のノードの開始後、データベースがアップグレードされます。次のステップとして、ノードはインデックスの状態を確認し、必要に応じて再インデックスします。ただし、互換性のあるインデックスをすでにコピー済みであるため、ノードはこれを検出し、不足している変更のエントリ (元のデータベースと、Jira 8 インデックスを作成するために使用したクローンされたデータベースとの違い) の追加のみを行います。ノードの観点では、短期間オフラインになっていたのと同じ状況と見なされます。

オプション: インデックスのスナップショットのリクエスト

このオプションのステップでは、ノードでデータベースの更新を処理するのではなく、最初のノードのインデックスのスナップショットをダウンロードします。

詳細を読む...

弊社では一般に、このステップは除外してノードで更新を処理することをおすすめしています。しかしながら、インデックスのサイズが大きすぎず、アップグレード後の更新の数が大量にある場合、スナップショットを取得するほうが時間がかからない可能性があります。

ノードでスナップショットをダウンロードするには、残りのノード (最初のノードではない) でインデックス ファイルを削除する必要があります。ノードはホーム ディレクトリにインデックスがない状態で、最初のノードにスナップショットをリクエストします。


残りのノードのアップグレード

これで、インストール ディレクトリを残りのノードにコピーしてそれらをアップグレードできます。

Upgrade remaining nodes. Follow Upgrade remaining nodes from Upgrading Jira Data Center.

インデックスの再実行

ノードには完全なインデックスが存在しているはずですが、変更が確実に適用されていることを確認するため、再びインデックスを作成することをおすすめします。再インデックスは 1 つのノードで実行されるため、Jira Data Center をシャット ダウンする必要はありません。

  1. > [システム] > [再インデックス] に移動します ("." を押して検索できます)。
  2. [完全な再インデックス] を選択します。

再インデックスの完了には時間がかかりますが、ユーザーは引き続き Jira を利用できます。完了後、新しいインデックスが残りのノードに自動的に配布されます。

最終更新日: 2022 年 10 月 20 日

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

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