共用方式為


將數據還原至相同的位置

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

您可以將數據從備份還原至相同伺服器,以及備份該數據之 Azure DevOps 的 SQL Server 實例。 例如,您可能想要將一組損毀的資料庫還原到最後一個已知的良好狀態。

注意

如需 在 Azure DevOps Server 的相同伺服器上還原數據的簡介,請參閱備份和還原概念頁面

SharePoint 與 Azure DevOps Server 的整合已被 TFS 2017 和更新版本取代。

必要條件

若要執行此程式,您必須是下列群組的成員,或具有下列許可權:

  • 執行 Azure DevOps 管理控制台的伺服器或伺服器上的 Administrators 安全組成員
  • SQL Server 系統管理員安全組的成員,或 SQL Server 執行備份和建立維護計劃許可權,都必須在裝載資料庫的 SQL Server 實例上設定為 [允許]。
  • Azure DevOps 之資料庫實例的系統管理員安全組成員,以及倉儲資料庫的 Analysis Services 實例。
  • TFS_Warehouse資料庫的授權使用者。
  • TFSEXECROLE 資料庫角色的成員
  • 如果部署使用 SharePoint 產品,則為要還原 SharePoint 產品資料庫之伺服器陣列的 伺服器陣組管理員 群組成員。

如需詳細資訊,請參閱使用者帳戶控制

步驟 1:停止服務

停止服務有助於在還原程序期間防止數據遺失或損毀,特別是當您重新命名資料庫時。

  1. 在執行 Azure DevOps 應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Tools。

  2. 輸入下列命令:

    TFSServiceControl quiesce
    

    如需詳細資訊,請參閱 TFSServiceControl 命令

步驟 2:重新命名資料庫

您必須先將其脫機,然後重新命名,才能使用還原精靈還原 Azure DevOps Server 的資料庫。

停止資料庫

  1. 開啟 [SQL Server Management Studio] 。

    注意

    如需如何還原資料庫的詳細資訊,請參閱 實作 SQL Server 資料庫的還原案例。

    [連接到伺服器] 對話方塊隨即開啟。

  2. 在 [伺服器類型] 中,選取 [資料庫引擎]。

  3. 在 [ 伺服器名稱] 中,輸入或選取資料層伺服器和資料庫實例的名稱,然後選取 [ 連接]。

    注意

    如果 SQL Server 安裝在叢集上,伺服器名稱就是叢集的名稱,而不是計算機名稱。

    此時會開啟 SQL Server Management Studio。

  4. 展開 [ 資料庫] 節點以顯示組成 Azure DevOps 數據層的資料庫清單。

  5. 請遵循 SQL Server 版本的指引,重新命名並停止您想要還原的每個資料庫。 為資料庫指定名稱,指出它是您將取代為還原版本的舊版資料庫。 例如,您可以將TFS_DefaultCollection重新命名為 TFS_DefaultCollection_Old。

步驟 3:還原 Azure DevOps 資料庫

您可以使用 Azure DevOps Server 管理控制台中的還原精靈來還原 Azure DevOps Server 的數據。 還原精靈也會還原用於報告的加密金鑰。

還原資料庫

  1. 開啟 Azure DevOps Server 的管理控制台,流覽至 [排程備份],然後啟動 [ 還原資料庫精 靈]。

    啟動還原精靈

  2. 指定備份集的路徑,然後選取要用於還原的集合。

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

  3. 完成精靈並還原資料庫。

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

步驟 4:更新所有服務帳戶

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

更新服務帳戶

  1. 在執行 SQL Server Reporting Services 的伺服器上,開啟 [計算機管理],如果尚未啟動,請啟動下列元件:

    • ReportServer 或 ReportServer$InstanceName (應用程式集區)
    • SQL Server Reporting Services (TFSINSTANCE
  2. 在應用層伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Tools。

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

    TfsConfig 帳戶 /add /AccountType:ApplicationTier /account: AccountName

    如需詳細資訊,請參閱 Accounts 命令

  4. 如果您的部署使用這些資源,請使用 Accounts 命令來新增報表伺服器的數據源帳戶和 Azure DevOps Proxy 伺服器的 Proxy 帳戶。

步驟 5:重建數據倉儲

您可以重建數據倉儲,而不是還原TFS_Warehouse和TFS_Analysis資料庫。 如果您的部署包含大量數據,可能需要大量的時間來重建倉儲。 不過,此策略可協助確保所有數據都已正確同步處理。 當您重建倉儲時,Azure DevOps Server 會建立它的實例,然後您必須處理以使用作業存放區中的數據填入它。

注意

如果您在上一節中還原TFS_Warehouse和TFS_Analysis資料庫,就不需要執行下列程式。

重建倉儲

  1. 在執行 Azure DevOps 應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\\%programfiles%\\Azure DevOps Server 2019\\Tools

  2. 輸入下列命令:

    TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword: Password

    其中 Password 是 Reporting Services (TFSReports) 數據源帳戶的密碼。

  3. 等候命令完成。

  4. 在報表伺服器上,開啟 Internet Explorer,然後在網址列中輸入下列字串:

    http://localhost:8080/>VirtualDirectory/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx

    針對 VirtualDirectory,輸入安裝 Azure DevOps Server 時所指定 網際網路資訊服務 (IIS) 的虛擬目錄。 根據預設,此目錄的名稱為 tfs

    WarehouseControlWebService 頁面隨即開啟。

    注意

    Microsoft Azure DevOps Server 應用程式集區必須執行,倉儲控制Web服務才能使用。

  5. 選取 [GetProcessingStatus],然後選取 [ 叫用]。

    重要

    服務應該傳回所有作業的 Idle 值,表示 Cube 未處理。 如果傳回不同的值,請重複此步驟,直到 針對所有作業傳回Idle 為止。

  6. WarehouseControlWebService 頁面上,選取 [ProcessAnalysisDatabase],然後選取 [ 用]。

    瀏覽器視窗隨即開啟。 當服務成功開始處理 Cube 時會傳回 True;如果 Cube 未成功,則傳回 False;如果 Cube 目前正在處理中,則傳回 False

  7. 若要判斷 Cube 處理的時間,請返回 WarehouseControlWebService 頁面,選取 [GetProcessingStatus],然後選取 [ 用]。

    當 GetProcessingStatus 服務傳回所有作業的 Idle 值時,就會完成處理。

  8. 在 Azure DevOps 的應用層伺服器上,開啟 [計算機管理],然後啟動 Visual Studio Team Foundation Background Job Service。

步驟 6:清除應用層伺服器上的數據快取

Azure DevOps 部署中的每個應用層伺服器都會使用檔案快取,讓使用者可以從數據層伺服器快速下載檔。 當您還原部署時,應該清除每個應用層伺服器上的此快取。 否則,當使用者從版本控制下載檔時,不相符的檔案標識符可能會導致問題。 如果您的部署使用 Azure DevOps Proxy Server,您也必須清除設定為 Proxy 的每個伺服器上的數據快取。

注意

藉由清除數據快取,您可以協助防止在版本控制中下載不正確的檔案版本。 除非您將部署中的所有硬體取代為還原的一部分,否則您應該定期執行此動作。 如果您要取代所有硬體,您可以略過此程式。

清除數據快取

  1. 在執行 Azure DevOps 或使用 Azure DevOps Proxy Server 設定應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Application Tier\Web Services\_tfs_data。

  2. 刪除_tfs_data目錄中的所有專案。

  3. 針對部署中執行 Azure DevOps Proxy Server 的每個應用層伺服器和每部伺服器重複這些步驟。

步驟 7:重新啟動服務

還原數據之後,您必須重新啟動服務,才能將伺服器傳回作業狀態。

重新啟動服務

  1. 在執行 Azure DevOps 應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Tools。

  2. 輸入下列命令:

    TFSServiceControl unquiesce

如需詳細資訊,請參閱 TFSServiceControl 命令

步驟 8:重新整理用戶端電腦上的快取

重新整理快取以追蹤客戶端電腦上的工作專案

  1. 在新伺服器上,開啟 Internet Explorer。

  2. 在網址列中,輸入下列位址以連線到 ClientService Web 服務:

    http://PublicURL/VirtualDirectory:8080/WorkItemTracking/v3.0/ClientService.asmx

    注意

    即使您使用系統管理認證登入,您仍可能需要以系統管理員身分啟動 Internet Explorer,而且系統可能會提示您輸入認證。

  3. 選取 [StampWorkitemCache],然後選取 [ 叫用]。 StampWorkitemCache 方法不會傳回任何數據。

重新整理客戶端電腦上的版本控制快取

  1. 在用戶端電腦上,開啟具有系統管理許可權的命令提示字元視窗,並將目錄變更為 Drive:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE

  2. 在命令提示字元中,輸入下列命令,包括集合的 URL,其中包括伺服器名稱和新伺服器的埠號碼:

    tf workspaces /collection:http://ServerName:Port/VirtualDirectoryName/CollectionName

    在範例部署中,開發人員需要針對屬於 DefaultCollection 集合成員的專案重新整理版本控制快取,該集合裝載於 Azure DevOps Server 的 FabrikamPrime 部署中:

    tf workspaces /collection:http://FabrikamPrime:8080/tfs/DefaultCollection

    如需詳細資訊,請參閱 Workspaces 命令