[BitBucket][QNAP] docker 運用の BitBucket が壊れた時の修復方法

先日、停電(瞬電ではなく10秒くらいの停電)がありまして、BitBucket の DB が壊れてしまったので、修復した時のメモです

環境&対象

以下の環境で動作確認を行なっています。

  • QNAP 253BE
  • ContainerStation 2.3.5.1708
  • BitBucket 6.9

# BitBucket は、過去のバージョンを使い続けてます。

BitBucket が起動しない

停電後に、QNAP 本体は自動で再起動したのですが、BitBucket にアクセスしようとすると、以下のような画面がでて、アクセス不能になりました。

ErrorScreen
ErrorScreen

# 同じ ContainerStation で運用している JIRA は、再起動後、問題なく動いてます。

ContainerStation でのコンソールを確認すると、起動しようとしてそのままになってます。

# 原因としては、ディスクのクラッシュではなく、動作中に強制シャットダウンになったために、DB が ロック状態で終了してしまったためのようです。

解決策:Atlassian の Knowledge base

こちらです。

そのものズバリの説明でした。
自分の場合は、Option#2 がログに出力されてました。

外部 DB ではなく、内部DB(H2) での運用だったので、ドキュメントが用意されていないんじゃないかと不安でしたが、外部DBだけでなく、H2 database の復旧方法もきちんと説明されていました。

H2 database をコンソールで修復することで、解決

QNAP の ContainerStation から、コンソールを開き作業することが必要でした。

Atlassian の ドキュメントでは、BitBucket を停止してから作業するようにと説明されていますが、ContainerStation では、コンテナを動作させるかどうかしか選択できません。

動作させないとコンソールも開けないため、コンテナを起動させてコンソールで作業しました。(念の為、データファイルのバックアップは取っておきました)

ドキュメント通りにコンソールで開いているところ
ドキュメント通りにコンソールで開いているところ
SQLコマンドでの修復
SQLコマンドでの修復

結果オーライ的な状況ですが、上記のように修復が完了し、コンテナを再起動することで、BitBucket がきちんと動くようになりました。

Bitbucket が起動しない時の対応方法

  • まず Atlassian のサイトで解決策を探す
  • Docker を使って起動している場合は、サーバー上のディスクを直接マウントして データディレクトリとして使うようにしておくと、作業前に簡単にバックアップできて便利
  • 補足:QNAP の ContainerStation のコンソールは、コマンド補完がないので、typo で苦労しました。Web の説明から コピペで行うのが良さそうです

個別の git は、ローカルにあるとしても Bitbucket が復旧してよかった。(1日近く つぶれました)

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です