SubversionのDBが壊れたときの修復スクリプト
SubversionのDBが壊れたときに、svnadmin recoverでは回復しなかったので
スクリプトを書いて解決しました。
以前[2006-10-03-1]にSubversionのDBが壊れてしまったときに、DBを再構築したのですが
それはSubversionを使い始めたばかりだからです。
今ではリポジトリのサイズが300Mbyteを超えていて、
再構築するのが非常に面倒そうです。
なので、真剣に修復する方法を探したら、方法が見つかりました。
以下のページに書いてあった方法を試したのです。
Subversion Users: Re: DB Corruption
一回全てのdbファイルとlogファイルを消して、
bdbなファイルを全てダンプしてロードするのです。
そうすると直ってしまうのです。
以下が、SubversionのDBを修復するスクリプトです。自己責任でどうぞ。
recover.sh
#!/bin/sh mv log.* /tmp mv __db.* /tmp for bdb in changes copies nodes representations revisions strings transactions uuids lock-tokens locks do mv $bdb $bdb.org db4.2_dump $bdb.org | db4.2_load $bdb done svnadmin recover /path/to/svnrepos/ svnadmin verify /path/to/svnrepos/
このスクリプトを/path/to/svnrepos/db/へ設置して実行してひたすら待つのです。
「db4.2_*」は自分の環境で使えるBerkeley DB関連のコマンドに
置き換えてご利用ください。
投稿者:としのり 日時:23:59:59 | コメント | トラックバック() |

