術(shù)語(yǔ)匯編:Visual Subversion的備份和還原
在學(xué)習(xí)Subversion的過(guò)程中,你可能會(huì)遇到Visual Subversion備份和還原的問(wèn)題,下面我們就來(lái)簡(jiǎn)單的學(xué)習(xí)一下Visual Subversion備份和還原,希望對(duì)大家學(xué)習(xí)Subversion有所提升。
除去最常用的update,checkout,commit等操作,最常見(jiàn)的就是對(duì)svn版本庫(kù)的備份和還原。
備份策略
Visual Subversion備份一般采用三種方式:
1)svnadmindump
2)svnadminhotcopy
3)svnsync.
注意,svn備份不宜采用普通的文件拷貝方式(除非你備份的時(shí)候?qū)?kù)暫停),如copy命令、rsync命令。
筆者曾經(jīng)用rsync命令來(lái)做增量和全量備份,在季度備份檢查審計(jì)中,發(fā)現(xiàn)備份出來(lái)的庫(kù)大部分都不可用,因此最好是用svn本身提供的功能來(lái)進(jìn)行備份。
優(yōu)缺點(diǎn)分析:
==============
第一種svnadmindump是官方推薦的備份方式,優(yōu)點(diǎn)是比較靈活,可以全量備份也可以增量備份,并提供了版本恢復(fù)機(jī)制。
缺點(diǎn)是:如果版本比較大,如版本數(shù)增長(zhǎng)到數(shù)萬(wàn)、數(shù)十萬(wàn),那么dump的過(guò)程將非常慢;備份耗時(shí),恢復(fù)更耗時(shí);不利于快速進(jìn)行災(zāi)難恢復(fù)。
個(gè)人建議在版本數(shù)比較小的情況下使用這種備份方式。
第二種svnadminhotcopy原設(shè)計(jì)目的估計(jì)不是用來(lái)備份的,只能進(jìn)行全量拷貝,不能進(jìn)行增量備份;
優(yōu)點(diǎn)是:備份過(guò)程較快,災(zāi)難恢復(fù)也很快;如果備份機(jī)上已經(jīng)搭建了svn服務(wù),甚至不需要恢復(fù),只需要進(jìn)行簡(jiǎn)單配置即可切換到備份庫(kù)上工作。
缺點(diǎn)是:比較耗費(fèi)硬盤,需要有較大的硬盤支持(俺的備份機(jī)有1TB空間,呵呵)。
第三種svnsync實(shí)際上是制作2個(gè)鏡像庫(kù),當(dāng)一個(gè)壞了的時(shí)候,可以迅速切換到另一個(gè)。不過(guò),必須svn1.4版本以上才支持這個(gè)功能。
優(yōu)點(diǎn)是:當(dāng)制作成2個(gè)鏡像庫(kù)的時(shí)候起到雙機(jī)實(shí)時(shí)備份的作用;
缺點(diǎn)是:當(dāng)作為2個(gè)鏡像庫(kù)使用時(shí),沒(méi)辦法做到“想完全拋棄今天的修改恢復(fù)到昨晚的樣子”;而當(dāng)作為普通備份機(jī)制每日備份時(shí),操作又較前2種方法麻煩。
Visual Subversion備份的命令
全備份:使用svnadmindump或svnadminhotcopy或svnsync來(lái)做,hotcopy:svnadminhotcopypath/to/repositorypath/to/backup–clean-logs
dump:svnadmindump版本庫(kù)路徑及名稱–revision導(dǎo)出的版本號(hào)>導(dǎo)出的命名
增量備份:使用svnadmindump的–incremental選項(xiàng)來(lái)實(shí)現(xiàn)
svnadmindump版本庫(kù)路徑及名稱–revision上次導(dǎo)出的版本號(hào):到本次要導(dǎo)出到的版本號(hào)–incremental>導(dǎo)出的命名
一個(gè)技巧:如果你有一個(gè)較大的Subsersion版本庫(kù)而你又想用最少的空間來(lái)將它備份下來(lái),用這個(gè)命令(請(qǐng)將/repo替換成你的版本庫(kù)路徑)吧:
svnadmindump–deltas/repo|bzip2|teedump.bz2|md5sum>dump.md5
分步解釋:最重要的一步是-deltas,將消耗更多的CPU資源,但擁有更有效的差異存儲(chǔ)辦法。
bzip2壓縮方案比gzip慢,但換來(lái)的更好的壓縮率。
更有趣的是,tee方法將壓縮的數(shù)據(jù)流轉(zhuǎn)向到文件dump.bz2,同時(shí)將其輸出到標(biāo)準(zhǔn)輸出,后者有轉(zhuǎn)向給了MD5摘要計(jì)算工具。
Visual Subversion還原命令
還原版本:svnadminload要恢復(fù)的版本庫(kù)路徑及名稱<導(dǎo)出的命名
svnadminhotcopypath/to/repositorypath/to/backup–clean-logs
我的svn是搭建在windows上的,用visualsvn挺方便,參考網(wǎng)上的bat備份svn的命令,我寫了一個(gè)備份和還原全部版本庫(kù)的bat腳本,備份,需要把腳本放在版本庫(kù)根目錄下運(yùn)行,例如dumpall.bat,不指定參數(shù)則備份到當(dāng)前目錄下,否則備份到指定目錄。
【編輯推薦】
- 深入剖析:Subversion1.5.5和Apache2.2.9在Windows下的完美結(jié)合
- Subversion和TortoiseSVN如何在Windows下進(jìn)行構(gòu)建SVN版本控制
- 在Linux下subversion和apache安裝配置
- 術(shù)語(yǔ)匯編:簡(jiǎn)單剖析Subversion Eclipse
- 面向 Subversion 用戶的 Git入門指南

















