將數據還原至相同的位置
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:停止服務
停止服務有助於在還原程序期間防止數據遺失或損毀,特別是當您重新命名資料庫時。
在執行 Azure DevOps 應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Tools。
輸入下列命令:
TFSServiceControl quiesce
如需詳細資訊,請參閱 TFSServiceControl 命令。
步驟 2:重新命名資料庫
您必須先將其脫機,然後重新命名,才能使用還原精靈還原 Azure DevOps Server 的資料庫。
停止資料庫
開啟 [SQL Server Management Studio] 。
注意
如需如何還原資料庫的詳細資訊,請參閱 實作 SQL Server 資料庫的還原案例。
[連接到伺服器] 對話方塊隨即開啟。
在 [伺服器類型] 中,選取 [資料庫引擎]。
在 [ 伺服器名稱] 中,輸入或選取資料層伺服器和資料庫實例的名稱,然後選取 [ 連接]。
注意
如果 SQL Server 安裝在叢集上,伺服器名稱就是叢集的名稱,而不是計算機名稱。
此時會開啟 SQL Server Management Studio。
展開 [ 資料庫] 節點以顯示組成 Azure DevOps 數據層的資料庫清單。
請遵循 SQL Server 版本的指引,重新命名並停止您想要還原的每個資料庫。 為資料庫指定名稱,指出它是您將取代為還原版本的舊版資料庫。 例如,您可以將TFS_DefaultCollection重新命名為 TFS_DefaultCollection_Old。
步驟 3:還原 Azure DevOps 資料庫
您可以使用 Azure DevOps Server 管理控制台中的還原精靈來還原 Azure DevOps Server 的數據。 還原精靈也會還原用於報告的加密金鑰。
還原資料庫
開啟 Azure DevOps Server 的管理控制台,流覽至 [排程備份],然後啟動 [ 還原資料庫精 靈]。
指定備份集的路徑,然後選取要用於還原的集合。
完成精靈並還原資料庫。
步驟 4:更新所有服務帳戶
您必須更新 Azure DevOps Server (TFSService) 和數據源帳戶 (TFSReports) 的服務帳戶。 即使這些帳戶尚未變更,您也必須更新資訊,以確保帳戶的身分識別和格式適當。
更新服務帳戶
在執行 SQL Server Reporting Services 的伺服器上,開啟 [計算機管理],如果尚未啟動,請啟動下列元件:
- ReportServer 或 ReportServer$InstanceName (應用程式集區)
- SQL Server Reporting Services (TFSINSTANCE)
在應用層伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Tools。
在命令提示字元中,輸入下列命令以新增 Azure DevOps 的服務帳戶,其中 DatabaseName 是組態資料庫的名稱(預設為TFS_Configuration):
TfsConfig 帳戶 /add /AccountType:ApplicationTier /account: AccountName
如需詳細資訊,請參閱 Accounts 命令。
如果您的部署使用這些資源,請使用 Accounts 命令來新增報表伺服器的數據源帳戶和 Azure DevOps Proxy 伺服器的 Proxy 帳戶。
步驟 5:重建數據倉儲
您可以重建數據倉儲,而不是還原TFS_Warehouse和TFS_Analysis資料庫。 如果您的部署包含大量數據,可能需要大量的時間來重建倉儲。 不過,此策略可協助確保所有數據都已正確同步處理。 當您重建倉儲時,Azure DevOps Server 會建立它的實例,然後您必須處理以使用作業存放區中的數據填入它。
注意
如果您在上一節中還原TFS_Warehouse和TFS_Analysis資料庫,就不需要執行下列程式。
重建倉儲
在執行 Azure DevOps 應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為
Drive:\\%programfiles%\\Azure DevOps Server 2019\\Tools
。輸入下列命令:
TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword: Password
其中 Password 是 Reporting Services (TFSReports) 數據源帳戶的密碼。
等候命令完成。
在報表伺服器上,開啟 Internet Explorer,然後在網址列中輸入下列字串:
http://localhost:8080/>VirtualDirectory/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
針對 VirtualDirectory,輸入安裝 Azure DevOps Server 時所指定 網際網路資訊服務 (IIS) 的虛擬目錄。 根據預設,此目錄的名稱為 tfs。
WarehouseControlWebService 頁面隨即開啟。
注意
Microsoft Azure DevOps Server 應用程式集區必須執行,倉儲控制Web服務才能使用。
選取 [GetProcessingStatus],然後選取 [ 叫用]。
重要
服務應該傳回所有作業的 Idle 值,表示 Cube 未處理。 如果傳回不同的值,請重複此步驟,直到 針對所有作業傳回Idle 為止。
在 WarehouseControlWebService 頁面上,選取 [ProcessAnalysisDatabase],然後選取 [ 叫用]。
瀏覽器視窗隨即開啟。 當服務成功開始處理 Cube 時會傳回 True;如果 Cube 未成功,則傳回 False;如果 Cube 目前正在處理中,則傳回 False。
若要判斷 Cube 處理的時間,請返回 WarehouseControlWebService 頁面,選取 [GetProcessingStatus],然後選取 [ 叫用]。
當 GetProcessingStatus 服務傳回所有作業的 Idle 值時,就會完成處理。
在 Azure DevOps 的應用層伺服器上,開啟 [計算機管理],然後啟動 Visual Studio Team Foundation Background Job Service。
步驟 6:清除應用層伺服器上的數據快取
Azure DevOps 部署中的每個應用層伺服器都會使用檔案快取,讓使用者可以從數據層伺服器快速下載檔。 當您還原部署時,應該清除每個應用層伺服器上的此快取。 否則,當使用者從版本控制下載檔時,不相符的檔案標識符可能會導致問題。 如果您的部署使用 Azure DevOps Proxy Server,您也必須清除設定為 Proxy 的每個伺服器上的數據快取。
注意
藉由清除數據快取,您可以協助防止在版本控制中下載不正確的檔案版本。 除非您將部署中的所有硬體取代為還原的一部分,否則您應該定期執行此動作。 如果您要取代所有硬體,您可以略過此程式。
清除數據快取
在執行 Azure DevOps 或使用 Azure DevOps Proxy Server 設定應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Application Tier\Web Services\_tfs_data。
刪除_tfs_data目錄中的所有專案。
針對部署中執行 Azure DevOps Proxy Server 的每個應用層伺服器和每部伺服器重複這些步驟。
步驟 7:重新啟動服務
還原數據之後,您必須重新啟動服務,才能將伺服器傳回作業狀態。
重新啟動服務
在執行 Azure DevOps 應用層服務的伺服器上,開啟 [命令提示字元] 視窗,並將目錄變更為 Drive:\%programfiles%\Azure DevOps Server 2019\Tools。
輸入下列命令:
TFSServiceControl unquiesce
如需詳細資訊,請參閱 TFSServiceControl 命令。
步驟 8:重新整理用戶端電腦上的快取
重新整理快取以追蹤客戶端電腦上的工作專案
在新伺服器上,開啟 Internet Explorer。
在網址列中,輸入下列位址以連線到 ClientService Web 服務:
http://PublicURL/VirtualDirectory:8080/WorkItemTracking/v3.0/ClientService.asmx
注意
即使您使用系統管理認證登入,您仍可能需要以系統管理員身分啟動 Internet Explorer,而且系統可能會提示您輸入認證。
選取 [StampWorkitemCache],然後選取 [ 叫用]。 StampWorkitemCache 方法不會傳回任何數據。
重新整理客戶端電腦上的版本控制快取
在用戶端電腦上,開啟具有系統管理許可權的命令提示字元視窗,並將目錄變更為
Drive:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
。在命令提示字元中,輸入下列命令,包括集合的 URL,其中包括伺服器名稱和新伺服器的埠號碼:
tf workspaces /collection:http://ServerName:Port/VirtualDirectoryName/CollectionName
在範例部署中,開發人員需要針對屬於 DefaultCollection 集合成員的專案重新整理版本控制快取,該集合裝載於 Azure DevOps Server 的 FabrikamPrime 部署中:
tf workspaces /collection:http://FabrikamPrime:8080/tfs/DefaultCollection
如需詳細資訊,請參閱 Workspaces 命令。