subversion在1.4版之後提供同步備份的功能。除了可以在本機運作(不過我自己測試在2003的系統底下無法成功初始化),也可以透過網路來進行,所以可以在不同的平台下同步,使用上也頗為方便。操作的方式如下
建立一鏡像repository資料庫,接著對原始repository資料庫做初始化。

svnsync init svn://localhost/repo01bak svn://192.168.2.2/repo01
                    鏡像資料庫                      原始資料庫

鏡像資料庫的位置設定可以根據需求而改變,也可以設定在本機資料夾內如file:///d:/repo01bak,
不過本機設定我自己在windows2003下是無法成功運作就是了,windows xp 沒有問題linux就沒測了。

初始化的目的在於將鏡像資料庫建立revision 0,程序完畢之後,
就可以開始將原始資料庫的資料搬移到鏡像資料庫,

svnsync sync svn://localhost/repo01bak

實際上這樣的操作還是需透過手動來處理,所以這時候就得設定hooks腳本。

鏡像資料庫hooks腳本的設定
在windows系統底下,建立一個
pre-revporp-change.bat的批次檔
不需要做任何的編輯,只要擺個空檔案就可以了

接著在原始資料庫的hooks設定post-commit.bat
這裡必須設定好同步的對象,如果鏡像資料庫有設定使用者認證的機制,記得寫入使用者的帳號以及密碼。如下

@echo off
svnsync sync --non-interactive svn://192.168.2.3/repo01bak
--username user --password XXX

透過這樣的處理,只要每次更新版本庫,就會自動送一份到鏡像的版本庫裡。

參考資料:
SVN檔案庫備份及同步
subversion備份
創作者介紹

認真打雜好青年日誌

kennyp 發表在 痞客邦 PIXNET 留言(0) 人氣()