snbhsmt_log

ネットワークとコンピュータ、その他いろいろ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Subversion リポジトリのバックアップ、リストア

Subversion リポジトリのバックアップ方法として svnadmin dump, svnadmin hotcopy, hot-backup.py の 3 つを検討した結果、hot-backup.py を使う事にした。 1 日 1 回、同スクリプトを cron から実行する様にした。

環境 : CentOS 4.6 / Subversion 1.1.4-2 (rpm)

svnadmin dump

  • リポジトリ全体ではなくデータベースしかバックアップできない。
  • 他のクライアントがリポジトリにアクセスしていても安全にバックアップできる。
  • dump ファイルが壊れていて svnadmin load でリストアできない場合を考慮して リビジョンを分けてバックアップしておく等の対策が必要。

/path/to/repo のデータベースを /path/to/dump-file にバックアップ。

# svnadmin dump /path/to/repo > /path/to/dump-file

それをリストアするには、新たにリポジトリを作成して svnadmin load する。

# svnadmin create /path/to/newrepo
# svnadmin load /path/to/newrepo < /pato/to/dump-file

svnadmin hotcopy

  • リポジトリ全体をバックアップできる。
  • 他のクライアントがリポジトリにアクセスしていても安全にバックアップできる。

/path/to/repo を /path/to/backup にバックアップ。 /path/to/backup は空ディレクトリでなければならない。

# svnadmin hotcopy /path/to/repo /path/to/backup

バックアップしたものはリポジトリそのものなので、そのままリストア可能。

hot-backup.py

/usr/share/doc/subversion-1.1.4/tools/backup/hot-backup.py スクリプトを 利用すると svnadmin hotcopy で複数バックアップしてくれる。

# python /usr/share/doc/subversion-1.1.4/tools/backup/hot-backup.py /path/to/repo /path/to/dir

最新リビジョンが 123 の時、/path/to/dir/repo-123 リポジトリが作成される。 /path/to/dir/repo-123 が既に存在する場合は /path/to/dir/repo-123-1 に作成される。 標準では 64 個のリポジトリが作成され、それ以上になった場合は古いものから削除される。 変更するにはスクリプト中の num_backups 変数の初期値を直接書き換える。

# Number of backups to keep around (0 for "keep them all")
#num_backups = 64
num_backups = 16

ちなみに、以下でリポジトリのデータベースを検証できる。

# svnadmin verify /path/to/repo
スポンサーサイト

« Trac のリポジトリ・ブラウザで日本語が文字化けないよう設定|Top|Trac と Subversion を連携させる »

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://snbhsmt.blog110.fc2.com/tb.php/88-61730b2e

Top

HOME

Author:snbhsmt
Google Profiles

http://www.ksky.ne.jp/~snbhsmt/

全ての記事を表示する

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。