Technology

Could not open the requested SVN filesystem

subversion_logo_hor-468x64

お仕事中svnが動かないという知らせをクライアントさんから受けたところ

error.logに以下のようなメッセージが、、(mod_dav_svn経由でSVNを扱ってます)

Could not open the requested SVN filesystem.

まずは定石通りsvnadmin recoverを試すがなぜかsegmentation faultエラー、、

この間のSVNの脆弱性以降のアップグレードでリポジトリのバージョンが置き去りになってしまった??

そもそも大昔のリポジトリでいまだによく壊れるbdbを使用している事自体不安要素です。

そこで本気を出して直す事にしました。

まずは、、(バックアップをしてからね!!)

  • 古いsvnadminが入ってるサーバーから実行バイナリコピーしてsvnadmin recover

ダメでした、、svnadminのライブラリを全てコピーしないと動作しません。

ここでちょっと焦ってきます。とりあえずdbdを修復するのが先決か、、

  • db_recover -c -v -h

こでもダメ。本気(マジ)で焦ってくるので本気(マジ)の本気(マジ)を出します。

  1. リポジトリ計20G相当を古いsubversionの入っているサーバーにrsyncしてコピー
  2. コピー先でsvnadmin recover
  3. コピー先でsvnadmin dump repo > repo.dumpでダンプ
  4. コピー先でscp *.dump 元サーバー:で元サーバーへコピー
  5. 元サーバーでmv repo repo.old; svnadmin create repoでfsfs形式で新規作成
  6. 元サーバーでsvnadmin load < repo.dumpでリストア

無事復活しました!!(hookスクリプトのコピー、パーミッション変更等忘れずに!)

数年間の蓄積データーが

「も、、もしかして復活できないかも!?;」って焦る感じは何度経験しても嫌な感じです。

バックアップは計画的にとっておきましょう。

参考にさせて頂いたサイト

Berkeley DB 壊れる。 そして直る!

Subversion レポジトリの Berkeley DB を 4.3にアップグレードする

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください