svn備份方式對比分析
一般采用三種方式:
1、svnadmin dump
2、svnadmin hotcopy
3)svnsync
注意,svn備份不宜采用普通的文件拷貝方式(除非你備份的時候將庫暫停),如copy、rsync命令。
曾經用rsync命令來做增量和全量備份,在季度備份檢查審計中,發現備份出來的庫大部分都不可用,因此最好是用svn本身提供的功能來進行備份。
優缺點分析:
第一種 svnadmin dump是官方推薦的備份方式,優點是比較靈活,可以全量備份也可以增量備份,並提供了版本恢復機制。
缺點是:如果版本比較大,如版本數增長到數萬、數十萬,那么dump的過程將非常慢;備份耗時,恢復更耗時;不利於快速進行災難恢復。
個人建議在版本數比較小的情況下使用這種備份方式。
第二種 svnadmin hotcopy原設計目的估計不是用來備份的,只能進行全量拷貝,不能進行增量備份;
優點是:備份過程較快,災難恢復也很快;如果備份機上已經搭建了svn服務,甚至不需要恢復,只需要進行簡單配置即可切換到備份庫上工作。
缺點是:比較耗費硬盤,需要有較大的硬盤支持(俺的備份機有1TB空間,呵呵)。
第三種 svnsync實際上是制作2個鏡像庫,當一個壞了的時候,可以迅速切換到另一個。不過,必須svn1.4版本以上才支持這個功能。
優點是:當制作成2個鏡像庫的時候起到雙機實時備份的作用;
缺點是:當作為2個鏡像庫使用時,沒辦法做到“想完全拋棄今天的修改恢復到昨晚的樣子”;而當作為普通備份機制每日備份時,操作又較前2種方法麻煩。
svnadmin dump方式
SVN遷移需要做如下操作:
1. 將原來的Repository導出為一個文件dumpfile 。
#svnadmin dump 原先的repos的目錄路徑(/repository/directory) > dumpfile
#svnadmin dump /opt/svn/iitshare/ > /var/tmp/iitshare_20130626
2. 在另外一台機器上配置同樣的SVN服務器。
參考:linux SVN安裝及配置圖解教程
3. 將dumpfile導入到新的repository 目錄中。
#svnadmin load 新建的repos的目錄路徑(/repository/directory) < dumpfile
#svnadmin load /opt/svn/iitshare/ < /var/tmp/iitshare_20130626
4. 將原先服務器的配置文件備份后復制到新服務器中
#/opt/svn/iitshare/conf目錄下
authz、passwd、svnserve.conf文件
svnadmin hotcopy方法
1. 備份
#svnadmin hotcopy /opt/svn/iitshare/ /var/tmp/iitshare_20130626 –clean-logs
如果你傳遞–clean-logs選項,svnadmin會執行熱拷貝操作,然后刪除不用的Berkeley DB日志文件。
你可以在任何時候運行這個命令得到一個版本庫的安全拷貝,不管其它進程是否使用這個版本庫。
2. 還原
#svnadmin hotcopy /var/tmp/iitshare_20130626 /opt/svn/iitsha
文章作者: iitshare
本文地址:http://www.iitshare.com/linux-svn-migration.html
版權所有 © 轉載時必須以鏈接形式注明作者和原始出處!
