同事安排我將舊svn伺服器的內容遷移到新svn伺服器。
他只要求有最後一版就行,我想將舊svn提交的歷史記錄也遷移過來。
查了,用svn命令列匯入匯出挺方便的,整個指令碼讓svn自己幹活就行。
將 visualsvn安裝後的bin目錄加入path
執行下列指令碼,從svn匯出dump檔案
@echo off
svnadmin dump "d:\repositories\prj1" > d:\svn_bk_by_ls\oldsvn_prj1.dump
svnadmin dump "d:\repositories\prj2" > d:\svn_bk_by_ls\oldsvn_prj2.dump
rem ...
rem svnadmin dump "d:\repositories\prjn" > d:\svn_bk_by_ls\oldsvn_prjn.dump
echo "svn backup end ..."
pause
在新舊svn伺服器上都裝上飛鴿傳書
將dump檔案用飛鴿傳書從舊svn伺服器傳到新svn伺服器
飛鴿傳書(5.0.12.31,5.0.12.31)在win10下有bug, 裝了飛鴿後,在桌面或資料夾下,不選擇任何目標,右擊時,windows桌面重啟。
在win10下,用完飛鴿就得卸了,挺尷尬的。
如果舊伺服器自動關機了,檔案沒傳完。不能用飛秋斷點續傳的功能,要重新傳輸曾經被中斷的檔案。
否則檔案內容不正確。這是飛鴿的bug了。
乙個庫40g的dump檔案,內容傳的不正確,用svn匯入了半天不對。挺背的。
重新用飛秋傳了一次,導入庫最後也失敗了。顯示 svnadmin: e200003: premature end of content data in dumpstream
匯入時間太長了,沒有時間再找個工具重新傳送到新伺服器,再匯入一遍了。匯入用了4個小時。
雖然最後乙個大庫匯入失敗,但是用svn日誌看,還是正常的。只是倒入了一部分而已。
終於明白為啥那個大庫匯入失敗了。
因為匯出就失敗了,開始沒注意看。
舊sn伺服器是winserver2003_win32, 已經配了visualsvn-server-2.7.14, 這是最後乙個支援winserver2003的版本。
用命令匯出庫的dump檔案,一定是失敗的。應該是和作業系統(winserver2003_x86)有關係, 可能os就不支援建立那麼大(60gb)的檔案. 和飛秋和visualsvn-server沒關係。
那只能將庫直接拷貝(分卷壓縮)到新伺服器,然後直接導入庫看看。
那個庫幹活很多,還是再確認一下,哪齣了問題。
庫大小40.3 gb (43,298,436,135 位元組),找個md5工具。看到從舊伺服器匯出的dump檔案的md5和傳輸到新伺服器的dump檔案的md5不同。這下放心了,這只是飛鴿的bug, 可能傳送大檔案有bug而已。
// 我不確定,因為發現找的md5工具(winmd5 1.2, 超大檔案時,計算過程有誤,估計是檔案讀寫失敗情況處理不當或檔案size那不是64位的長度)有bug, 另外又找了乙個md5(hash_v1.04 對超大檔案支援的好)的工具,重新算過,md5相同(但是這個md5是分卷壓縮700mb後,傳過來的)。
// 現在嘗試用md5分卷壓縮後的dump檔案進行匯入。
// 另外又從舊svn中再dump乙份庫出來,再算一下md5, 看看是否和上次匯出的dump檔案的md5相同。
出bug時,各種驗證…
現在可以將這個大庫分卷壓縮成小檔案(<= 2gb)或用共享資料夾的方式拷貝到新伺服器。
將 visualsvn安裝後的bin目錄加入path
用visualsvn server manager在新伺服器上手工建立要匯入的空庫(e.g. prj1 prj2 … prjn), 如果不建立空庫,匯入dump會失敗
執行下列指令碼,將dump檔案匯入svn
@echo off
svnadmin load e:\repositories\oldsvn_prj1 < d:\feigedownload\oldsvn_prj1.dump
svnadmin load e:\repositories\oldsvn_prj2 < d:\feigedownload\oldsvn_prj2.dump
rem ...
svnadmin load e:\repositories\oldsvn_prjn < d:\feigedownload\oldsvn_prjn.dump
echo "svn restore end ..."
pause
看著匯入的過程挺正常的,不過svn很大,等著匯入完成。再用visualsvn server manager看看是否匯入成功。
在客戶端用tortoisesvn看歷史記錄,能看到11年時的提交,說明匯入成功。
VisualSVN遷移到其他伺服器
要將visualsvn遷移到其他的伺服器,步驟如下 1 將以前的版本庫檔案即repositories資料夾拷貝到新電腦。2 開啟visualsvn server的控制台,在右側的控制面板中選擇repositories下的 import existing repository 3 指定自己的庫的位置,...
用VisualSVN建立SVN伺服器
發帖介紹過svn,但是我建立svn伺服器,我覺得這個帖子最好。svn已經不容質疑的成為了一款流行的 控制工具,但是你是否還在為配置它伺服器側而苦惱呢?你是否每次安裝伺服器時還要去安裝apache以及進行配置呢?你是否還在為那命令列的使用者建立及許可權控制而鬱悶呢?visualsvn解決了以上你所面對...
SSAS伺服器遷移
伺服器遷移後,原有analysis services專案部署失敗。1 出現以下系統錯誤 帳戶名與安全標識間無任何對映完成。原有專案中建立的角色包括部分賬戶不存在,刪除後重新生成 2 建立iis虛擬目錄 配置 對映 應用程式擴充套件 新增 ssas配置目錄 msmdpump.dll,副檔名.dll 其...