將資料還原至相同的位置

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. 如果您的部署使用這些資源,請使用 [帳戶] 命令來新增報表伺服器的數據源帳戶和 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 時所指定之 Internet Information Services (IIS) 的虛擬目錄。 根據預設,此目錄的名稱為 tfs

    WarehouseControlWebService 頁面隨即開啟。

    注意

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

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

    重要

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

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

    瀏覽器視窗隨即開啟。 當服務成功開始處理 Cube 時會傳回 True ;如果 Cube 未成功或目前正在處理 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 集合成員的專案重新整理版本控制快取,該集合裝載於 fabrikamPrime 部署中 Azure DevOps Server:

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

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