アップグレード後にホーム ディレクトリのビルド番号とデータベースのビルド番号が一致しないために Confluence が起動しない

お困りですか?

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

コミュニティに質問

プラットフォームについて: サーバーと Data Center のみ。この記事は、サーバーおよび Data Center プラットフォームのアトラシアン製品にのみ適用されます。

問題

Confluence のバージョン 5.1.2 以降をアップグレードしようとしたときにアップグレードに失敗し、ログに次のエラーが表示される。

20XX-01-01 00:00:00,00 ERROR [main] [atlassian.confluence.setup.BootstrapApplicationStartupListener] checkConfigurationOnStartup Confluence will not start up because the build number in the Home Directory [<build number>] doesn't match the build number in the Database [<build number>].
20XX-01-01 00:00:00,00 ERROR [Catalina-utility-1] [atlassian.confluence.setup.BootstrapApplicationStartupListener] checkConfigurationOnStartup Confluence cluster node will not start up because the finalized build number in the database [<build number>] doesn't match either the application build number [<build number>] or the home directory build number [<build number>].


ビルド番号が表すバージョンについては次のページをご確認ください。「Confluence のビルド情報

原因

これは次のいずれかの状況によって発生します。

  1. サイトの復元を実行したばかりで、5.1.4 以前を利用している場合、次のバグの影響を受けている可能性があります。 CONF-29758 - Getting issue details... STATUS 説明に記載されている内容に状況が一致する場合はバグ レポートで提供された回避策に従ってください。
  2. 過去のある時点でアップグレードに失敗した。
  3. データベースが以前のバージョンに復元されているが、ホーム ディレクトリでは復元が行われていない。あるいはその逆の状況。

これらはいずれも、データベースとホーム ディレクトリの両方ですべてのアップグレード タスクが行われなかったことを意味します。Confluence のバージョンについての情報は、データベースの confversion テーブルとホーム ディレクトリの <confluence_home_directory>/confluence.cfg.xml に格納されています。

インタンスのアップグレード先の Confluence バージョンについての情報が含まれる confversion テーブルの実体は、正常に完了済みのアップグレード タスクのレコードです。アップグレード タスクが完了すると、Confluence はアップグレード タスクのビルド番号を含むエントリを confversion テーブルに格納します。confversion テーブルのビルド番号がリリースの実際のビルド番号に一致しないことがあるのは、このためです。個々のアップグレード タスクはビルド番号を持ち、各リリースは、対象のバージョンへのアップグレードに必要なすべてのアップグレード タスクよりも大きい値のビルド番号を持ちます。


ソリューション


対象ごとのビルド番号は次のように見つけられます。
  1. データベースは次の内容を実行:

    select * from CONFVERSION;
  2. ホーム ディレクトリは <confluence_home_directory>/confluence.cfg.xml ファイルを確認:

    <confluence-configuration>
      ...
      <buildNumber>4215</buildNumber>
      ...
    </confluence-configuration>

ソリューション 1

可能な場合、データベースとホーム ディレクトリの両方が、失敗したアップグレード試行よりも前の時点に復元されるのが理想的です。これが完了したら、データベースとホーム ディレクトリに表示されるビルド番号が同じであることを確認します。

ソリューション 2

特定の時点の復元が不可能な場合、2 つの値のうち低いほうにビルド番号を手動で戻します。たとえば、ホーム ディレクトリで 4215、データベースで 3289 と表示される場合、ホーム ディレクトリを 3289 に設定してアップグレードを再度行います。これにより、データベースで利用されている Confluence バージョンとアップグレード先のインストール ファイルのバージョンとの間のすべてのアップグレード タスクが行われるほか、データベースとホーム ディレクトリのアップグレードが行われます。データベースの値を変更するには、ホーム ディレクトリのバージョンよりも高いビルド番号を持つ任意のエントリを削除します。

いかなる場合であっても conf version テーブルからすべての行/バージョン情報を削除しないでください。

delete from CONFVERSION where BUILDNUMBER > YOUR_HOME_DIRECTORY_BUILD_NUMBER

ホーム ディレクトリのビルド番号を編集するには <confluence_home_directory>/confluence.cfg.xml ファイルを編集します。

ソリューション 3

confluence.cfg.xml ファイルにアップグレード済みのデータベース ビルド番号が含まれるが、confversion テーブルに次の例のような行が表示される場合があります。

CONFVERSIONIDBUILDNUMBERINSTALLDATEVERSIONTAGCREATIONDATELASTMODDATE
456012345664412017-07-04 06:01:42.54Locked for version upgrade to 7201


これは、スキーマのアップグレードが完了していないことを意味します。この問題は、ビルド番号を戻し、atlassian.forceSchemaUpdate システム プロパティを利用することで手動で修正できます。

まずは confluence.cfg.xml  ビルド番号を更新してデータベースのビルド番号 (上記シナリオの 6441) に合わせます。

次に、直近のビルド番号の versiontag が null ではない場合は null に設定する必要があります。

データベースの変更操作が含まれるため、変更の前にデータベースのバックアップを作成することが強く推奨されます

UPDATE CONFVERSION 
SET VERSIONTAG = NULL
WHERE CONFVERSIONID = 4560123456;

変更のコミットを忘れないようにしてください (Oracle では変更の受け入れ前にコミットが必要です)


最後に、スキーマのアップグレードを強制するため、インスタンスに次のシステム プロパティを適用します (OS ごとの手順については「システム プロパティの設定」をご確認ください): -Datlassian.forceSchemaUpdate=true

これらの変更を行ったら、すべてのノードを停止してから 1 つのノードを完全に起動させます。次に、データベースと confluence.cfg.xml でビルド番号が一致するようになったことを確認します。その後、-Datlassian.forceSchemaUpdate=true を削除できます。

Last modified on Mar 30, 2023

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

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