svn備份一般采用三種方式:
- svnadmin dump (遠程倉庫可以用svnrdump dump)
- svnadmin hotcopy
- svnsync
svnadmin dump 本地備份(svnrdump dump 遠程倉庫備份)
優點:
- 官方推薦
- 靈活,可以全量備份,也可以增量備份
- 提供恢復機制
缺點:
- 如果版本比較大,如版本數增長到數萬、數十萬,那么dump的過程將非常慢
- 備份耗時,恢復更耗時
- 不利於快速進行災難恢復
備份
這里用svnadmin本地備份為例,svnrdump操作一致,只是換了參數換成遠程倉庫url
# 本地備份
svnadmin dump repo > full.dump
# 遠程倉庫備份
svnrdump dump url > full.dump
增量備份
# --incremental 在轉儲版本號或版本號范圍時, 對范圍中的第一個版本號按照增量 格式進行轉儲, 而不是默認行為—轉儲第一個版本
號的完整內容.
svnrdump dump url -r 26 --incremental > full.dump
還原備份
這里需要注意的是,如果是使用svnrdump命令還原,需要在目標倉庫中
配置pre-revprop-change鈎子腳本,返回值為0
svnrdump load url < full.dump
svnadmin hotcopy 熱拷貝
優點:
- 備份過程快
- 災難恢復也很快
缺點:
- 比較費磁盤,備份出來的空間與源空間一樣大
- 只能鏡像全量拷貝,不能進行增量備份
svnadmin hotcopy repo repo4
svnsync倉庫鏡像工具
優點:
- 當制作成2個鏡像庫的時候起到雙機實時備份的作用
缺點:
- 當作為2個鏡像庫使用時,沒辦法做到“想完全拋棄今天的修改恢復到昨晚的樣子”;而當作為普通備份機制每日備份時,操作又較前2種方法麻煩
前提是目標倉庫中要開啟pre-revprop-change,返回值為0
初始化一個鏡像倉庫
svnsync initialize MIRROR_URL SOURCE_URL
# 可以縮寫成
svnsync init MIRROR_URL SOURCE_URL
把源倉庫中未同步過的版本號同步到鏡像倉庫中
svnsync synchronize MIRROR_URL [SOURCE_URL]
# 縮寫
svnsync sync MIRROR_URL [SOURCE_URL]