共用方式為


將 Azure DevOps 內部部署的一個硬體移動或複製到另一個硬體

Azure DevOps Server 2022 |Azure DevOps Server 2020 |Azure DevOps Server 2019

您可以移動或複製 Azure DevOps Server 軟體的部署。 您可以將 Azure DevOps Server 從一部電腦移至另一部計算機,方法是將它還原到新的硬體(稱為還原型移動)。 例如,您可能想要將 Azure DevOps Server 移至容量較大的伺服器,或改善處理速度。 當您移至新的伺服器時,不會遺失任何專案歷程記錄。

若要複製您的 Azure DevOps Server 部署,您可以執行與行動相同的步驟,加上一些額外的步驟。

當您打算停止使用原始硬體和 Azure DevOps Server 部署時,您會執行移動。 當您想要繼續使用原始的 Azure DevOps Server 實例時,您會執行複製。

重要

在某些情況下,您可能想要變更 Azure DevOps Server 部署的網域及其硬體。 變更網域是以環境為基礎的移動,而且您不應該合併這兩種行動類型。 請先完成硬體移動,然後變更環境。

檢查您的權限

若要成功移動 Azure DevOps Server,您必須是這兩組硬體的系統管理員(舊版和新硬體)。 此外,您必須是 Azure DevOps Server 的系統管理員(或具有對等許可權),以及部署相依的所有軟體:SQL Server、報告,以及部署互操作的任何其他軟體,例如 Project Server。

請確定您是下列群組的成員:

  • 伺服器:系統管理員(本機系統管理員群組或對等專案)
  • Azure DevOps Server:Team Foundation 系統管理員和管理控制台使用者
  • SQL Server:sysadmin

如果您不是其中一或多個群組的成員, 請立即取得許可權。

備份資料庫和加密金鑰

  1. 開啟 Azure DevOps Server 的管理控制台,然後在 [ 排程備份 ] 頁面上,進行完整備份。 備份會備份您在備份計劃中設定的所有備份,但會立即進行備份,而不是根據計劃中排程的時間而定。 如果您的部署使用報告,您可以將加密金鑰備份為此備份集的一部分。

    您可以在作業完成時關閉視窗

    (如果您沒有設定備份,您必須先 建立計劃 ,才能進行完整備份。

  2. 備份完成後,請確認備份可在儲存設備或網路共用上使用,而且您可以從新的硬體存取此備份。

在新的數據層伺服器上安裝和設定 SQL Server

  • 在新伺服器上安裝 SQL Server,並確定其運作正常。 如果您先前的部署使用報告,請確定您包含報告和分析服務元件。 您必須安裝先前使用的相同版本和版本,包括 Service Pack 和累積更新層級。

    安裝 SQL Server 2008 R2 - 功能

    或者,您可以在已安裝相符版本的伺服器上建立 SQL Server 實例,並將 Azure DevOps Server 資料庫還原至該實例,但需要更多還原後設定。

    如需安裝和設定 SQL Server 選項的詳細資訊, 請前往這裡

    安裝 SQL Server 之後,如果您的部署包含報告,請開啟 SQL Server Management Studio 並中斷連結 ReportServer 和 ReportServerTempDB 資料庫。 否則,您可能無法使用您為 Azure DevOps Server 資料庫建立的備份來還原這些資料庫。

    在還原之前,必須先卸離現有的資料庫

在新應用層伺服器上安裝和設定軟體

若要為 Azure DevOps Server 設定新的伺服器或伺服器,您必須先安裝並設定支援它所需的軟體。 此軟體包含下列元件:

  • 部署組態支援的作業系統

  • 安裝及設定 Windows、IIS(如果未預設設定),並確定伺服器及其軟體正常運作。 

    如需詳細資訊,請參閱 Azure DevOps Server 的系統需求。

還原 Azure DevOps Server 資料庫

若要使用還原工具來還原 Azure DevOps Server 資料庫,您必須在新的數據層伺服器上安裝但未設定 Azure DevOps Server,然後在 [排程備份] 節點中使用還原功能。

如果您想要使用 SQL Server 還原工具來手動還原 Azure DevOps Server 資料庫,則可以,但這是較困難的程式。 此外,您必須在新的部署中手動取消資料庫。 Azure DevOps Server 中的還原精靈會自動為您執行此動作,做為其還原程式的一部分,但該功能不是 SQL Server 還原工具的一部分。

  1. 啟動 Azure DevOps Server 安裝媒體。 在 [ Team Foundation Server 安裝程式 ] 頁面上,選擇 [ 安裝]。

  2. 安裝完成時, Team Foundation Server 組態中心 隨即開啟。 關閉它。

    管理主控台會自動以未設定的狀態開啟。 這是 預期行為 。

  3. 若要啟動還原精靈,請開啟 Azure DevOps Server 的管理控制台,然後開啟 [排程備份]。

    啟動還原精靈

  4. 指定備份集的路徑,然後選擇您在停止舊部署之後建立的集合。

    選擇網路路徑,然後選擇還原集

  5. 完成精靈,並將資料庫還原至 SQL Server 的新實例。

    資料庫會還原至新的伺服器

(複製選項)重新設定伺服器識別碼和重新對應資料庫

注意

PrepareClone 在建立新的 Azure DevOps Server 部署之前,會先建議使用已在另一部伺服器上生產環境的資料庫備份來建立新的 Azure DevOps Server 部署。 不再需要此命令,因為我們已將其功能併入設定精靈中的生產前升級和複製案例。

如果您想要繼續使用原始的 Azure DevOps Server 實例,請在新的應用層伺服器上執行下一組步驟。 這些步驟是必要的,以避免一或兩個部署損毀的風險。 如果這兩部伺服器都處於實時狀態,您最終可能會損毀,特別是當它們指向相同的報告資源時。

  1. 以系統管理員身分開啟命令提示字元視窗,並將目錄變更為 Drive:%programfiles%\TFS 12.0\Tools。 開啟 [命令提示字元] 視窗,然後輸入:

  2. 執行 TFSConfig PrepareClone 命令來移除排程備份和報告資源的相關信息。

    TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:DatabaseName /notificationURL: ApplicationTierURL
    
  3. 執行 TFSConfig ChangeServerID 命令來變更與資料庫相關聯的伺服器 GUID。 GUID 在 Azure DevOps Server 部署中必須是唯一的。

    TFSConfig ChangeServerID /SQLInstance:ServerName] /DatabaseName:ConfigurationDatabaseName [/ProjectCollectionsOnly] [/ConfigDBOnly] [/usesqlalwayson]
    
  4. 執行 TFSConfig RemapDBs 命令,將複製的 Azure DevOps Server 重新導向至其資料庫。

    TFSConfig RemapDBs /DatabaseName:ServerName;DatabaseName /SQLInstances:ServerName1,erverName2 [/AnalysisInstance:ServerName] [/AnalysisDatabaseName:DatabaseName] [/review] [/continue] [/usesqlalwayson]
    

設定應用層伺服器

  1. 從 Azure DevOps Server 的管理控制台中,選擇 [設定已安裝的功能] 以啟動組態中心。

  2. 啟動 [僅限應用層] 精靈,並在 [資料庫] 中指定您還原 Azure DevOps Server 資料庫的新 SQL Server 實例。 從清單中選擇Tfs_Configuration資料庫。

    選取 SQL Server 和資料庫備份集

  3. 在您關閉精靈的最後一頁之前,請先尋找 「i」 符號。 這表示您可能想要未來參考的資訊。 最後一頁也包含組態記錄檔的位置。

    請注意任何問題和記錄檔位置

更新 Azure DevOps Server URL

  1. 移至應用層節點,並查看通知和入口網站 URL。 請注意,它們仍然指向舊部署的位置。 更新它們。

    通知和 Web URL 已過期

  2. 使用新伺服器名稱更新 URL 之後,請檢閱資訊以確定正確無誤。

    伺服器 URL 仍然使用localhost

更新所有服務帳戶

您必須更新 Azure DevOps Server (TFSService) 和數據源帳戶 (TFSReports) 的服務帳戶。 即使這些帳戶尚未變更,您也必須更新資訊,以協助確保帳戶的身分識別和格式適用於新伺服器。

  1. 以系統管理員身分開啟命令提示字元視窗,並將目錄變更為 Drive:\%programfiles%\TFS 12.0\Tools。

  2. 在命令提示字元中,輸入下列命令以新增 Azure DevOps 的服務帳戶,其中 DatabaseName 是組態資料庫的名稱(預設為TFS_Configuration):

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

  3. 在命令提示字元中,輸入下列命令以新增資料源帳戶:

    TfsConfig 帳戶 /add /AccountType:ReportingDataSource /account: AccountName /SQLInstance:ServerName /DatabaseName:DatabaseName

    如需詳細資訊,請參閱 Accounts Command

更新組建伺服器

現在,您必須將組建伺服器重新導向,以指向已移動的 Azure DevOps Server 部署。

  1. 在每個組建伺服器上,開啟管理控制台並停止建置服務。

  2. 在建置服務的屬性中,更新通訊屬性。

    停止服務,然後進行變更

設定 Reporting and Analysis Services

如果您的部署使用報表伺服器,您必須將 Azure DevOps Server 重新導向至其位置、重新啟動倉儲,然後手動重建 Analysis Services 的資料庫。 如果您未使用報告,請略過此程式。

  1. 移至 [報告] 節點。 列出的報表伺服器值是舊的報表伺服器值,而不是新的值,因此請加以編輯。

    報表仍指向舊伺服器

  2. 變更這三個索引標籤上的值,以指向新的伺服器。 請確定您在新的部署中提供數據源帳戶的正確資訊。

    請確定所有 3 個索引標籤上的資訊正確無誤

  3. 選擇 [ 啟動作業 ] 以重新啟動報告。

  4. 選擇 [ 開始重建 ] 以重建倉儲。

驗證使用者、群組和服務帳戶的許可權

移至新硬體之後,請確定您部署的所有使用者、群組和服務帳戶都已設定為在每部伺服器上正確運作所需的許可權。 某些許可權,例如 SQL Server 或本機電腦上的其他許可權,無法自動移轉。 例如,Azure DevOps 系統管理員必須是應用層伺服器上本機 Administrators 群組的成員,才能開啟管理控制台,因此您必須手動將它們新增至該群組。

  • 登入伺服器,並確定使用者、群組和服務帳戶已設定作業所需的許可權。 手動檢查專案群組和小組的成員資格,並確認這些群組和小組具有您預期的許可權。

  • 流覽至專案集合,並確定該集合中的所有專案都如預期般顯示,且這些專案中的使用者可以適當地存取其工作專案。

  • 開啟入口網站,並確認小組網站和小組是否如預期般顯示。

不確定預期哪些群組和許可權? 如需詳細資訊,請參閱將使用者新增至專案設定專案集合的系統管理員許可權、設定 Azure DevOps Server 的系統管理員許可權,以及 Azure DevOps Server 中的服務帳戶和服務帳戶和相依性。

重新整理用戶端計算機上的數據快取

  • 登入伺服器,並使用 ClientService Web 服務強制用戶端更新快取以追蹤工作專案和 Azure DevOps 版本控制。

    http://ServerName:8080/tfs/WorkItemTracking/v3.0/ClientService.asmx
    

    如需詳細資訊,請參閱 重新整理用戶端計算機上的數據快取。

    如果您想要在下次登入時重新整理所有用戶的整個快取,請使用 witadmin rebuildcache 命令。

    注意

    如果您將資料庫還原到不同的時間點,您也必須重新整理版本控制快取,如客戶端電腦上的重新整理數據快取中所述

通知使用者

既然您已移動 Azure DevOps Server,您必須告訴使用者如何連線到已移動的部署。 具體來說,您必須提供下列資訊:

  • 新伺服器的名稱和入口網站的 URL,讓他們可以重新連線到其專案

  • 如果報告是部署的一部分,則報告的新資料庫名稱

  • 如果他們是使用 Git 的項目成員,則說明如何針對該專案的每個存放庫在本機更新每個復本。 具體來說,他們必須針對每個複製品執行下列命令:

    git remote set-url <remote name> <new URL>
    

    使用者可以從 [總管] 索引標籤瀏覽專案,以查看每個複製的URL為何。

    複製 URL 以手動複製 中的存放庫

設定備份

雖然您有針對舊部署排程的備份,但這些排程備份不會變更為備份已移動的部署。 您必須設定它們。

  • 在管理控制台中,移至 [排程備份] 節點,然後重新設定排程備份,以在新伺服器上備份 Azure DevOps Server 資料庫。 如需詳細資訊,請參閱 建立備份排程和計劃

問與答

問:我想變更網域,而不是實體伺服器。 可以這麼做嗎?

A: 可以。 這稱為環境型移動,您可以在這裡找到這些步驟。 您不應該嘗試結合以環境為基礎的移動與硬體型移動。 請先完成硬體移動,然後變更環境。

問:我剛意識到,在移至新硬體之後,我想要繼續使用舊版 Azure DevOps Server。 可以這麼做嗎?

答: 是的,但請務必立即執行其他步驟。 在理想情況下,您應該已在移動或複製步驟中執行這些步驟。 這是避免一或兩個部署損毀風險的最佳方式。 如果這兩部伺服器都處於實時狀態,您最終可能會損毀,特別是當它們指向相同的報告資源時。

若要修正這個問題:

  1. 在新 伺服器上執行 TFSConfig PrepareClone 命令

  2. 在新伺服器上執行 TFSConfig ChangeServerID 命令

  3. 在新伺服器上執行 TFSConfig RemapDBs 命令

問:我有與 Project Server 整合的部署。 我是否需要執行任何額外的步驟,才能使用已移動的 Azure DevOps Server?

答:是,完成硬體移動之後,您必須使用 TFSAdmin ProjectServer /RegisterPWA 命令搭配 /tfs/force/pwa 選項,向 Project Server 重新註冊 Azure DevOps Server。 您可以在這裡深入瞭解 Azure DevOps Server 與 Project Server 的整合。