公司給我新換了一台開發服務器,破舊的原始服務器就不打算用了。裝好了各種開發環境和數據庫后,從昨天開始就研究了一下TFS遷移的問題。經歷了一整天的各式各樣的錯誤之后,今天上午終於完成了遷移。
網上相關的資料太少了,能夠給出的步驟也不夠詳細,基本上一半參照網上的資料,一半自己捅咕。
現在說一下我的步驟(錯誤的步驟暫時不計,下邊會說到)。
首先,在新環境下安裝SQL Server 2008(全部功能),然后配置報表服務器:服務賬戶為管理員用戶,管理員密碼,應用;web服務URL默認,應用;數據庫更改,創建新的報表服務器數據庫(如果源服務器也配置過報表服務器,那么就把原服務器上的ReportServer,ReportServerTempDB這兩個庫分離出來,附加到新服務器上,然后選擇現有報表服務器數據庫),一路默認下一步,最后全部完成的時候,報表服務器配置完畢。
第二步,配置新服務器的TFS2010(高級配置向導),詳細配置方法百度有的是。這里要注意一個問題:如果還想使用原來的項目集合,那么在“項目集合”這一步的時候,可以勾掉“創建新的團隊項目集合”這一選項。其他的參照網上的說明。代理配置和生成配置都要配。如果為了方便,所有的賬戶均可以使用服務器管理員帳號和密碼。
第三歩,打開原服務器上的Team Foundation 管理控制台,選擇應用層的“團隊項目集合”,然后在常規里邊分離集合,忽略所有警告。分離完畢后去SQL Server Management Studio里邊分離團隊項目集合對應的數據庫。這個數據庫一般是“Tfs_團隊項目集合名稱”這樣的命名規范,只分離這個庫就可以了。
第四歩,復制這個數據庫到新服務器上,附加。然后分別執行以下命令(來自網絡):
tfsservicecontrol quiesce (這個是停止TFS服務)
TFSConfig PrepSQL /SQLInstance:你的SQL Server實例名 (這一步是准備實例)
TFSConfig Accounts /ResetOwner /SQLInstance:你的SQL Server實例名 /DatabaseName:TFS_Configuration (這一步是配置數據庫所有者)
TfsConfig Accounts /add /AccountType:ApplicationTier /account:"賬戶名稱,我用的管理員administrator" /SQLInstance:你的SQL Server實例名 /DatabaseName:TFS_Configuration (這一步是向數據庫中添加賬戶)
TfsConfig registerDB /SQLInstance:你的SQL Server實例名 /DatabaseName:TFS_Configuration (這一步是驗證並更新數據庫,執行完畢后,自動開啟TFS服務)
第五步,打開新服務器上的Team Foundation 管理控制台,選擇應用層的“團隊項目集合”,然后附加集合,在彈出窗口中點擊“列出可用數據庫”,就會發現下邊列表中已經有了剛剛轉移過來的集合數據庫,一路默認下一步,驗證完畢后執行就可以了,可能會出現幾個警告,大致就是報表服務器的敬告,可以暫時忽略。
第六歩,打開新服務器上的Team Foundation 管理控制台,選擇應用層,右側會有一些信息,點擊“應用層摘要”的“重新應用賬戶”,走條,完畢,結束。“管理控制台用戶”右側的“重新應用”,也可以點一下。之后就是配置“組成員資格”了。在配置組成員資格之前,要保證新服務器上的tfs相關的用戶和原服務器一致(如果沒有,可以在計算機管理中添加)
至此,TFS2010的遷移工作基本完成。
以下為天殺的注意事項:
以上步驟僅適用於新舊服務器的機器名相同,TFS及SQL版本相同的情況。由於都在一個網絡中,新服務器起名字基本上不會和原服務器重名,那么以下步驟就是針對新舊服務器不同名的情況。
注:以下步驟都是在新服務器上進行操作。
打開庫:ReportServer
更新表:ExecutionLogStorage
更新字段:InstanceName,把所有數據都改成:新服務器數據庫實例名\SQL服務名,可以對比以前的數據,修改實例名就可以。
更新字段:UserName,把所有數據都改成:新服務器機器名\賬戶名
更新表:Keys
更新字段:MachineName,改為新服務器機器名
更新表:Users
更新字段:UserName,怎么更新你懂的。。。
打開你項目集合的那個庫:這個數據庫一般是“Tfs_團隊項目集合名稱”這樣的命名規范
打開表:tbl_BuildServiceHost 修改字段:BaseUrl 最前邊的那段改成新服務器的機器名。
打開表:tbl_Command 修改字段:IdentityName 前邊那段改成新服務器的機器名
打開表:tbl_WorkspaceMapping 修改字段:WorkspaceName,Computer 找到對應原服務器的工作區名和計算機名(如果有的話),改為新服務器的機器名
完成以上表數據的修改后,重復第六歩即可。
至此TFS2010的遷移工作已經全部完成了。我試了一下,可以用,以前的變更集都沒有問題。小興奮了一下。
以下是我遇到過的問題:
1.做到第五歩的時候,點擊列出可用服務器列表提示沒有可選的數據庫。這是因為我在原服務器上沒有通過Team Foundation 管理控制台正確分離項目集合,而是直接從數據庫中分離項目集合數據庫。這樣做可能出現以上情況。
2.訪問TFS web的時候出現503,網上找的原因都是修改了tfs賬戶的密碼導致的。而我的原因是對應的應用程序池停止了,重新運行就好了。
3.網上說可以通過Team Foundation 管理控制台的應用層專用設置來導入從前的團隊項目,我試了,不好使,可能是因為機器名不同,按照上邊改數據的步驟應該可以。
4.端口沖突的問題,一般sql報表服務器就用默認的80,tfs就用默認的8080,代理服務器8081,一般沒什么問題。