手動處理 TFS 資料倉儲和 Analysis Services Cube

當發生錯誤時,或者在解決結構描述衝突之後,如果需要在報表中顯示最新的資料,您可以手動處理 Team Foundation Server (TFS) 關聯式資料庫 (Tfs_Warehouse) 或 SQL Server Analysis Services Cube (Tfs_Analysis)。

在一般作業期間,倉儲會在變更作業存放區後的兩分鐘內進行處理,而 Cube 則會每兩個小時處理一次。 藉由手動處理倉儲,您可以協助確保查詢和報表是依存於倉儲的最新資料。

您可以使用倉儲控制 Web 服務來處理倉儲或 Cube,或是執行其他維護作業。如果您知道您要執行的是兩個資料庫的完整重建,請使用管理主控台TFSConfig RebuildWarehouse 命令

[倉儲控制 Web 服務] 頁面

注意事項注意事項

請勿使用 SQL Server Management Studio (SSMS) 手動處理 Cube。不支援使用該工具處理 Cube。

處理倉儲或 Cube

處理倉儲或 Cube 時可能需要數分鐘或數小時,這是取決於涉及的資料量的多寡。 在處理任一資料庫之前,要先判斷您要執行的同步處理工作的處理狀態。 請確定傳回的是 [閒置] 狀態

若要存取 Web 服務

  1. 如果您不是 TFS 應用程式層伺服器上的 Administrators 安全性群組的成員,請立即加入該群組

    同時,請確認您的伺服器層級 [Administer warehouse] 權限必須設為 [Allow]。

  2. 登入應用程式層伺服器並在支援的 Web 瀏覽器中輸入下面 URL,以開啟倉儲控制 Web 服務:

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

    如果虛擬目錄的名稱不是 tfs,而是使用另一個名稱,請輸入安裝 Team Foundation Server 時所指定的 IIS Virtual Directory。

  3. [WarehouseControlWebService] 頁面隨即開啟。

    注意事項注意事項

    如果頁面未開啟,請確認 Microsoft Team Foundation Server 應用程式集區是否正在執行。

若要檢查處理狀態

  • 選擇 [GetProcessingStatus]。

    取得處理狀態

    新的瀏覽器視窗隨即開啟。 它會指出下面工作的處理狀態:

    • Common Structures Warehouse Sync

    • Full Analysis Database Sync

    • Incremental Analysis Database Sync

    此外,還會提供每個 Team 專案集合的下面工作的狀態:

    • Build Warehouse Sync

    • Common Structures Warehouse Sync

    • Test Management Warehouse Sync

    • Version Control Warehouse Sync

    • Work Item Tracking Warehouse Sync

    [閒置] 值表示同步處理工作目前不在執行中。 只有當這些工作的處理狀態為 [閒置] 時,才要處理資料倉儲或 Cube。 如果傳回不同的值,請重複此步驟,直到您要處理的工作傳回 [閒置]。

若要處理資料倉儲

  1. 選擇 [ProcessWarehouse],並選擇性地指定要處理的 Team 專案集合。 如果您讓 [collectionName] 保留空白,就會處理所有集合。

    當此服務順利開始處理倉儲時會傳回 [True],如果未順利開始則傳回 [False]。 [False] 值表示目前正在處理倉儲。

  2. 若要判斷倉儲的處理狀態,請選擇 [GetProcessingStatus],如先前的檢查處理狀態中所述。

    如果 [GetProcessingStatus] 服務傳回 [閒置] 的值,並且 [Common Structures Warehouse Sync] 以及每個 Team 專案集合的每個倉儲都是傳回 [已成功] 的值,則表示倉儲處理完成。

若要處理 Analysis Services Cube

  1. 選擇 [ProcessAnalysisDatabase]。

  2. 請在 [processingType] 中輸入 Incremental 或 Full。

    如果指定 Incremental,只有在最近一次處理後新增的資料,才會進行處理。

    如果指定 Full,重建倉儲時會處理所有資料。 執行完整處理比較費時,因此只有在需要時 (例如 Team 專案或專案集合已被移除或刪除時) 才要執行。

    當此服務順利開始處理 Cube 時會傳回 [True],如果未順利開始則傳回 [False]。 [False] 值表示目前正在處理 Cube。

  3. 若要判斷倉儲的處理狀態,請選擇 [GetProcessingStatus],如先前的檢查處理狀態中所述。

    如果 [GetProcessingStatus] 服務傳回 [閒置] 的值,並且下面工作傳回 [已成功] 的值,就表示 Cube 處理已完成。

    • Full Analysis Database Sync

    • Incremental Analysis Database Sync

處理擴充產能的預設大小

收到下面錯誤訊息時,您應該執行 [ProcessDefaultDimensionsForExpandedCapacity] Web 服務:

Microsoft.TeamFoundation.Warehouse.WarehouseException: TF221122: An error occurred running job Full Analysis Database Sync for team project collection or Team Foundation server TEAM FOUNDATION.

Microsoft.TeamFoundation.Warehouse.WarehouseException: Failed to Process Analysis Database 'Tfs_Analysis'.

Microsoft.TeamFoundation.Warehouse.WarehouseException: File system error: A string store or binary store with a compatibility level of '1050' is at the maximum file size of 4 gigabytes. To store additional strings, you can change the StringStoresCompatibilityLevel property of the associated dimension or distinct count measure to '1100' and reprocess. This option is only available on databases with a compatibility level of '1100' or higher.

這個服務會將Version Control File大小的 StringStoresCompatibilityLevel 變更為 1100,並執行完整的 Cube 重新處理。

  1. 在倉儲控制 Web 服務中選擇 [ProcessDefaultDimensionsForExpandedCapacity]。

  2. 當此服務成功地將該值重設為 1100 時,此服務會傳回 [True]。

    請等候 Cube 處理成功。

問與答

我何時應該處理資料庫或者要重建資料庫?

**答:**基於下面其中一個原因,請手動處理資料庫:

  • 如果報表沒有顯示最新資料,但您因為即將開會而需要有最新的資料,請以累加方式處理 Cube。

  • 若要驗證所有結構描述衝突的解決方案,請處理資料倉儲中的每個 Team 專案集合。

  • 若要收集資訊以診斷出現在與倉儲工作相關的事件檢視器中的問題,請處理資料倉儲中的每個 Team 專案集合。

當您移動、還原、重新命名 TFS 資料層伺服器或為其進行容錯移轉時,請對倉儲和 Cube 執行完整重建。

問:要如何變更重新整理的處理間隔或其他處理參數?

**答:**請參閱管理 TFS 報表、資料倉儲及 Analysis Services Cube

問:哪裡可以讓我進一步了解如何解決結構描述衝突?

**答:**請參閱解決資料倉儲中發生的結構描述衝突