2013年9月14日 星期六

Team Foundation Server 轉移

使用Team Foundation Server進行程式的版本控制十分常見,
但若突然想要轉移到其他伺服器又想保留所有紀錄時,
就會變得十分麻煩。
以下稍稍紀錄該注意的事項。
環境:
Windows Server 2012 
Microsoft SQL Server 2012
Microsoft Team Foundation Server 2012

1.在安裝好的Windows Server 安裝 .Net Framework 3.5 
Win Server 2012安裝MS SQL 2012 時,會遇到未安裝.Net Framework 3.5 導致無法完全安裝SQL 2012 ,安裝方法請參考[Windows Server] 在 Windows Server 2012 上安裝 .NET Framework 3.5 ,使用替代方案安裝.Net Framework 3.5

2.依序安裝MS SQL 2012 、TFS 2012
Ps.筆者在安裝MS SQL 2012 時,一直遇到The SQL Server license agreement cannot be located for the selected edition......的問題,結果好像是語系的關係。筆者所用的Windows Server 2012 雖是中文版,但調整呈現語系為英文,解決方法請參考Sql Server 2012 Installation 使用英文MSSQL 2012 安裝即可。

3.使用進階設定TFS 2012,讓新的TFS擁有自己的設定檔,並確定TFS已可使用;接著在TFS上移除功能。使得應用程式層的功能處於未設定。

轉移開始→

1.將舊SERVER 上TFS的SQL DATA轉移到新SERVER上(轉移時需中止MSSQL),包含ReportServer(log)、ReportServerTempDB(log)、Tfs_Configuration(log)、Tfs_Warehouse(log)以及所有Collection(log)。

2.啟動新SQL SERVER,此時除了ReportServer(log)、ReportServerTempDB(log)、Tfs_Configuration(log)、Tfs_Warehouse(log)外,其他的Collection的db需要手動附加。

3.啟動新TFS,此時會發現所有的設定都掛了,此時關閉TFS,使用工作管理員開啟cmd並移至TFS安裝目錄下(ex. cd C:\Program Files\Microsoft Team Foundation Server 11.0\Tools\)

4.將 Team Foundation Server 重新導新的資料庫:在cmd 下輸入
TFSConfig RemapDBs /DatabaseName: ServerName ; TFS_Configuration /SQLInstances: ServerName /AnalysisInstance: ServerName /AnalysisDatabaseName: DatabaseName /preview

此時,ServerName為該SQL SERVER的名稱;DatabaseName為Tfs_Analysis(如果沒有特別更動)


ex.TFSConfig RemapDBs /DatabaseName:ARCH-TFS;TFS_Configuration /SQLInstances:ARCH-TFS /AnalysisInstance:ARCH-TFS /AnalysisDatabaseName:Tfs_Analysis /preview
ps.要小心命令列的空格,":"後不要有空格。"/"前要有空格

5.變更已還原資料庫的擁有權:在cmd 下輸入
TFSConfig Accounts /ResetOwner /SQLInstance: ServerName /DatabaseName: DatabaseName

ex.TFSConfig Accounts /ResetOwner /SQLInstance:ARCH-TFS /DatabaseName:Tfs_Configuration

6.更新所有服務帳戶:在cmd 下輸入
TfsConfig Accounts /add /AccountType:ApplicationTier /account: AccountName /SQLInstance: ServerName /DatabaseName: DatabaseName

ex.TFSConfig Accounts /add /AccountType:ApplicationTier /account:TFS /SQLInstance:ARCH-TFS /DatabaseName:TFS_Configuration

TfsConfig Accounts /add /AccountType:ReportingDataSource /account: AccountName /SQLInstance: ServerName /DatabaseName: DatabaseName

ex.TfsConfig Accounts /add /AccountType:ReportingDataSource /account:TFS /SQLInstance:ARCH-TFS /DatabaseName:Tfs_Configuration

7.安裝新的應用程式層。
在 [僅限應用程式層] 精靈的 [SQL Server 執行個體] 頁面上,輸入伺服器的名稱以及您還原組態資料庫的 SQL Server 執行個體名稱。

8.更新應用程式層伺服器的 URL

9.設定 Reporting and Analysis Services

10.接著就是設定權限而已。完成!!!!!!!


PS.如我有遇到The report server installation is not initialized. 請參考:The report server installation is not initialized. 
解法:
1. Create a new report server catalog, or

2. Go to your report server catalog database, open the Keys table, and delete the row where your computer name is specified. The restart the server.

刪掉這筆資料即可。

我搞了兩天~~~~XD