VisualSVN伺服器遷移

2021-09-25 07:41:33 字數 2396 閱讀 6460

同事安排我將舊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 其...