カスタム検索

2009年6月11日木曜日

Subversionの移行とバックアップについて

ちょっとSubversionを移行する機会があったのでメモ

SVNを作成
svnadmin create repoName

バックアップの作成
svnadmin dump repoName > repo.dump

バックアップのリストア
svnadmin load repoName < repo.dump

ファイルを丸ごとコピーしてもいけるっぽいけど、環境によってはNGっぽいのでdumpを使う事にしました。

バックアップをする時は、必ずsvnのユーザで実行する事!rootはだめ!
dump した時にエラーが出る場合は repoName/db/log* のファイルが壊れている事があります。
だからと言って log* ファイルは結構大事なファイルなので、さくっと消してはいけません。

そんな時にはリカバリコマンド
svnadmin recover repoName

もちろんこれもsvnユーザで。rootユーザでやってリポジトリ壊れたのはいい思い出・・・

cronで常用バックアップしたい場合は svn-backup-dumps.py を使うと便利!
SVN1.4以降なら一緒にインストールされてます。
ここに詳しい事が乗っています。

こんな感じのスクリプトを作って
  1. DUMP="/subversion-1.4.2/tools/server-side/svn-backup-dumps.py"  
  2. BACKUPDIR="/svnbackup/"  
  3.   
  4. for var in `ls -F /svn/repos|grep /`  
  5. do  
  6.  BKSVN="$BACKUPDIR$var"  
  7.  mkdir $BKSVN  
  8.  $DUMP -c 10 $var $BKSVN  
  9. done  


crontab に設定
05 4 * * * root /root/svnbackup.sh

これでrepos以下にあるリポジトリ全部を /svnbackup へバックアップしてくれます、リポジトリが増えても安心!

0 件のコメント: