スポンサーサイト
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
コメント
コメントの投稿
トラックバック
http://snbhsmt.blog110.fc2.com/tb.php/88-61730b2e

