人気ブログランキングへ

2006年12月17日

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

Fedora Core などで yum を使って自動的にパッケージをアップグレードさせておくのは便利だが、時折、知らぬ間に不具合が生じて動作しなくなっている場合がある。
SVN のバージョン 1.2 へのアップグレードがその例だ。

http://subversion.tigris.org/faq.html#bdb43-upgrade

しばらく前から、SVN レポジトリが読み出せず、

(20014)Internal error: Berkeley DB error for filesystem /svnrepo/XXX/db while opening environment:\nDB_VERSION_MISMATCH: Database environment version mismatch
Could not fetch resource information. [500, #0]
Could not open the requested SVN filesystem [500, #160029]
Could not open the requested SVN filesystem [500, #160029]


こんなエラーメッセージを出力するようになっていた。
めんどうなので放置していたが、データが使えなくなるとさすがにまずいので修復を試みた。
手順の大筋は上記リンクのとおりである。以下、実際に行った作業の内容を記す。

(1) svnadmin の古いバージョンのバイナリを用意する。
今回は、Fedora Core 3 をインストールした PC (以降、FC3環境と呼ぶ) を用意し、それに subversion をインストールした (バージョンは 1.1.4)。

(2) SVN レポジトリをtarで固めて FC3 環境にコピー、適当なところに展開する。
※ここでは、展開先を /tmp/svn とする。

(3) FC3 環境で、次のコマンドを実行する

# svnadmin recover /tmp/svn
# rm -i `svnadmin list-unused-dblogs /tmp/svn`
# rm -i /tmp/svn/db/__db.00*


これで、このレポジトリは新しいバージョンでも読み出せるようになる。

(4) (3)で用意したレポジトリを、もとの環境に戻す。この際、もとのレポジトリはバックアップをとっておく。

あとは、たとえば checkout などして、動作確認すればよい。
posted by K/I at 23:05 | Comment(0) | TrackBack(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/29830125

この記事へのトラックバック